一.硬件设计
-
新建项目
-
Tools->Qsys启动Qsys工具
-
file->save保存文件,名为kernel
-
双击clk_0,设置时钟
- 添加Nios II Processor
保持默认
-
重命名为cpu
-
添加JTAG UART
保持默认配置
- 添加On-Chip Memory(RAM or ROM)
更改Total memory size为40960
- 添加PIO接口
保持默认设置
- 添加System ID Peripheral
保持默认设置
-
接线及基地址分配如下
-
指定NIOS II的复位和异常地址
-
生成Qsys系统(菜单栏中Generation->Generate)
-
Quartus建立原理图文件
-
Assignments->Setting添加.qip文件
-
原理图如下(注意output需要连接粗线)
-
芯片引脚选择(Assignments->Device)
-
编译成功
-
分配物理引脚
二.软件设计
-
Tools->Nios II Software Build Tools for Eclipse打开Eclipse
-
选择workplace
-
file–>new–>Nios II Application and BSP from Template建立新的软件应用
- 代码如下
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
const alt_u8
led_data[8]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};
int main (void) {
int count=0;
alt_u8 led;
volatile int i;
while (1)
{
printf("Hello world!\n");
if (count==7)
{count=0;}
else
{count++;}
led=led_data[count];
IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);
i = 0;
while (i<500000)
i++;
}
return 0;
}
- 编译后得到结果如下
三.下载有关操作
四.总结
- 本次实验参考指导书及学长学姐博客总体没有太大的问题,对于理论知识更加了解,遇到的问题主要为原理图处output需要用粗线,不然会编译错误。以及命名的问题,这次需要命名对应的地方不多,但是仍需注意。
五.参考博客
https://blog.youkuaiyun.com/qq_45659777/article/details/124034204