目录
一、硬件开发
参考:https://www.cnblogs.com/fimwest/p/5180630.html
①打开Quartus,新建一个工程,器件选择EP4CE6F17C8
(我用的是13.1版本)
②打开tools–>Qsys如下图所示
命名File–>save(随意命名)
③修改时钟
双击时钟名clk_0修改为clk,时钟频率由初始的50MHz修改为100MHz
④添加nios ||核
从界面左上角Library查找窗口输入nios)找到Nios II Processor并双击打开
选择Nios II/f,其他保持默认,再点击Caches and Memory Interfaces,将Data cache改为None完成之后点击左下角的finish
在Name中将nios2_qsys_0改名为mcu
⑤添加Sdram核
依然是从界面左上角Library查找窗口输入sdram找到“SDRAM Controller”后双击
将其中数据更改为下图所示
点击finish
⑥添加System ID Peripheral核
从界面左上角Library查找窗口输入sys找到“System ID Peripheral”后双击。保持默认选项,Finish。将sysid_qsys_0改名为sysid
⑦添加EPCS
从界面左上角Library查找窗口输入epcs找到“EPCS Serial Flash Controller”后双击,默认点击Finish即可。添加完成后改名为epcs。
⑧添加JTAG UART核
从界面左上角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
⑩连接时钟信号、数据和指令端
连接完成后如下图
⑪指定Nios 2的复位和异常地址
双击mcu,配置Reset Vector为"epcs.epcs_control_port",Exception Vector为"sdram.s1",Finish
⑫连接复位信号
点击Qsys主界面菜单中的“System”下的“Create Global Reset Network
⑬分配基地址
点击Qsys主界面菜单中的“System”下的“Assign Base Addresses”
⑭分配中断号
在“IRQ”标签栏下点选“Avalon_jtag_slave”和IRQ的连接点就会为“jtag”核添加一个值为0的中断号,如下图所示,同样地,给epcs分配中断1
⑮设置SDRAM和EPCS输出
在Export标签栏下点选sdram的wire行和epcs的external行,分别重命名为sdram和epcs
⑯生成Qsys系统
Save,点击“Generation”标签栏中Generate按钮生成Qsys系统。至此Nios 2软核构建完毕。点击“HDL Example”标签栏,在HDL Language选择Veriolg,点击Copy留待后面使用