目录

银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-05-20 gingko 初次建立

实验九:软件复位控制实验——全局复位信号

一、实验目的与意义

  1. 掌握Verilog HDL语言的使用方法。
  2. 掌握QuartusII的使用方法。
  3. 掌握软件复位信号的工作原理及使用方法。

二、实验设备及平台

  1. iCore4TX 双核心板。点击购买
  2. USB-CABLE(或相同功能)的仿真器。
  3. Micro USB线缆。
  4. ISE开发平台。
  5. 电脑一台。

三、实验原理

图9.1

四、代码讲解

//生成复位信号的计数器,采用时序逻辑语言描述
	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;

五、实验步骤及实验结果

图9.2 1、将硬件正确连接,如图9.2所示。
2、将编写好的代码进行编译,并下载到开发板中;
3、观察其实验结果——程序下载后,首先开发板上FPGA_LED为亮状态,经过大约5秒钟,复位信号有效,对FPGA_LED进行复位置为灭状态,复位大约4秒钟,再次点亮FPGA_LED。

六、拓展实验

  1. 通过Signaltap工具采集复位信号和led控制信号,看是否与其工作原理一致。