【正文】
初始狀態(tài)下才能復(fù)位。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式、描述風(fēng)格以及語(yǔ)法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。所設(shè)計(jì)的電子密碼鎖系統(tǒng)結(jié)構(gòu)如圖1所示。主要產(chǎn)生三個(gè)時(shí)鐘信號(hào)(16 Hz、64 Hz、100 kHz),分別為系統(tǒng)各個(gè)功能模塊提供時(shí)鐘驅(qū)動(dòng)信號(hào)。由于要產(chǎn)生多個(gè)時(shí)鐘信號(hào)。由于機(jī)械式鍵盤具有成本低、結(jié)構(gòu)簡(jiǎn)單、可靠性高、應(yīng)用廣泛等優(yōu)點(diǎn),其按鍵分布及鍵值編碼如圖2所示。鍵盤掃描電路用來(lái)產(chǎn)生掃描信號(hào)KH,其按照1110110110110111的規(guī)律循環(huán)變化,并通過(guò)KC來(lái)檢測(cè)是否有鍵按下。特別值得注意的是鍵盤掃描電路掃描時(shí)鐘的確立,如果掃描時(shí)鐘不合適,將產(chǎn)生鍵按下時(shí)反應(yīng)太慢,或KC產(chǎn)生錯(cuò)誤的輸出。此模塊采用狀態(tài)機(jī)設(shè)計(jì),其狀態(tài)轉(zhuǎn)換圖如圖3所示。消抖電路的時(shí)鐘選擇很關(guān)鍵,選擇不當(dāng)則不能正常工作。 鍵盤編碼模塊 上述的鍵盤中可分為數(shù)字鍵和功能鍵,其中數(shù)字鍵用來(lái)輸入數(shù)字,但鍵盤所產(chǎn)生的信號(hào)KC[20]并不能直接用于鍵盤輸入處理模塊,因此必須由鍵盤編碼電路對(duì)數(shù)字按鍵的輸出形式進(jìn)行規(guī)劃。另外,在系統(tǒng)規(guī)劃時(shí),也將系統(tǒng)復(fù)位電路規(guī)劃在此模塊內(nèi),復(fù)位信號(hào)是由鍵盤編碼模塊和系統(tǒng)主控模塊輸出的系統(tǒng)復(fù)位輔助信號(hào)mm共同作用產(chǎn)生,從而實(shí)現(xiàn)只能在密碼更改狀態(tài)和系統(tǒng)初始狀態(tài)下才能進(jìn)行系統(tǒng)復(fù)位,確保系統(tǒng)安全可靠。按鍵輸入超過(guò)4位時(shí),后面的輸入將被忽略。模塊用100 kHz時(shí)鐘信號(hào)和人眼的視覺(jué)暫留效應(yīng)使4位數(shù)碼管看起來(lái)像是同時(shí)點(diǎn)亮。其中多路數(shù)據(jù)選擇器是由按鍵次數(shù)(NC)控制選擇哪一個(gè)數(shù)碼管和哪一組輸入數(shù)據(jù)。由于多進(jìn)程編程狀態(tài)機(jī)的輸出是由組合電路發(fā)出的,如果這些輸出信號(hào)被用作時(shí)鐘信號(hào),則極易產(chǎn)生錯(cuò)誤的驅(qū)動(dòng),其優(yōu)勢(shì)是由時(shí)序器件同步輸出,輸出信號(hào)不會(huì)出現(xiàn)毛刺現(xiàn)象,從而很好地避免了競(jìng)爭(zhēng)冒險(xiǎn)的發(fā)生。通過(guò)反復(fù)試驗(yàn)在VHDL編程時(shí)將輸出信號(hào)與狀態(tài)轉(zhuǎn)換同步進(jìn)行,從而很好地解決了輸出信號(hào)滯后的問(wèn)題。其中S0為系統(tǒng)上電初始化狀態(tài),也是系統(tǒng)復(fù)位后所轉(zhuǎn)入的狀態(tài)。當(dāng)芯片加電或者復(fù)位后,狀態(tài)機(jī)應(yīng)該能夠自動(dòng)將所有判斷條件復(fù)位,并進(jìn)入初始化狀態(tài)。所以使用GSR企圖進(jìn)入FPGA的初始化狀態(tài),常常會(huì)產(chǎn)生種種不必要的麻煩[。3. 重要程序模塊分析1,密碼設(shè)置模塊 process(clk) 定義個(gè)存儲(chǔ)器將密碼存放在keyin中 begin if clk39。139。 end if。 prr=pdan or rw1 or rin or ok。139。039。039。139。03