流水灯
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,流水灯跑起来了……