赞
踩
使8个led灯分别按照0.1s、0.2s、0.3s、...、0.8s的闪烁周期闪烁
调用单个led闪烁模块,重定义参数
其中led_flash.v代码在上一篇文章已经讲述,故不赘述。
- module led_run8(
- clk,
- reset_n,
- led
- );
- parameter WIDTH=8;
- input clk;
- input reset_n;
- output [WIDTH-1:0]led;
- //例化调用模块
- led_flash2 led_flash2_inst0(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[0])
- );
- defparam led_flash2_inst0.MCNT=2499999;
-
- led_flash2 led_flash2_inst1(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[1])
- );
- defparam led_flash2_inst1.MCNT=4999999;
-
- led_flash2 led_flash2_inst2(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[2])
- );
- defparam led_flash2_inst2.MCNT=7499999;
-
- led_flash2 led_flash2_inst3(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[3])
- );
- defparam led_flash2_inst3.MCNT=9999999;
-
- led_flash2 led_flash2_inst4(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[4])
- );
- defparam led_flash2_inst4.MCNT=12499999;
-
- led_flash2 led_flash2_inst5(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[5])
- );
- defparam led_flash2_inst5.MCNT=14999999;
-
- led_flash2 led_flash2_inst6(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[6])
- );
- defparam led_flash2_inst6.MCNT=17499999;
-
- led_flash2 led_flash2_inst7(
- .reset_n(reset_n),
- .clk(clk),
- .led(led[7])
- );
- defparam led_flash2_inst7.MCNT=19999999;
-
- endmodule
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- `timescale 1ns / 1ns
- module led_run8_tb;
- reg clk;
- reg reset_n;
- wire [7:0]led;
- led_run8 led_run8(
- .clk(clk),
- .reset_n(reset_n),
- .led(led)
- );
-
- initial clk = 1; //定义初始时钟信号
- always #10 clk = ~clk;
- initial begin
- reset_n = 0;
- #201;
- reset_n = 1;
- #2000000000;
- $stop;
- end
- endmodule
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
从波形可以看出,led各个翻转周期均与设计一致,故设计完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。