Verilog跑马灯 nexy4ddr

基于小梅哥b站FPGA视频

要求: 八个Led灯每隔0.05s循环闪烁

verilog设计:

module led_run(

input clk,//时钟100MHZ 1/100000000=10ns

input rst_n,

output reg[7:0]led // 每灯间隔50ms闪烁 50000000ns

);

reg [26:0]cnt;//计数到5000000 50000000/10=5000000

always @(posedge clk or negedge rst_n)

if(!rst_n)

cnt <= 1'b0;

else if (cnt ==27'd4999999)

cnt <= 1'b0;

else

cnt <= cnt + 1'b1;

always @(posedge clk or negedge rst_n)

if(!rst_n)

led <= 8'b00000001;

else if(cnt == 27'd4999999)

begin

if(led == 8'b10000000)

led <= 8'b00000001;

else

led <= led << 1 ;

end

else

led <= led;

endmodule

测试文件:

`timescale 1ns/1ns

module led_run_tb();

reg clk;

reg rst_n;

wire [7:0]led;

led_run led_run(

.clk(clk),

.rst_n(rst_n),

.led(led)

);

initial clk = 1;

always #5 clk= ~clk;//时钟周期10ns 时钟5ns翻转一次

initial begin

rst_n = 0;

#101 rst_n = 1;

#400000000;//八个led灯 进行循环一次 400ms

$stop;

end

endmodule

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏澄啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值