银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-11-20 | zgf | 初次建立 |
1、打开HqFpga软件,新建工程,FPGA型号为SL2S-25E-8U213C。通过“工程属性”界面将例程下的源文件添加到新建立的工程,或者通过“设计管理”界面建立新的源文件并添加到工程中。
2、本例程下包含3个源文件,分别是rst_n.v、counter_ctrl.v和counter.v文件。这三个源文件分别包含了对应的三个功能模块。
3、点击“RTL综合”按钮,进行编译,如果没有报错,点击左侧栏“物理约束”按钮,绑定信号引脚。
4、然后点击“保存”图标并退出物理约束界面;在主界面,点击左侧边栏的“全部运行”按钮。编译后可以看到生成了下载文件;将下载器连接到iCore3L双核心板上,将生成的比特流文件下载到FPGA中,可以看到开发板上LED每一秒钟亮灭状态切换一次。
/*************************************************/ //利用计数器实现一个定时器,定时为1s reg [31:0]time_cnt; always@(posedge fpga_clk or negedge rst_n) begin if(!rst_n) begin time_cnt <= 32'd0; end else begin if(time_cnt==32'd24999999) begin time_cnt <= 32'd0;///计数器清零 end else begin time_cnt <= time_cnt + 1'd1;//计数器自加1 end end end wire time_sig = (time_cnt==32'd24999999) ? 1'd1 : 1'd0;//定时器信号
/*************************************************/ //利用定时器信号触发led事件 reg [2:0] fpga_led_r; always@(posedge time_sig or negedge rst_n) begin if(!rst_n) begin fpga_led_r <= 3'b111; end else begin fpga_led_r <= ~fpga_led_r; end end assign fpga_led = fpga_led_r; //--------------------------------------------//
1、 通过HqInsght观察time_sig与time_cnt之间的关系。