实验任务:在Qsys系统加入PIO IP核,完成4个按键控制4个LED的亮灭实验,并实现上电自启动的功能。
在helloworld工程的基础上创建PIO
组件设置界面如下:
添加两个PIO设置如下:
EPCS模块不需要修改,直接点击finish
上电复位后,程序在EPSC中重新启动
连接如下
重新分配地址: system --> assign base address,消除错误
save generate
generate中一定要注意output directory是该工程文件夹下的hardware
修改顶层模块,例化代码
****************************************************************************
module qsys_hello_world(
input sys_clk,
input sys_rst_n,
//flash
input flash_data0,
output flash_sdo,
output flash_sce,
output flash_dclk,
input [3:0] key,
output [3:0] led
);
//wire define
wire clk_100m ;
//例化pll(锁相环)IP核
pll pll_inst (
.inclk0 ( sys_clk ),
.c0 ( clk_100m )
);
//例化Qsys系统
system_qsys u0 (
.clk_clk (clk_100m ), // clk.clk
.epcs_dclk (flash_dclk), // epcs.dclk
.epcs_sce (flash_sce), // .sce
.epcs_sdo (flash_sdo), // .sdo
.epcs_data0 (flash_data0), // .data0
.key_export (key), // // key.export
.led_export (led), // // led.export
.reset_reset_n (sys_rst_n) // // reset.reset_n
);
endmodule
*************************************************************
引脚分配,直接修改工程文件夹下的qsf文件
assignment中
设置为通用IO口
打开tools --> nios software build tools for eclipse ,选择对应工程下的software文件,重新generate BSP文件(每修改一次NIOS,就要重新generate BSP)
(BSP, board support package, 板级支持包,隔离软件与底层硬件,通过qsys文件自动生成文件连接底层硬件)
此地址与NIOS生成的地址一一对应。 system.h 文件的本质就是描述qsys系统。
当头文件加载错误时, led-->右键 -->properties
在以下界面增加头文件所在的路径
build all(ctrl + B)
下载软硬件