基于Nios-II实现流水灯

实验步骤

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

实验现象

在这里插入图片描述

心得体会

本次实验实现了NIOS-II制作流水灯。虽然过程一波三折,但是最终还是实现了预期效果。

猜你喜欢

转载自blog.csdn.net/weixin_54435584/article/details/130025896
今日推荐