密码锁的verilog代码Word格式文档下载.docx

上传人:b****9 文档编号:13010210 上传时间:2022-10-02 格式:DOCX 页数:6 大小:15.91KB
下载 相关 举报
密码锁的verilog代码Word格式文档下载.docx_第1页
第1页 / 共6页
密码锁的verilog代码Word格式文档下载.docx_第2页
第2页 / 共6页
密码锁的verilog代码Word格式文档下载.docx_第3页
第3页 / 共6页
密码锁的verilog代码Word格式文档下载.docx_第4页
第4页 / 共6页
密码锁的verilog代码Word格式文档下载.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

密码锁的verilog代码Word格式文档下载.docx

《密码锁的verilog代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《密码锁的verilog代码Word格式文档下载.docx(6页珍藏版)》请在冰豆网上搜索。

密码锁的verilog代码Word格式文档下载.docx

¨

Ö

Ü

Ú

Ê

±

¼

ä

Ä

Ò

»

°

ë

=#11'

b1;

elseif(cnt==period-1)//É

b0;

=#1'

assignclkout=clkout_r;

endmodule

modulekey_scan(clk,keydrv,rst);

output[3:

0]keydrv;

wire[3:

parameters1=4'

b1110;

parameters2=4'

b1101;

parameters3=4'

b1011;

parameters4=4'

b0111;

reg[3:

0]current_state;

0]next_state;

always@(posedgeclkornegedgerst)

current_state<

=s1;

elsecurrent_state<

=next_state;

always@(current_state)

case(current_state)

s1:

next_state<

=s2;

s2:

=s3;

s3:

=s4;

s4:

=s1;

default:

endcase

assignkeydrv=current_state;

`timescale1ms/1ns

modulemms(enter,clk,

KEYO,KEYI,rst,DIG,Y,right,wrong,change,led_c,clr,led_clr);

inputenter;

outputright;

regright;

outputwrong;

regwrong;

inputchange;

outputled_c;

regled_c;

inputclr;

outputled_clr;

regled_clr;

input[3:

0]KEYO;

//Ó

Ô

í

Í

Â

£

¬

Ç

ü

Å

Ì

³

ö

Ë

¿

¸

ø

FPGA

0]KEYI;

FPGAÊ

¼

wirescanclk;

0]keyvalue;

reg[7:

0]temp_r;

0]scankey_o;

0]scankey_i;

wiredis;

output[7:

0]Y;

0]Y_r;

assignY=~Y_r;

0]DIG;

assigndis=&

KEYO;

regdis_pre;

assignKEYI=keydrv;

scan_clkkey_clk(

.clk(clk),

.clkout(scanclk),

.rst(rst)

);

key_scankey_scan(

.clk(scanclk),

.keydrv(keydrv),

always@(posedgeclkornegedgerst)begin

if(rst==1'

b0)begin

scankey_o<

=4'

b0;

scankey_i<

dis_pre<

=dis;

endelseif(clk==1'

b1)begin

if((dis==1'

b0)&

&

(dis_pre==1'

b1))begin

scankey_o<

=keydrv;

=KEYO;

temp_r<

={scankey_o,scankey_i};

regclkk;

always@(temp_rorrst)begin

b0)begin//Ò

keyvalue=4'

b1111;

clkk<

=1'

else

case(temp_r)

8'

b1110_1110:

begin

keyvalue<

h7;

clkk<

b1110_1101:

h8;

b1110_1011:

h9;

b1101_1110:

h4;

b1101_1101:

h5;

b1101_1011:

h6;

b1011_1110:

h1;

8'

b1011_1101:

h2;

b1011_1011:

h3;

b0111_1101:

h0;

default:

keyvalue<

=4'

reg[2:

always@(negedgerstorposedgeclkk)

beginif(!

rst)begincnt<

=0;

RG<

end

begincnt<

=cnt+1;

={keyvalue,RG[15:

4]};

//output[15:

0]RG;

reg[15:

/*

always@(cnt)

if(!

rst)RG<

case(cnt)

3'

b001:

beginRG[3:

0]<

=keyvalue;

b010:

beginRG[7:

4]<

b011:

beginRG[11:

8]<

b100:

beginRG[15:

12]<

=RG;

*/

reg[1:

0]js;

always@(posedgescanclk)

rst)js<

js<

=js+1;

always@(js)

rst)DIG<

case(js)

2'

b00:

beginDIG<

A<

=RG[3:

0];

b01:

=RG[7:

4];

b10:

=RG[11:

8];

b11:

=RG[15:

12];

0]A;

always@(Aorrst)

b0)//Ò

Y_r<

=8'

b0000_0000;

Y_r=8'

case(A)

//5'

hh:

Y-r=8'

//wuxianshi

4'

h0:

Y_r=8'

b0011_1111;

//0

h1:

b0000_0110;

//1

h2:

b0101_1011;

//2

h3:

b0100_1111;

//3

h4:

b0110_0110;

//4

h5:

b0110_1101;

//5

h6:

b0111_1101;

//6

h7:

b0000_0111;

//7

h8:

b0111_1111;

//8

h9:

b0110_1111;

//9

//4'

b0001:

b1000_0000;

//.

b0100_1001;

0]MM;

always@(enter)

enter)beginright<

wrong<

//MM<

=16'

b0001_0010_0011_0100;

beginif(enter==1'

ba1)

beginif(RG==MM)beginright<

elsebeginright<

always@(changeorclr)

clr)

beginled_clr<

change)led_c<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1