实验2-Nios-II入门实践

一、 在DE2-115开发板上分别用Verilog和Nios软件编程两种方式完成LED流水灯显示,理解两种方式的差异;

二、用Nios软件编程通过DE2-115开发板串口输出“Hello Nios-II”字符到笔记本电脑串口助手。

1)点击 Tools 下拉菜单下的 Platform Design
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传2)启动 Qsys 后,点击 File —> save,如图 1.7 所示,在文件名中填写为 kernel,后点击 OK
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传3)鼠标放在 clk_0 处点击右键 Edit 或是双击 clk_0 元件,对 Clock 进行时钟设置,设为为 50M
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传4)添加 CPU 和外围器件
添加 Nios II 32-bit CPU
在 “component library” 标签栏中找到 “Nios II Processor” 后点击 Add

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在 Nios Core 栏中选择 Nios II/f 选项,其他保持默认选项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传点击 Finish 回到 Qsys 界面 将 nios2_qsys_0 重命名为 cpu
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将 cpu 的 clk 和 reste_n 分别与系统时钟 clk_0 的 clk 和 clk_reset 相连

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传5)添加 jtag uart 接口
jtag uart 接口是 Nios II 嵌入式处理器新添加的接口元件,通过内嵌在 Intel FPGA 内部的 JTAG 电路,可以实现在 PC 主机与 Qsys 系统之间进行串行字符流通信。

同样,在 ”Component Library” 标签栏中的查找窗口输入 jtag 找到 ”JTAG UART ”,然后点击 Add

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传保持默认,点击FINISH
在 ”Name” 列中将jtag-uart_0 重命名为 jtag-uart。
进行 clk、reset 以及 master-slave 的连线
进行中断 irq 连线

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传6)添加片上存储器 On-Chip Memory(RAM)核

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将此处设置为40960b,然后finish

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在 ”Name”
列中将 onchip_memory2_0 改名为 onchip_ram,然后如图连线

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传7)添加 PIO 接口外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
设置Width 为 8bits,Direction 选择 output,其余选项保持默认,点击
Finish。然后将
pio_0 改名为 pio_led如,下图,连线

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传8)添加片 System ID Peripheral 核
然后改名为 sysid,连线

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传9)完成 Qsys 设计的后续工作
基地址分配:点击 Qsys 主界面菜单栏中的 ”System” 下的 ”Assign Base Addresses”
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分配中断号:在 ”IRQ” 标签栏下点选 ”Avalon_jtag_slave” 和 IRQ 的连接点就会为 ”jtag_uart” 核添加一个值为 0 的中断号。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指定 NIos II 的复位和异常地址:从 ”System Contents” 标签栏双击建立好的 cpu 进入 Nios II
Processor 的配置界面,配置 Reset Vector 和 Exception Vector 为
”onchip_ram.s1”,点击 Finish。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传点击 Qsys 主界面菜单栏中的 ”System” 下的 ”Create Global Reset Network”。完成后会自动连接所有复位端口外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
生成 Qsys 系统:点选 ”Generation HDL” 标签栏中 Generate 按钮生成 Qsys 系统,保存文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传完成后,点击 Close 后关闭窗口后,再关闭 Qsys 主界面外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
线路图(要仔细看一个都不能少):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在原理图(BDF)文件中添加 PD 生成的系统符号,如图 1.36 在空白处双击将已生成的 kernel 加入 led.bdf 中。如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传加入 Quartus II IP File 文件,为了以后编译成功,请务必将对应的 Quartus II IP
File (.qip) 加入项目中。步骤如下:
①点击 Assignments-Settings,添加 kernel.qip 文件。
选中该文件后,点解 OK 按钮加入 kernel.qip 文件,如下图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传至此 Qsys 组件构建完成。
进行逻辑连接和生成管脚
(1)逻辑连接。开发板晶振为 50M,与系统默认一致,因此,这里我们不需要修改。
(2)在 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-stated。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传绑定引脚
1、分配物理针脚

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传2、再次编译工程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传软件设计
1、使用 Nios II Software Build Tools for Eclipse
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、在 Quartus-II 界面,点击Tools,然后点击 Nios II Software Build Tools for Eclipse 打开 Nios II SBT for Eclipse
启动 Workspace 选择当前的项目目录,点 OK

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传3、创建工程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传4、在 ”SOPC Information File name” 窗口中选择 kernel.sopcinfo 文件,以便将生成硬件配置信息和软件应用关联,CPU 栏会自动选择”CPU”。在 ”Project name” 输入 ”helloworld” ,Project template选择 Hello World。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传5、将 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;
    printf("Hello world!\n");
    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;
}

6、选择hello_wold_bsp,右键后,选择Nios II中的Generate BSP
7、右键单击项目名称,在弹出的菜单中选择 Build Project
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
配置 FPGA
(1) 连接 JTAG 到开发板,确定 A.已正确安装驱动。B. 防火墙不会影响到 JTAG
的正常工作。最后给开发板上电。
(2) 如下图所示,启动 Quartus Prime Programmer。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(3)添加下载文件。然后点击 Start 开始下载,下载成过后关闭,回
到 Eclipse 主机面
运行/调式程序
菜单栏中选择 Run →Run Configurations
配置 Run Configurations,选择project
转到”Target Connection”标签栏,点击右侧的 Refresh
Connections 将 USB-Blaster 加入,如下图所示。
Apply 后,Run。下载完成后,可以看见 Console 里打印信息
可以看见开发板的 LED 灯循坏闪烁。
请添加图片描述
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三、总结

本次实验用Verilog和Nios软件编程两种方式完成LED流水灯显示并用Nios软件编程通过DE2-115开发板串口输出“Hello world!”字符到笔记本电脑串口助手,让我感受到了软硬结合开发的好处,也让我初步掌握了 Nios-II 软件的开发流程、软件的基本调试方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值