基于NIOSII软核的流水灯实验

一、实验原理

2004年,Altera 正式推出了Nios II 系列32位RISC嵌入式处理器。Nios
II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera
FPGA中实现仅需35美分。Altera的Stratix 、Stratix GX、 Stratix II和
Cyclone系列FPGA全面支持Nios II处理器,以后推出的FPGA器件也将支持Nios II。
Nios Ⅱ系列包括3种产品,分别是:
Nios Ⅱ/f(快速)——最高的系统性能,中等FPGA使用量;
NiosⅡ/s(标准)——高性能,低FPGA使用量;
Nios Ⅱ/e(经济)——低性能,最低的FPGA使用量。
这3种产品具有32位处理器的基本结构单元——32位指令大小,32位数据和地址路径,32位通用寄存器和32个外部中断源;使用同样的指令集架构(ISA),100%二进制代码兼容,设计者可以根据系统需求的变化更改CPU,选择满足性能和成本的最佳方案,而不会影响已有的软件投入。
本次实验需要在FPGA上通过Nios Ⅱ软核完成流水灯控制,由于控制 LED 灯闪烁的用户程序代码很小,可将其固化在片内 ROM 来执行。变量、堆栈等空间使用片内 RAM,不使用任何片外存储器。整个系统的框图如图 1.1 所示。

从图 1.1 控制 LED 闪烁的系统框图可知,其它逻辑与 Nios II 系统一样可存在于 FPGA中。Nios II 系统可与其它片内逻辑相互作用,取决于整个系统的需要。为了简单起见,本实验在 FPGA 内不包括其它逻辑。

在这里插入图片描述

二、实验步骤

1.Qsys系统设计

具体参考:https://blog.csdn.net/qq_54347584/article/details/130028655
最终连接图为:
请添加图片描述
在原理图(BDF)文件中添加 PD 生成的系统符号,在空白处双击将已生成的 kernel 加入 top_level.bdf 中
在 kernel 模块内点击鼠标右键选取 Generate Pin for Symbol Ports 生成管脚
将管脚”inclk0”改名为 clock,管脚”reset_reset_n”改名为 reset_n,
管脚 out_led_export[7…0]改为 out_led[7…0]
请添加图片描述
在这里插入图片描述
芯片引脚设置
在这里插入图片描述
进行 unused pin 设置,可能会收到外部信号的干扰,将未用引脚设置为 As
input tri-state
在这里插入图片描述
编译工程后设置引脚

在这里插入图片描述

2.启动 Nios II SBT

点击 Nios II Software Build Tools for Eclipse 打开 Nios II SBT for Eclipse。
在这里插入图片描述
建立新的软件应用
在这里插入图片描述
在”SOPC Information File name”窗口中选择 kernel.sopcinfo 文件,以便将生成硬件配置信息和软件应用关联,CPU 栏会自动选择”CPU”。在”Project name”输入”hello_world,”Project template”选择 Hello_World。点击 Finish。
在这里插入图片描述
系统会自动生成一个打印“hello_world”的软件工程,在 hello_world.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;
}

最后编译建立工程后运行项目
最终的演示结果为:
在这里插入图片描述

参考链接:https://blog.csdn.net/wakeup_high/article/details/138731372
https://blog.csdn.net/qq_54347584/article/details/130028655

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值