基于 NIOSII 软核的流水灯实验

前言

本篇博客主要是学习 Quartus 、Platform Designer、Nios-II SBT 的基本操作;初步了解 SOPC 的开发流程,基本掌握 Nios-II 软核的定制方法;掌握 Nios-II 软件的开发流程,软件的基本调试方法。实现在DE2-115开发板上分别用Verilog和Nios软件编程两种方式完成LED流水灯显示。

一、实验设备

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

二、硬件设计

进行 Qsys 系统设计

在这里插入图片描述
新建kernel.qsys文件:
在这里插入图片描述
设置clk时钟:
在这里插入图片描述
添加 Nios II
在这里插入图片描述
在这里插入图片描述
添加 jtag uart 接口
在这里插入图片描述
添加片上存储器 On-Chip Memory(RAM)核
在这里插入图片描述
添加 PIO 接口
在这里插入图片描述
添加片 System ID Peripheral 核
在这里插入图片描述
连线及中断:

在这里插入图片描述
分配基地址:

在这里插入图片描述
配置 Reset Vector 和 Exception Vector 为”onchip_ram.s1”

在这里插入图片描述
点击 Qsys 主界面菜单栏中的 ”System” 下的 ”Create Global Reset Network”。完成后会自动连接所有复位端口
在这里插入图片描述
生成 Qsys 系统:点选 ”Generation HDL” 标签栏中 Generate 按钮生成 Qsys 系统,保存文件

在这里插入图片描述

三、逻辑连接

1.新建BDF文件,将设计好的系统符号引入

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

2.生成管脚:

在这里插入图片描述

3.添加 kernel.qip 文件:

在这里插入图片描述

4.芯片引脚设置:

在这里插入图片描述

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

在这里插入图片描述

6.设为常规引脚

在这里插入图片描述

7. 编译成功:

在这里插入图片描述

四、软件设计

打开Nios II Software
在这里插入图片描述
选择工程目录:
在这里插入图片描述
创建工程:
在这里插入图片描述
在 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;
}

编译工程
右键单击项目名称,在弹出的菜单中选择 Build Project,如下图所示。
在这里插入图片描述

五、运行项目

1、配置 FPGA

1、连接 JTAG 到开发板,确定 A.已正确安装驱动。B. 防火墙不会影响到 JTAG
的正常工作。最后给开发板上电。
2、启动 Quartus Prime Programmer。
3、添加下载文件。然后点击 Start 开始下载,下载成过后关闭,回到 Eclipse 主机面。

2、运行/调式程序

1、用户将运行程序来观察编译代码的执行。用户可以在目标硬件上或 Nios II 指令集仿真器(ISS)上运行程序。本节实验只讲述在目标硬件上调试和运行程序。在 C/C++ Projects 视图中右击 hello_led_0 工程文件夹,然后在弹出的快捷菜单中选择 Run As→Nios II Hardware 运行程序,也可以在菜单栏中选择 Run →Run Configurations。
注意:
在目标板上运行程序前,要确保 USB Blaster 下载电缆已经连接好,要保证已经使用硬件系统对 FPGA 完成配置,即完成第(1)步。
2、配置 Run Configurations,转到”Target Connection”标签栏,点击右侧的 Refresh Connections 将 USB-Blaster 加入。
3、Apply 后,Run。

六、实验结果

流水灯

七、总结

本次实验,我了解了nios II 的基本使用方法,实现了Quartus通过USB-Blaster检程序烧录到开发板上。

八、参考文献

基于 NIOSII 软核的流水灯实验

基于Nios-II实现流水灯显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值