python编辑七段数码管引脚图_数码管显示的Verilog代码

//用4个数码管显示一个16位二进制数据Data,每个数码管显示各自的数据0.2ms

module SMG_4(

input [15:0] Data,

input CLR,//高电平有效

input CLK,//100MHz

output [3:0] AN,

output [7:0] SEG

);

reg[3:0] Data_4;

reg[1:0] BIT_SEL;

reg[15:0] cnt;

SMG_1 SMG_i(SEG,AN,BIT_SEL,Data_4);

always @(posedge CLK or posedge CLR)

if(CLR)

begin

cnt&lt=16'b0;

BIT_SEL&lt=2'b0;

end

else

begin

cnt&lt= cnt + 1'b1;

if (cnt==16'd20000) //延时20000*10ns=0.2ms

begin

BIT_SEL &lt= BIT_SEL + 1'b1;//换一位数码管显示

cnt &lt=16'b0;

end

end

always @(*)//控制每个数码管显示对应位的数字

begin

case(BIT_SEL)

0:Data_4[3:0] &lt= Data[15:12];

1:Data_4[3:0] &lt= Data[11:8];

2:Data_4[3:0] &lt= Data[7:4];

3:Data_4[3:0] &lt= Data[3:0];

default:Data_4[3:0] &lt= Data[3:0];

endcase

end

endmodule

module SMG_1(

output reg [7:0] seg,

output reg [3:0] AN,

input wire [1:0] Bit_Sel,

input wire [3:0] Data

);

always @(*)

begin

case (Bit_Sel)

2'b00: AN&lt=4'b0111;

2'b01: AN&lt=4'b1011;

2'b10: AN&lt=4'b1101;

2'b11: AN&lt=4'b1110;

default:AN&lt=4'b1111;

endcase

end

always @(*)

begin

case (Data[3:0])

0:seg[7:0]&lt=8'b00000011;

1:seg[7:0]&lt=8'b10011111;

2:seg[7:0]&lt=8'b00100101;

3:seg[7:0]&lt=8'b00001101;

4:seg[7:0]&lt=8'b10011001;

5:seg[7:0]&lt=8'b01001001;

6:seg[7:0]&lt=8'b01000001;

7:seg[7:0]&lt=8'b00011111;

8:seg[7:0]&lt=8'b00000001;

9:seg[7:0]&lt=8'b00001001;

10:seg[7:0]&lt=8'b00010001;

11:seg[7:0]&lt=8'b11000001;

12:seg[7:0]&lt=8'b01100011;

13:seg[7:0]&lt=8'b10000101;

14:seg[7:0]&lt=8'b01100001;

15:seg[7:0]&lt=8'b01110001;

default:seg[7:0]&lt=8'b11111111;

endcase

end

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值