基于 NIOSII 软核的流水灯

目录

一、硬件部分设计

1、创建新项目

2、进行Qsys系统设计

 3、完成 Qsys 设计的后续工作

3、 进行逻辑连接和生成管脚

5、 芯片引脚设置

6、编译工程

 7、分配物理针脚

​编辑 二、软件部分设计

1、启动Nios II SBT

2、创建工程

 4、修改程序

 5、编译工程

​编辑三、运行项目

1、配置FPGA

2、运行/调式程序


一、硬件部分设计

1、创建新项目

2、进行Qsys系统设计

点击 Tools 下拉菜单下的 Platform Designer 工具

点击 File-save, 在文件名中填写为 kernel 后点击 OK
鼠标放在 clk_0 处点击右键 Edit 或是双击 clk_0 元件,对 Clock 进行时钟设置,设为 50M

 

 

 添加 Nios II 32-bit CPU

 

 

 nios2_qsys_0 重命名为 cpu,点击”Rename”即可重新命名

cpu clk reste_n 分别与系统时钟 clk_0 clk clk_reset 相连

注意:对模块命名要遵循以下规则:
名字最前面应该使用英文;
能使用的字符只有英文字母、数字和下划线“_”;
不能连续使用“_”符号,在名字的最后也不能使用“_”。

 添加 jtag uart 接口。

 

 JTAG UART-jtag-uart_0 的设置向导中保持默认选项,点击 Finish,将 jtag-uart_0 重命名为 jtag-uart

 进行 clkreset 以及 master-slave 的连线,进行中断 irq 连线

 添加片上存储器 On-Chip Memory(RAM)

在” Size ”栏中的” Total memory size ”窗口中输入 40960 (即片上内存的大小为 40KB ),其余选项保持默认,点击 Finish

 onchip_memory2_0 改名为 onchip_ram

 进行时钟、数据端口、指令端口的连接

 

 添加 PIO 接口

Width 8bits Direction 选择 output ,其余选项保持默认,点击Finish

 将pio_0 改名为 pio_led

进行时钟、数据端口、指令端口的连接

 

 添加片 System ID Peripheral

保持默认选项,单击 Finish,将 sysid_qsys_0 改名为 sysid

 

 进行时钟、数据端口的连接

 3、完成 Qsys 设计的后续工作

基地址分配(完成后”Base”栏将出现不会重复的具体的地址)

 分配中断号

在” IRQ ”标签栏下点选” Avalon_jtag_slave ”和 IRQ 的连接点就会为” jtag_uart ”核添加一个值为 0 的中断号

指定 NIos II 的复位和异常地址

 

 

 最终完成的连接图

生成 Qsys 系统

 

点击Close 后关闭窗口后,再关闭Platform Designer主界面 

 

 在原理图(BDF)文件中添加PD生成的系统符号

 加入Quartus II IP File 文件

3、 进行逻辑连接和生成管脚

开发板晶振为 50M ,与系统默认一致,因此,这里我们不需要修改逻辑连接

生成管脚

将管脚”clk_clk ”改名为clock ,管脚” reset_reset_n ”改名为 reset_n ,管脚 out_led_export[7..0] 改为 out_led[7..0]

5、 芯片引脚设置

进行unused pin设置,可能会收到外部信号的干扰,将未用引脚设置为Asinput tri-stated

 特殊引脚设置,设置为常规引脚

6、编译工程

 7、分配物理针脚

二、软件部分设计

1、启动Nios II SBT

启动Workspace 选择当前的项目目录,点击OK 

2、创建工程

系统会自动生成一个打印“hello_world”的软件工程,在 hello_world.c 中我们可以看到相应代码

 

 4、修改程序

#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)
 { 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;
}

 5、编译工程

三、运行项目

1、配置FPGA

添加下载文件,然后点击 Start 开始下载 

2、运行/调式程序

配置 Run Configurations

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值