跑马灯源程序及测试代码(verilog)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//跑马灯源代码,八个灯左右依次循环点亮module led_run (clk,rst,out);
input clk,rst;
output [7:0] out;
reg [7:0] out;
reg [15:0] count;
always @ ( posedge clk or negedge rst )
if(!rst)
begin
count<=0;
end
else
begin
count<=count+1;
end
always @ ( posedge clk or negedge rst)
if(!rst)
begin
out<=8'hff;
end
else
begin
case ( count[4:1] )
0: out<=8'b1111_1110;
1: out<=8'b1111_1101;
2: out<=8'b1111_1011;
3: out<=8'b1111_0111;
4: out<=8'b1110_1111;
5: out<=8'b1101_1111;
6: out<=8'b1011_1111;
7: out<=8'b0111_1111;
8: out<=8'b1011_1111;
9: out<=8'b1101_1111;
10:out<=8'b1110_1111;
11:out<=8'b1111_0111;
12:out<=8'b1111_1011;
13:out<=8'b1111_1101;
14:out<=8'b1111_1110;
15:out<=8'b1111_1111;
endcase
end
endmodule
//仿真程序testbench led_run_test.v
`timescale 1ns/1ps
module led_run_test;
reg clk_test;
reg rst_test;
wire [7:0] out_test;
initial
clk_test=0;
always #2 clk_test=~clk_test;
initial
begin
rst_test=1;
#1 rst_test=0;
#10 rst_test=1;
#100 $stop;
end
led_run led1(.clk(clk_test),.rst(rst_test),.out(out_test)); endmodule
在modelsim里的仿真波形