跑马灯源程序及测试代码(verilog)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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里的仿真波形

相关文档
最新文档