//单个LED灯以一秒闪烁的源代码 //利用单个的闪烁源代码,来实例化不同频率闪烁的灯 module led_run8( clk, reset_n, led ); input clk; input reset_n; output reg led; reg [24:0] counter; parameter MCNT=24999999; always@(posedge clk or negedge reset_n) if(!reset_n) counter<=0; else if(counter==MCNT) counter<=0; else counter<=counter+1'b1; always@(posedge clk or negedge reset_n) if(!reset_n) led<=0; else if(counter==MCNT) led<=!led; endmodule //例化实现不同频率的代码 module led_run8_test( clk, reset_n, led ); input clk; input reset_n; output wire [3:0] led;//这边相当于输出一定要用wire或者什么也不用标注 led_run8 led_run8_test0( .clk(clk), .reset_n(reset_n), .led(led[0]) ); defparam led_run8_test0.MCNT=2499999;//通过程序员计数器算得到 led_run8 led_run8_test1( .clk(clk), .reset_n(reset_n), .led(led[1]) ); defparam led_run8_test1.MCNT=4999999; led_run8 led_run8_test2( .clk(clk), .reset_n(reset_n), .led(led[2]) ); defparam led_run8_test2.MCNT=7499999; led_run8 led_run8_test3( .clk(clk), .reset_n(reset_n), .led(led[3]) ); defparam led_run8_test3.MCNT=9999999; endmodule //也可以使用下列方式例化 // led_run8 // #( // .MCNT(2499999) // ) 上面和下面是等价的 // defparam led_run8_test0.MCNT=2499999;
标签:reset,led,clk,0.1,LED,源代码,闪烁 From: https://www.cnblogs.com/wangwin4/p/17110574.html