文章目录
一、学习任务
学习 Quartus-II 、Platform Designer、Nios-II SBT 的基本操作;初步了解 SOPC 的开发流程,基本掌握 Nios-II 软核的定制方法;掌握 Nios-II 软件的开发流程,软件的基本调试方法。
完成以下实验:1) 流水灯显示; 2) 串口循环输出“Hello Nios-II”字符串到笔记本电脑。
二、学习内容
1.Nios II软核实现流水灯
1.1.硬件部分设计
添加PIO

设置宽度(这里我设置为4,表示4个灯的流水灯),默认为8

连接时钟和复位

设置led的输出

系统分配地址
使用FPGA资源
创建顶层文件
顶层文件内容
module hello_world(
input clk,
input reset_n,
output [3:0] led
);
system_qsys u0 (
.clk_clk (clk), // clk.clk
.reset_reset_n (reset_n), // reset.reset_n
.led_export (led) // led.export
);
endmodule
芯片引脚设置

特殊引脚设置,设置为常规引脚

编译完成后,分配管脚

1.2.软件设计
修改代码文件
内容如下
#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
const alt_u8
led_data[4]={0x01,0x03,0x07,0x0F};
int main (void) {
int count=0;
alt_u8 led;
volatile int i;
while (1)
{
if (count==4)
{
count=0;
}
else
{
count++;
}
led=led_data[count];
IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, led);
//延时的设置
i = 0;
while (i<5000000)
i++;
}
return 0;
}
保存编译
1.3.下载硬件和软件
硬件的下载

软件的下载
出现下面问题

点击Refresh Connections解决

选择Apply后,点击Run,就下载完成

1.4.结果

2.利用NiosII实现hello world
2.1.硬件设计
创建工程文件

使用Qsys

系统时钟的设置

Nios II Processor的添

保持默认配置,选择Finish

On_Chip Memory的添加

设置大小为10K,其他保持默认设置

JTAG UART的添加

保持默认配置

System ID Peripheral的添加

保持默认设置

IP核的连接

Reset Vector和Exception Vector的设置

系统分配地址

使用FPGA资源

创建顶层文件

顶层文件内容
module hello_world(
input clk,
input reset_n
);
//此处的代码可以通过Qsys中的Generate->Generate Example,复制里面的内容,粘贴到此处,进行相应的修改
system_qsys u_qsys (
.clk_clk (clk), // clk.clk
.reset_reset_n (reset_n) // reset.reset_n
);
endmodule
2.2.软件设计
打开Nios II Software Build Tools for Eclipse

创建文件

选择硬件设计部分的文件,填写工程名称以及工程Template

打开hello_world中的.c文件
修改里面的内容如下
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
点击保存,选择hello_wold_bsp,右键后,选择Nios II中的Generate BSP

2.3.下载硬件和软件
硬件的下载

软件的下载

出现下面问题解决方案同上
2.3.实际结果

参考资料
https://www.bilibili.com/video/BV1kh41127Qm?p=1
https://www.bilibili.com/video/BV1kh41127Qm?p=3
本文详细指导了如何使用NiosII软核在Quartus-II平台下实现流水灯和HelloWorld项目,涉及硬件设计、软件编程、下载流程及常见问题解决。通过实践,读者将掌握SOPC开发基础和Nios-II定制方法。

545

被折叠的 条评论
为什么被折叠?



