这次因为要在板子上跑,所以我们这次要给它分频。因为我的板子型号是50M的晶振,所以我把它分到了1HZ的频率。然后,在用case语句将它译码。重点:分频最主要要将各个时间与频率的关系搞清楚。1MHZ=1000000HZ 1s=1000ms=1_000_000us=1_000_000_000ns T=1/f
注意:有的板子要选择数码管,所以要加上一个信号来连接数码管的引脚。
源码:
module led_show(
input clk,
input rst,
output seg,
output [7:0] seg_sel_0
);
reg [7:0]seg_sel_1;
reg [24:0]seg_sel;
always@(posedge clk)
begin
if(~rst)
seg_sel<=0;
else if(seg_sel==25'd50_000_000-1)
seg_sel<=0;
else
seg_sel<=seg_sel+1;
end
reg [3:0]cnt;
always@(posedge clk)
begin
if(~rst)
cnt<=0;
else if(seg_sel==25'd50_000_000-1)
begin
if(cnt==9)
cnt<=0;
else
cnt<=cnt+1;
end
end
always@(*)
begin
case(cnt)
4'b0000: seg_sel_1=8'b1100_0000;
4'b0001: seg_sel_1=8'b1111_1001;
4'b0010: seg_sel_1=