实验步骤
1、新建Quartus项目,选择使用的芯片
这里我选择的芯片类型为EP4CE115F29C7,你也可以根据自己需要,选择其他芯片。
注意,部分芯片(例如MAX10-02SCM)经过笔者测试,似乎使用不了Nios-II,因为会提示无法使用mif文件。
2、Qsys设计
2.1 进入Tools -> Platform Designer
进入后,首先点击File -> Save ,保存为Kernel.qsys。
2.2 设置时钟主频
这里设置为50MHz,与所选芯片的时钟保持一致。
2.3 添加Nios-II Processor并设置
左边的IP Catalog中,选择Nios-II Processor,并点击Add添加。
暂时不修改它的其他配置信息。
右键重命名为"cpu",并按图操作进行时钟线连接。
连接之后变成这样:
2.4 添加JTAG并配置
左边选择JTAG_UART_Intel_FPGA_IP,点击Add。
右键重命名为uart,并按图进行时钟线,复位线,数据线的连接:
同时还要连接中断:
2.5 添加RAM
选择On-Chip Memory (RAM or ROM) Intel FPGA,点击Add加入。
连接时钟线,数据线与复位线。
右键将其改名为onchip_ram,双击它,按图配置其大小:
2.6 添加PIO
左边选择PIO,将其加入进来。
连接clk,reset,s1并导出输出端口:
这里将输出命名为out_led
2.7 添加System ID Peripheral
按图操作:
2.8 其他设置
双击cpu,进入Vector,按图操作:
点击System -> Assign Base Address
点击System -> Create Global Reset NetWork
生成HDL
3、Quartus设计
3.1 添加原理图文件
返回到Quartus页面,新建原理图文件:
双击空白处,加入生成的bsf文件:
右键生成IO端口,并修改led端口为out_led:
3.2 添加qip文件
3.3 设备引脚设置
Assignments -> Device ->Device and Pin Options
进行编译后,配置物理引脚。
进行全编译。
现在,Quartus设计完成,连接板子,将sof文件烧录到板子里面。此时不会有任何现象。
4、 Nios-II Eclipse设计
4.1 进入Nios-II Eclipse
点击Tools -> Nios II SoftWare Build Tools for Eclipse
将工作空间设置为quartus项目目录:
4.2 新建项目
按图点击:
写项目名称,选择helloworld模板。
图中勾选的文件是与qsys文件同级的sopcinfo文件:
创建好后,替换成以下代码:
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include "stdio.h"
const alt_u8
led_data[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
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;
printf("Hello Nios-II\n");
while (i<500000)
i++;
}
return 0;
}
4.3 编译与运行
右键项目文件夹,点击Build Project
编译完成后,连接好板子,点击Run As Nios II Hardware,即可看到流水灯现象。
5、遇到过的错误
5.1 Eclipse无法生成模板项目
这里我的解决方案是回到Platform Designer,将on-chip ram的指令线也连上(cpu.instruction master)
5.2 Exclipse Run As Hardware无法下载程序
我没弄懂为什么有这个bug,我是重新写了个Nios-II Eclipse项目就好了。
5.3 创建好Eclipse项目后,修改软核导致项目无法编译
右键项目->Nios II->BSP Editor->Generate
实验现象
文章来源:https://www.toymoban.com/news/detail-410585.html
心得体会
本次实验实现了NIOS-II制作流水灯。虽然过程一波三折,但是最终还是实现了预期效果。文章来源地址https://www.toymoban.com/news/detail-410585.html
到了这里,关于基于Nios-II实现流水灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!