• Nios学习笔记1——流水灯实验


    硬件平台:黑金AX301开发板。

    操作系统:Win7 64bit。

    软件平台:Quartus II 64-Bit Version 12.0 Build 263和Nios II 12.0sp2 Software Build Tools for Eclipse。

    参考资料:Nios那些事儿,爱上FPGA开发——特权和你一起学NIOS2

    一、硬件开发

    首先打开Quartus,新建一个工程,器件选择EP4CE6F17C8,如下图所示。

    接着,进入Qsys 中进行软核的设计。点击 Tools->Qsys,进入Qsys。

    File—>Save保存,命名为nioscpu(命名随意)。

    返回Qsys主界面后点击"Clock Settings"标签栏修改时钟,双击时钟名clk_0修改为clk,时钟频率由初始的50MHz修改为100MHz,如下图所示:

    修改完后回到"System Contents"标签栏。

    添加Nios II核

    从界面左上角Component Library查找窗口输入nios,如图:

    双击Nios II Processor选择Nios II/f,其他保持默认,再点击Caches and Memory Interfaces,将Data cache改为None,如图:

    然后点击右下角Finish,Nios II核就加入到Qsys中了。在“Name”列中将nios2_qsys_0改名为mcu(在nios2_qsys_0上右击选择Rename)。

    添加SDRAM核

    从界面左上角Component Library查找窗口输入sdram找到“SDRAM Controller”后双击。

    如下图所示设置,Finish。

    将sdram_0改名为sdram,完成后如下图所示:

    添加System ID Peripheral核

    从界面左上角Component Library查找窗口输入sys找到“System ID Peripheral”后双击。保持默认选项,Finish。将sysid_qsys_0改名为sysid,完成后如下图所示:

    添加EPCS

    从界面左上角Component Library查找窗口输入epcs找到“EPCS Serial Flash Controller”后双击,默认点击Finish即可。添加完成后改名为epcs。

    添加JTAG UART核

    从界面左上角Component Library查找窗口输入jtag找到“JTAG UART”后双击。保持默认选项,Finish。将jtag_uart_0改名为jtag,完成后如下图所示:

    添加PIO核

    从界面左上角Component Library查找窗口输入pio找到“PIO”后双击。在Basic Settings的Width选项中输入4(因为AX301开发板有4个LED),其他保持默认,Finish。将pio_0改名为led,然后点击led的external_connection行中的Export列(列中有灰色的Click to export),命名为led,完成后如下图所示:

    连接时钟信号

    将所有的clk连接起来,如下图所示:

    QQ五笔截图未命名

    连接数据和指令端口

    规则:存储器一类的IP核需要将其Slave端口同Nios 2的data_master和instruction_master相连,其他非存储器IP核则只需连接到Nios 2的data_maste。连接完成后如下图所示:

    QQ五笔截图未命名

    时钟、数据和指令端口的连接可以直接在创建IP后进行。

    指定Nios 2的复位和异常地址

    双击mcu,配置Reset Vector为"epcs.epcs_control_port",Exception Vector为"sdram.s1",Finish,如下图所示:

    QQ五笔截图未命名

    连接复位信号

    点击Qsys主界面菜单中的“System”下的“Create Global Reset Network”,完成后如下图所示:

    QQ五笔截图未命名

    分配基地址

    点击Qsys主界面菜单中的“System”下的“Assign Base Addresses”,完成后如下图所示,可以看到现在有4个Warning,两个是中断没有分配,两个是输出没有引出来,我们先来分配中断号。

    QQ五笔截图未命名

    分配中断号

    在“IRQ”标签栏下点选“Avalon_jtag_slave”和IRQ的连接点就会为“jtag”核添加一个值为0的中断号,如下图所示,同样地,给epcs分配中断1。

    QQ五笔截图未命名

    设置SDRAM和EPCS输出

    如图,在Export标签栏下点选sdram的wire行和epcs的external行,分别重命名为sdram和epcs。

    QQ五笔截图未命名

    生成Qsys系统

    Save,点击“Generation”标签栏中Generate按钮生成Qsys系统。至此Nios 2软核构建完毕。点击“HDL Example”标签栏,在HDL Language选择Veriolg,点击Copy留待后面使用,如下图所示:

    QQ五笔截图未命名

    最后关闭Qsys。

    一切有为法,如梦幻泡影,如露亦如电,应作如是观。
  • 相关阅读:
    mysql 存储过程 异常处理机制
    Maven 私服打包
    Flink(2):Flink的Source源
    Flink(1):Flink的基础案例
    最后一课
    我的获奖记录及 Important Dates in OI
    目录
    入坑 OI 三周年之际的一些感想
    洛谷 P3781
    Atcoder Typical DP Contest S
  • 原文地址:https://www.cnblogs.com/fimwest/p/5180630.html
Copyright © 2020-2023  润新知