其他分享
首页 > 其他分享> > 基于 NIOSII 软核的流水灯实验

基于 NIOSII 软核的流水灯实验

作者:互联网

目录


软件:Quartus Prime 18.1、Platform Designer、Nios II SBT
硬件:PC 机、DE2-115 FPGA 实验开发平台

一、硬件部分设计

1、建立quartus新项目

2、进行 Qsys 系统设计

1)打开 Platform Designer
在这里插入图片描述
2)保存文件至项目文件夹
在这里插入图片描述
在这里插入图片描述
3)双击clk_0,设置时钟频率为50M
在这里插入图片描述
4)添加 CPU 和外围器件
①添加 Nios II 32-bit CPU

点add添加在这里插入图片描述
所有参数保持默认选项,点击finish完成
在这里插入图片描述
②添加 jtag uart
所有参数保持默认选项,点击finish完成
在这里插入图片描述
③添加片上存储器 On-Chip Memory(RAM)核
在这里插入图片描述
设置内存为40960 点击finish
在这里插入图片描述

④ 添加 PIO 接口
所有参数保持默认选项,点击finish完成
在这里插入图片描述
⑤ 添加片 System ID Peripheral 核
所有参数保持默认选项,点击finish完成
在这里插入图片描述
到此,所有该添加的元件都已添加
在这里插入图片描述

⑥端口的连接
说实话,没看懂很多端口连接的意思,图上灰色的小点就是可以连接但未连接,方便起见,将所有小点连上(点击小点)
完成后如图
在这里插入图片描述
双击export栏下pio_0的external_co,引出输出口,命名为out_led
在这里插入图片描述
⑦基地址分配
完成后”Base”栏将出现不会重复的具体的地址
在这里插入图片描述
在这里插入图片描述
⑧指定 NIos II 的复位和异常地址
双击红框选中处,会出现左边 的功能区
在这里插入图片描述

在vector下选择如图,再点击
在这里插入图片描述

⑧点击 Qsys 主界面菜单栏中的”System”下的”Create Global Reset Network”。完成后会自动连接所有复位端口
在这里插入图片描述
⑨生成 Qsys 系统
在这里插入图片描述
在这里插入图片描述
如果提示是否保存.qsys 文件,请选择保存
之后关闭Platform Designer 主界面
5)在原理图(BDF)文件中添加 PD 生成的系统符号(再工程内新建BDF文件)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6)加入 Quartus II IP File 文件,为了以后编译成功,请务必将对应的 Quartus II IP File (.qip) 加入项目中
①点击 Assignments-Settings,添加 kernel.qip 文件
在这里插入图片描述
在这里插入图片描述

②选中该文件后,点击OK 按钮加入 kernel.qip 文件
在这里插入图片描述

7)进行逻辑连接和生成管脚
①逻辑连接。开发板晶振为 50M,与系统默认一致,因此,这里我们不需要修改。
②在 kernel 模块内点击鼠标右键选取 Generate Pin for Symbol Ports 生成管脚
在这里插入图片描述

③芯片引脚设置
菜单里选择 Assignments-device,然后如下图所示点击 Device pin options
在这里插入图片描述
进行 unused pin 设置,可能会收到外部信号的干扰,将未用引脚设置为 As input tri-stated
在这里插入图片描述
特殊引脚设置,设置为常规引脚
在这里插入图片描述
8)编译工程
在这里插入图片描述
在这里插入图片描述
9)分配物理针脚
在这里插入图片描述

在这里插入图片描述
完成后关闭 Pin Planner,回到 Quartus Prime 主界面后再次编译项目。至此完成项目的硬件设计。

二、软件部分设计

使用 Nios II Software Build Tools for Eclipse 来完成当前项目的软件开发

1、启动 Nios II SBT

在这里插入图片描述
选择工作目录,当前工程目录
在这里插入图片描述

2、创建工程

在这里插入图片描述
点击后出现下图,在”SOPC Information File name”窗口中选择 kernel.sopcinfo 文件,以便将生成硬件配置信息和软件应用关联,CPU 栏会自动选择”nios2_gen2_0”。
在”Project name”输入”hello_world,”Project template”选择 Hello_World。点击 Finish。
在这里插入图片描述
系统会自动生成一个打印“hello_world”的软件工程

3、修改程序

在 hell_word.c 里修改流水灯控制程序。
代码

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

4、编译工程

Build Project
在这里插入图片描述
在这里插入图片描述

三、运行项目

1、配置FPGA

(1) 连接 JTAG 到开发板,确定
A. 已正确安装驱动。
B. 防火墙不会影响到 JTAG 的正常工作。最后给开发板上电。
(2) 启动 Quartus Prime Programmer
在这里插入图片描述
在这里插入图片描述
因条件原因,这里没有连接硬件
后面的步骤也很简单,将FPGA板子连接上,运行调试

标签:led,Nios,II,NIOSII,点击,添加,流水,软核,连接
来源: https://blog.csdn.net/xianyudewo/article/details/116098689