包括按键输入和显示模块,作为4位十六进制信号输入,同步显示在led数码管上,无输入时自动进行脉冲计数
模块化led (comscan、clr、k、kon、kc、o、comscanout );
输入clr,kon;
input [3:0]k;
input [3:0]kc;
输入计算;
output reg [7:0]o;
reg[31:0]中心;
reg [3:0]show;
reg [7:0]clk0;
reg [15:0]temp;
reg clk;
output reg [2:0]comscanout;
always @(posedge comscan )
比根
comscanout [ 2:0 ]=comscanout [ 2:0 ]1' B1;
结束
always @ (posedge clk )
比根
if (! clr )
counter [ 31:0 ]=counter [ 31:0 ]1' B1;
else
counter[31:0]=1'b0;
结束
always @(posedge comscan )
比根
case(comscanout[2:0]
3'b000:begin
if (! kon ) show[3:0]=counter[3:0];
else
if(KC[0]==1) ) ) )。
比根
show[3:0]=k[3:0];
temp[3:0]=k[3:0];
结束
else
show[3:0]=temp[3:0];
结束
3'b001:begin
if (! kon )
show[3:0]=counter[7:4];
ELSEif(KC[1]==1) ) ) )。
比根
show[3:0]=k[3:0];
temp[7:4]=k[3:0];
结束
else
show[3:0]=temp[7:4];
结束
3'b010:begin
if (! kon )
show [ 3:0 ]=counter [ 11:8 ];
ELSEif(KC[2]==1) () ) ) ) ) ) ) )。
比根
show[3:0]=k[3:0];
temp[11:8]=k[3:0];
结束
else
show[3:0]=temp[11:8];
结束
3'b011:begin
if (! kon )
show [ :0 ]=counter [ 15:12 ];
ELSEif(KC[3]==1) ) )。
比根
show[3:0]=k[3:0];
temp[15:12]=k[3:0];
结束
else
show[3:0]=temp[15:12];
结束
3 ' b 100: show [ 3:0 ]=counter [ 19336016 ];
3 ' b 101: show [ 3:0 ]=counter [ 2:20 ];
3 ' b 110: show [ 3:0 ]=counter [ 27336024 ];
3 ' b 111: show [ 3:0 ]=counter [ 31:28 ];
结束案例
比根
if(clk0[7:0]==8'b1111_1111 )
比根
clk=~clk;
clk0[7:0]=8'b0000_0000;
结束
else
clk0[ 7:0 ]=clk0[ 7:0 ]1' B1;
结束
结束
always@((1) ) ) )
比根
case(show[3:0]
4'b0000:o[7:0]=8'h3f;
4'b0001:o[7:0]=8'h06;
4'b0010:o[7:0]=8'h5b;
4'b0011:o[7:0]=8'h4f;
4'b0100:o[7:0]=8'h66;
4'b0101:o[7:0]=8'h6d;
4'b0110:o[7:0]=8'h7d;
4'b0111:o[7:0]=8'h07;
4'b1000:o[7:0]=8'h7f;
4'b1001:o[7:0]=8'h6f;
4'b1010:o[7:0]=8'h77;
4'b1011:o[7:0]=8'h7c;
4'b1100:o[7:0]=8'h39;
4'b1101:o[7:0]=8'h5e;
4'b1110:o[7:0]=8'h79;
4'b1111:o[7:0]=8'h71;
结束案例
结束
最终模块
tance转载注明出处