Verilog跑马灯 nexy4ddr

该文描述了一个使用Verilog编程的FPGA设计,目标是使八个LED灯以0.05秒的周期循环闪烁。设计中包含一个计数器,当达到特定值时重置,并通过左移操作来改变LED的状态。在测试文件中,模拟了10ns时钟周期,并在400ms后停止程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于小梅哥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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏澄啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值