这是本文档旧的修订版!
银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
技术论坛 | http://www.eeschool.org | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-05-20 | gingko | 初次建立 |
其代码如下:
//生成复位信号的计数器,采用时序逻辑语言描述 reg [31:0]rst_cnt = 32'd0; always@(posedge clk_25m) begin if(rst_cnt==32'd250000000) begin rst_cnt<=32'd250000000; end else begin rst_cnt <= rst_cnt + 32'd1; end end
//生成复位信号,有效复位时间大约为4秒钟,实际应用中不需要持续这么久。 reg rst_n = 1'd1; always@(posedge clk_25m) begin if((rst_cnt>32'd125000000) && (rst_cnt<32'd225000010)) begin rst_n <= 1'd0; end else begin rst_n <= 1'd1; end end
/*************************************************/ //通过复位信号对led的输出状态进行复位 //复位信号有效前将led置为低电平低电平(亮); //复位后大约4秒钟led处于复位状态,置为高电平(灭); //复位操作结束后,再次将led置为低电平(亮)。 reg fpga_led_r = 1'd1; always@(posedge clk_25m or negedge rst_n) begin if(!rst_n) begin fpga_led_r <= 1'd1; end else begin fpga_led_r <= 1'd0; end end assign fpga_led = fpga_led_r;
1、将硬件正确连接,如图9.2所示。
2、将编写好的代码进行编译,并下载到开发板中;
3、观察其实验结果——程序下载后,首先开发板上FPGA_LED为亮状态,经过大约5秒钟,复位信号有效,对FPGA_LED进行复位置为灭状态,复位大约4秒钟,再次点亮FPGA_LED。