flow_led

流水灯代码

module flow_led(
	 input				   sys_clk,//20Mhz
    input				   sys_rst_n,
   
	output	reg[4:0]	   led
   );	
	
reg[25:0]	counter;
parameter Time=26'd1000_0000;//20Mhz晶振,1秒20M脉冲,0.5秒10Mhz脉冲.

always @(posedge sys_clk or negedge sys_rst_n) begin
	if(!sys_rst_n)
		counter <= 26'd0;
	else if (counter < Time)
		counter <= counter + 1'b1;
	else 	
		counter <= 26'd0;
end

always @(posedge sys_clk or negedge sys_rst_n) begin
	if(!sys_rst_n)
		led <= 5'b11110;
	else if (counter == Time)
		led[4:0] <= {led[0],led[2:1]};
	else 	
		led <= led;
end

endmodule

测试文件代码

module td_flow_led;

	// Inputs
	reg sys_clk;
	reg sys_rst_n;

	// Outputs
	wire [4:0] led;
	parameter delaytime = 26'd10;

	// Instantiate the Unit Under Test (UUT)
	flow_led #(.Time(delaytime))uut(
		.sys_clk(sys_clk), 
		.sys_rst_n(sys_rst_n), 
		.led(led)
	);
	always #20 sys_clk=~sys_clk;
	initial begin
		// Initialize Inputs
		sys_clk = 0;
		sys_rst_n = 0;

		// Wait 100 ns for global reset to finish
		#20;
		sys_rst_n =1;
		#2000;
		sys_rst_n =0;
        
		// Add stimulus here

	end
      
endmodule

UCF文件

NET "led[4]" LOC = P12;
NET "led[3]" LOC = P13;
NET "led[2]" LOC = P15;
NET "led[1]" LOC = P16;
NET "led[0]" LOC = P20;
NET "sys_clk" LOC = P86;
NET "sys_rst_n" LOC = P82;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA控制LED灯亮灭的方法可以通过编写相应的Verilog代码来实现。在引用的代码中,我们可以看到一个名为flow_led的模块,其中包含了时钟输入、复位输入和LED输出。通过对计数器cnt_200ms的计数和移位寄存器的控制,可以实现LED灯的流水灯效果。具体来说,当计数器达到设定的时间阈值时,LED的状态会根据移位寄存器的控制进行改变,从而实现LED灯的流水灯效果。\[1\] 需要注意的是,引用中的代码是一个示例,具体的FPGA控制LED灯亮灭的实现方式可能会根据具体的硬件平台和需求而有所不同。因此,在实际应用中,需要根据具体的情况进行相应的修改和调整。\[2\]同时,为了减少仿真时间,引用\[3\]中将流水灯变化的时间改为了100ns变化一次,但实际应用中可能需要根据需求进行调整。 总结起来,FPGA控制LED灯亮灭的方法可以通过编写Verilog代码来实现,其中包括计数器和移位寄存器的控制。具体的实现方式可能会因硬件平台和需求而有所不同。 #### 引用[.reference_title] - *1* *2* *3* [【FPGA】三、LED流水灯控制](https://blog.csdn.net/weixin_62912626/article/details/127748455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值