1 引言
隨著電子技術(shù)和ASIC技術(shù)的發(fā)展.數(shù)字系統(tǒng)設(shè)計(jì)向速度快,、容量大、體積小,、重量輕的趨勢(shì)發(fā)展,。目前數(shù)字系統(tǒng)設(shè)計(jì)可直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,,自上而下地逐層完成設(shè)計(jì)過(guò)程:描述,、綜合、優(yōu)化,、仿真與驗(yàn)證,,以及器件生成。該設(shè)計(jì)過(guò)程除系統(tǒng)行為和功能描述外,,其他設(shè)計(jì)幾乎都由計(jì)算機(jī)自動(dòng)完成,,從而實(shí)現(xiàn)電子設(shè)計(jì)自動(dòng)化(EDA)。這樣大大地縮短了系統(tǒng)的設(shè)計(jì)周期,,適應(yīng)當(dāng)今品種多,、批量小的電子市場(chǎng)要求,,提高了產(chǎn)品的競(jìng)爭(zhēng)能力。由于電子設(shè)計(jì)自動(dòng)化是采用硬件描述語(yǔ)言描述硬件電路,,所以研究硬件語(yǔ)言及仿真,、綜合等技術(shù)是電子設(shè)計(jì)自動(dòng)化的首要任務(wù)。
本文提出一種利用MAX+plusⅡ開(kāi)發(fā)軟件環(huán)境和硬件描述語(yǔ)言VHDL的密碼控制系統(tǒng)設(shè)計(jì)方案,,并對(duì)系統(tǒng)的各個(gè)模塊進(jìn)行仿真分析,。
2 VHDL語(yǔ)言特點(diǎn)和基本結(jié)構(gòu)
VHDL語(yǔ)言即超高速集成電路硬件描述語(yǔ)言,它是一種用形式化方法描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語(yǔ)言,,特別適合描述復(fù)雜的組合邏輯,、組運(yùn)算、狀態(tài)機(jī)和真值表,。與傳統(tǒng)的門(mén)級(jí)設(shè)計(jì)方法相比,,VHDL語(yǔ)言具有以下特點(diǎn):
設(shè)計(jì)層次高,用于較復(fù)雜的運(yùn)算時(shí)能盡快發(fā)現(xiàn)問(wèn)題,,縮短產(chǎn)品上市時(shí)間,,從而成本降低;與工藝無(wú)關(guān),獨(dú)立實(shí)現(xiàn),,修改方便,,系統(tǒng)描述能力強(qiáng);可讀性好,有利于交流,,適合文檔保存;VHDL標(biāo)準(zhǔn),、規(guī)范并且可移植性強(qiáng):VHDL類型多且支持用戶自定義類型,也支持自頂向下的設(shè)計(jì)方法和多種電路設(shè)計(jì),。
VHDL語(yǔ)言程序設(shè)計(jì)的基本語(yǔ)法結(jié)構(gòu)如下:
[next]
3 系統(tǒng)設(shè)計(jì)分析
密碼控制系統(tǒng)包括鍵盤(pán),、控制器和顯示器等三部分,如圖1所示,。
4位密碼控制系統(tǒng)設(shè)計(jì)能實(shí)現(xiàn)如下功能:密碼驗(yàn)證功能:即用戶使用鍵盤(pán)輸入4位密碼后,,按#鍵確認(rèn)。如果輸入密碼正確則輸出000l;如果密碼錯(cuò)誤則輸出00000密碼更改功能:當(dāng)用戶輸入密碼正確后,,可在此基礎(chǔ)上更改密碼,,即繼續(xù)輸入4位密碼,按+鍵確認(rèn),,該輸入為新密碼,。如果密碼更改成功,則輸出1000;作為整體,,控制模塊有2個(gè)輸入,,即時(shí)鐘信號(hào)和鍵盤(pán)按鍵信號(hào);兩個(gè)輸出,即鍵盤(pán)掃描信號(hào)和結(jié)果顯示信號(hào),,具體如圖l所示,。該控制模塊總共包括分頻子模塊,、鍵盤(pán)掃描子模塊、鍵盤(pán)譯碼子模塊,、控制子模塊以及輸出顯示子模塊,下面分別對(duì)各個(gè)模塊進(jìn)行編程仿真,。
3.1 分頻子模塊
分頻子模塊將時(shí)鐘分頻為系統(tǒng)所需頻率的時(shí)鐘信號(hào),。通過(guò)觸發(fā)器的級(jí)聯(lián)實(shí)現(xiàn)分頻電路模塊,且級(jí)聯(lián)的觸發(fā)器級(jí)數(shù)不同,,分頻也不同,。級(jí)數(shù)越多頻率越低,并按照一定的規(guī)律而降低,,即頻率隨級(jí)數(shù)的增加以分比為l/2的速率降低,。本系統(tǒng)設(shè)計(jì)采用VHDL語(yǔ)言實(shí)現(xiàn)分頻,其仿真如圖2所示,。由圖2可以看出,,CLK—A、CLK—B,、VLK—B0和CLK—Bl的頻率成倍遞減,。
3.2 鍵盤(pán)掃描子模塊
該模塊通過(guò)分頻子模塊提供的分頻信號(hào),逐周期掃描鍵盤(pán)的每一行,,其信號(hào)分別是lll0,、110l、lOll和0111,,如此循環(huán).即逐周期選中鍵盤(pán)的第一列,、第二列、第三列和第四列,,實(shí)現(xiàn)仿真如圖3所示,。由圖3看出,CLK_SCAN 4位信號(hào)中0的位置代表鍵盤(pán)的列位置,。
3.3 譯碼子模塊
利用鍵盤(pán)掃描子模塊,,讀取鍵盤(pán)的輸入信號(hào),判斷哪一個(gè)按鍵被按下,,仿真如圖4所示,。由圖4看出,_KEYBOARD是掃描周期,,C是鍵盤(pán)按鍵后的輸出信號(hào)值;FLAG_NUMB表示按下的是數(shù)字鍵(值為1),,OUT_NUMB表示按下的鍵號(hào),其中15表示功能鍵(#鍵和*鍵);其余數(shù)字即為其相應(yīng)號(hào)碼鍵,。FLAG FUNC表示按下的是功能鍵(值為1);OUT FUNC表示其按鍵值,,0100表示*鍵,,000l表示#鍵,1000表示數(shù)字鍵,。
3.4 控制子模塊
由于控制子模塊無(wú)法單獨(dú)仿真,,只能和其他模塊一起才能工作,所以無(wú)單獨(dú)仿真圖,。其功能是獲取鍵盤(pán)輸入,,按規(guī)則進(jìn)行判斷并完成相應(yīng)操作(正確、錯(cuò)誤,、設(shè)置密碼,、輸出結(jié)果等)。
3.5 總體仿真
圖5所示為系統(tǒng)總體仿真圖,,以下說(shuō)明圖5中的信號(hào)含義:CLK_SCAN為鍵盤(pán)掃描信號(hào),,指出當(dāng)前掃描鍵盤(pán)的第幾行;KEY_IN為鍵盤(pán)按鍵輸入信號(hào),指出當(dāng)前掃描行的哪一按鍵被按下:SHOW為判斷結(jié)果,,0表示密碼不匹配,、1表示密碼正確、8表示修改密碼成功,。ACC為內(nèi)部移位寄存器,。臨時(shí)存儲(chǔ)4個(gè)4位二進(jìn)制數(shù),用于暫存用戶輸入的密碼;REG為內(nèi)部移位寄存器,,臨時(shí)存儲(chǔ)4個(gè)4位二進(jìn)制數(shù),,用于保存密碼;NC為內(nèi)部信號(hào),用于表示當(dāng)前已輸入數(shù)據(jù)數(shù).或者表示用戶按數(shù)字鍵的次數(shù),。
根據(jù)圖5所示的總體仿真圖,,可導(dǎo)出密碼控制系統(tǒng)電路,如圖6所示,。
4 結(jié)語(yǔ)
本系統(tǒng)設(shè)計(jì)是通過(guò)自動(dòng)調(diào)用MAX-7000S系列的EPM7128SLC84-6型EPGA器件來(lái)實(shí)現(xiàn),。并且通過(guò)系統(tǒng)總體仿真圖能看出設(shè)計(jì)的密碼控制系統(tǒng)完全符合要求。