|
1资产
module scan_led(clk_50M,
clr,
dis,fee,
hour,minute,
second,
sm_db3,sm_db4,
sm_db5,sm_db6,
sm_db7,sm_db8);
input clk_50M,clr;
input [11:0]dis;
input [19:0]fee;
input [7:0]hour;
input [7:0]minute;
input [7:0]second;
output [6:0]sm_db3;
output [6:0]sm_db4;
output [6:0]sm_db5;
output [6:0]sm_db6;
output [6:0]sm_db7;
output [6:0]sm_db8;
reg [6:0]sm_d3;
reg [6:0]sm_d4;
reg [6:0]sm_d5;
reg [6:0]sm_d6;
reg [6:0]sm_d7;
reg [6:0]sm_d8;
reg sm_db3;
reg sm_db4;
reg sm_db5;
reg sm_db6;
reg sm_db7;
reg sm_db8;
parameter seg0=7'h40,
seg1=7'h79,
seg2=7'h24,
seg3=7'h30,
seg4=7'h19,
seg5=7'h12,
seg6=7'h02,
seg7=7'h78,
seg8=7'h00,
seg9=7'h10;
reg [31:0] cnt_1;
always@(posedge clk_50M)
begin
cnt_1<=cnt_1+1'd1;
if(cnt_1==300000001)
cnt_1<=0;
end
if(cnt_1==100000000)
begin
[url=mailto:always@(fee[19:16]always@(fee[19:16[/url]])
begin
case(fee[19:16]) //use third led to display fee[19:16]
4'd0:sm_d3<=seg0;
4'd1:sm_d3<=seg1;
4'd2:sm_d3<=seg2;
4'd3:sm_d3<=seg3;
4'd4:sm_d3<=seg4;
4'd5:sm_d3<=seg5;
4'd6:sm_d3<=seg6;
4'd7:sm_d3<=seg7;
4'd8:sm_d3<=seg8;
4'd9:sm_d3<=seg9;
default;
endcase
end
[url=mailto:always@(fee[15:12]always@(fee[15:12[/url]])
begin
case( fee[15:12] ) //use fourth led to display fee[15:12]
4'd0:sm_d4<=seg0;
4'd1:sm_d4<=seg1;
4'd2:sm_d4<=seg2;
4'd3:sm_d4<=seg3;
4'd4:sm_d4<=seg4;
4'd5:sm_d4<=seg5;
4'd6:sm_d4<=seg6;
4'd7:sm_d4<=seg7;
4'd8:sm_d4<=seg8;
4'd9:sm_d4<=seg9;
default:;
endcase
end
[url=mailto:always@(fee[11:8]always@(fee[11:8[/url]])
begin
case(fee[11:8]) //use fifth led to display fee[11:8]
4'd0:sm_d5<=seg0;
4'd1:sm_d5<=seg1;
4'd2:sm_d5<=seg2;
4'd3:sm_d5<=seg3;
4'd4:sm_d5<=seg4;
4'd5:sm_d5<=seg5;
4'd6:sm_d5<=seg6;
4'd7:sm_d5<=seg7;
4'd8:sm_d5<=seg8;
4'd9:sm_d5<=seg9;
default;
endcase
end
[url=mailto:always@(fee[7:3]always@(fee[7:3[/url]])
begin
case(fee[7:4]) //use sixth led to display fee[7:4]
4'd0:sm_d6<=seg0;
4'd1:sm_d6<=seg1;
4'd2:sm_d6<=seg2;
4'd3:sm_d6<=seg3;
4'd4:sm_d6<=seg4;
4'd5:sm_d6<=seg5;
4'd6:sm_d6<=seg6;
4'd7:sm_d6<=seg7;
4'd8:sm_d6<=seg8;
4'd9:sm_d6<=seg9;
default;
endcase
end
[url=mailto:always@(fee[3:0]always@(fee[3:0[/url]])
begin
case(fee[3:0]) //use seventh led to display fee[3:0]
4'd0:sm_d7<=seg0;
4'd1:sm_d7<=seg1;
4'd2:sm_d7<=seg2;
4'd3:sm_d7<=seg3;
4'd4:sm_d7<=seg4;
4'd5:sm_d7<=seg5;
4'd6:sm_d7<=seg6;
4'd7:sm_d7<=seg7;
4'd8:sm_d7<=seg8;
4'd9:sm_d7<=seg9;
default: ;
endcase
end
assign sm_db3=sm_d3;
assign sm_db4=sm_d4;
assign sm_db5=sm_d5;
assign sm_db6=sm_d6;
assign sm_db7=sm_d7;
end
else if(cnt_1==32'd200000000)
begin
[url=mailto:always@(dis[11:8]always@(dis[11:8[/url]])
begin
case(dis[11:8]) //use third led display dis[11:8]
4'd0:sm_d3<=seg0;
4'd1:sm_d3<=seg1;
4'd2:sm_d3<=seg2;
4'd3:sm_d3<=seg3;
4'd4:sm_d3<=seg4;
4'd5:sm_d3<=seg5;
4'd6:sm_d3<=seg6;
4'd7:sm_d3<=seg7;
4'd8:sm_d3<=seg8;
4'd9:sm_d3<=seg9;
default: ;
endcase
end
[url=mailto:always@(dis[7:4]always@(dis[7:4[/url]])
begin
case(dis[7:4]) //use fourth LED display dis[7:4]
4'd0:sm_d4<=seg0;
4'd1:sm_d4<=seg1;
4'd2:sm_d4<=seg2;
4'd3:sm_d4<=seg3;
4'd4:sm_d4<=seg4;
4'd5:sm_d4<=seg5;
4'd6:sm_d4<=seg6;
4'd7:sm_d4<=seg7;
4'd8:sm_d4<=seg8;
4'd9:sm_d4<=seg9;
default;
endcase
end
[url=mailto:always@(dis[3:0]always@(dis[3:0[/url]])
begin
case (dis[3:0]) //use fifth led to display dis[3:0]
4'd0:sm_d5<=seg0;
4'd1:sm_d5<=seg1;
4'd2:sm_d5<=seg2;
4'd3:sm_d5<=seg3;
4'd4:sm_d5<=seg4;
4'd5:sm_d5<=seg5;
4'd6:sm_d5<=seg6;
4'd7:sm_d5<=seg7;
4'd8:sm_d5<=seg8;
4'd9:sm_d5<=seg9;
default;
endcase
end
assign sm_db3=sm_d3;
assign sm_db4=sm_d4;
assign sm_db5=sm_d5;
end
else if(cnt_1==32'd300000000)
begin
[url=mailto:always@(hour[7:4]always@(hour[7:4[/url]])
begin
case (hour[7:4])
4'd0:sm_d3<=seg0;
4'd1:sm_d3<=seg1;
4'd2:sm_d3<=seg2;
4'd3:sm_d3<=seg3;
4'd4:sm_d3<=seg4;
4'd5:sm_d3<=seg5;
4'd6:sm_d3<=seg6;
4'd7:sm_d3<=seg7;
4'd8:sm_d3<=seg8;
4'd9:sm_d3<=seg9;
default;
endcase
end
[url=mailto:always@(hour[3:0]always@(hour[3:0[/url]])
begin
case (hour[3:0])
4'd0:sm_d4<=seg0;
4'd1:sm_d4<=seg1;
4'd2:sm_d4<=seg2;
4'd3:sm_d4<=seg3;
4'd4:sm_d4<=seg4;
4'd5:sm_d4<=seg5;
4'd6:sm_d4<=seg6;
4'd7:sm_d4<=seg7;
4'd8:sm_d4<=seg8;
4'd9:sm_d4<=seg9;
default;
endcase
end
[url=mailto:always@(minute[7:4]always@(minute[7:4[/url]])
begin
case (minute[7:4])
4'd0:sm_d5<=seg0;
4'd1:sm_d5<=seg1;
4'd2:sm_d5<=seg2;
4'd3:sm_d5<=seg3;
4'd4:sm_d5<=seg4;
4'd5:sm_d5<=seg5;
4'd6:sm_d5<=seg6;
4'd7:sm_d5<=seg7;
4'd8:sm_d5<=seg8;
4'd9:sm_d5<=seg9;
default;
endcase
end
[url=mailto:always@(minute[3:0]always@(minute[3:0[/url]])
begin
case (minute[3:0])
4'd0:sm_d6<=seg0;
4'd1:sm_d6<=seg1;
4'd2:sm_d6<=seg2;
4'd3:sm_d6<=seg3;
4'd4:sm_d6<=seg4;
4'd5:sm_d6<=seg5;
4'd6:sm_d6<=seg6;
4'd7:sm_d6<=seg7;
4'd8:sm_d6<=seg8;
4'd9:sm_d6<=seg9;
default;
endcase
end
[url=mailto:always@(second[7:4]always@(second[7:4[/url]])
begin
case (second[7:4])
4'd0:sm_d7<=seg0;
4'd1:sm_d7<=seg1;
4'd2:sm_d7<=seg2;
4'd3:sm_d7<=seg3;
4'd4:sm_d7<=seg4;
4'd5:sm_d7<=seg5;
4'd6:sm_d7<=seg6;
4'd7:sm_d7<=seg7;
4'd8:sm_d7<=seg8;
4'd9:sm_d7<=seg9;
default;
endcase
end
[url=mailto:always@(second[3:0]always@(second[3:0[/url]])
begin
case (second[3:0])
4'd0:sm_d8<=seg0;
4'd1:sm_d8<=seg1;
4'd2:sm_d8<=seg2;
4'd3:sm_d8<=seg3;
4'd4:sm_d8<=seg4;
4'd5:sm_d8<=seg5;
4'd6:sm_d8<=seg6;
4'd7:sm_d8<=seg7;
4'd8:sm_d8<=seg8;
4'd9:sm_d8<=seg9;
default;
endcase
end
assign sm_db3=sm_d3;
assign sm_db4=sm_d4;
assign sm_db5=sm_d5;
assign sm_db6=sm_d6;
assign sm_db7=sm_d7;
assign sm_db8=sm_d8;
end
endmodule |
|