流水灯

1.新建工程,并选好器件型号

2.创建NiosⅡ文件

system name 与quartus 所建的工程名不能相同。Nios 软核处理器系统的各部分名称也不要与工程名相同。

3.创建NiosⅡ软核处理器系统

cpu使用经济型,复位矢量指向program(rom),异常矢量指向data(ram)

rom重命名为program,大小为32kb

ram重命名为data,大小为4096b

pio重命名为led18_pio,因为使用18个流水灯,所以宽度设为18.

4.分配软核处理器系统各部分的地址和各部分的中断

5.生成led18_cpu软核

6.生成电路原理图

   1.insert >> symbol>>插入生成的led18_cpu

   2.右键单击电路符号>>Generate Pins for Symbol Ports(自动生成引脚,这里可以更改自己想要的命名,这里改为led[17..0])

   3. assignments >> settings >> analysis& synthesis settings :Optimization Technique 选中area

   4. assignments>>device >>device and pin options>>Unused pins: Reserve all unused pins选中 As input tri-stated

   5.编译后分配引脚

7.分配引脚

   一种方法是通过assignments >>assignment editor 分配

   还有一种方法是通过Tools >>Tcl Scripts>>选中sopc_add_qip_file.tcl

   

 删除原有语句,添加下面语句到tcl文件,保存并运行。

8.运行后编译下载,硬件部分完成。

9.打开NIOS II IDE软件,新建一个NIOS II C/C++ Application,命名为led18

Select Project Template: Blank Project

Name : led18

SOPC Builder System PTF File选择我们建立的SOPC文件

NEXT,Finish……

10.在led上点击右键,NEW一个C语言文件

Source File输入C语言文件名,一定要加".c" ,Finish……

11.在NIOS 文件led上点击右键,选择System Library Properties

Program memory选择progam后OK!

12.编写软件

#include "system.h"
#include "altera_avalon_pio_regs.h"

void delay(void);

int alt_main(void)
{
 unsigned char led_data;
 unsigned int led_code;
 while(1)
 {
    for(led_data=0;led_data<18;led_data++)
    {
     led_code=0x01<<led_data;
     IOWR_ALTERA_AVALON_PIO_DATA(LED18_PIO_BASE,led_code);   
     delay();
    }
 }
 return 0;
 }

void delay(void)
{
 unsigned int i;
 i=1000000;
 while(i>0)
 {
  i--;
 }
}

13.在NIOS工程led上面点击右键选择Build Project,稍等片刻……

14.在NIOS工程led点击右键Run AS--NIOS II Hardware,流水灯跑起来了……

 

 

 

 

 

posted on 2011-10-09 10:28  zerine  阅读(390)  评论(0编辑  收藏  举报

导航