【文章內(nèi)容簡(jiǎn)介】
過(guò)4位時(shí),后面的輸入將被忽略。 顯示模塊 為了節(jié)省I/O管腳和芯片內(nèi)部資源,本設(shè)計(jì)采用動(dòng)態(tài)掃描的方法進(jìn)行顯示。模塊用100 kHz時(shí)鐘信號(hào)和人眼的視覺(jué)暫留效應(yīng)使4位數(shù)碼管看起來(lái)像是同時(shí)點(diǎn)亮。圖4是根據(jù)VHDL代碼所繪制的顯示模塊框圖。其中多路數(shù)據(jù)選擇器是由按鍵次數(shù)(NC)控制選擇哪一個(gè)數(shù)碼管和哪一組輸入數(shù)據(jù)。 系統(tǒng)主控模塊 此模塊是系統(tǒng)的核心控制模塊,系統(tǒng)的所有控制行為都是由它完成的,采用狀態(tài)機(jī)(FSM)來(lái)描述系統(tǒng)的控制行為。由于多進(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ā)生。缺點(diǎn)是與多進(jìn)程狀態(tài)機(jī)相比,輸出信號(hào)要晚一個(gè)時(shí)鐘周期。通過(guò)反復(fù)試驗(yàn)在VHDL編程時(shí)將輸出信號(hào)與狀態(tài)轉(zhuǎn)換同步進(jìn)行,從而很好地解決了輸出信號(hào)滯后的問(wèn)題。圖5為主控模塊的狀態(tài)轉(zhuǎn)換圖。其中S0為系統(tǒng)上電初始化狀態(tài),也是系統(tǒng)復(fù)位后所轉(zhuǎn)入的狀態(tài)。本設(shè)計(jì)設(shè)置S0狀態(tài)的另一主要原因是考慮到一個(gè)完備的狀態(tài)機(jī)應(yīng)該具備初始化狀態(tài)和默認(rèn)狀態(tài)。當(dāng)芯片加電或者復(fù)位后,狀態(tài)機(jī)應(yīng)該能夠自動(dòng)將所有判斷條件復(fù)位,并進(jìn)入初始化狀態(tài)。但需要強(qiáng)調(diào)的是,大多數(shù)FPGA有GSR(Global Set/Reset)信號(hào),當(dāng)FPGA加電后,GSR信號(hào)拉高,對(duì)所有的寄存器,RAM等單元復(fù)位/置位,這時(shí)配置于FPGA的邏輯并未生效;不能保證正確地進(jìn)入初始化狀態(tài)。所以使用GSR企圖進(jìn)入FPGA的初始化狀態(tài),常常會(huì)產(chǎn)生種種不必要的麻煩[。S1為上鎖狀態(tài),S2為解鎖狀態(tài),S3為解鎖錯(cuò)誤次數(shù)記錄狀態(tài),S4為系統(tǒng)報(bào)警狀態(tài),S5為開(kāi)鎖狀態(tài),S6為密碼更改狀態(tài)。3. 重要程序模塊分析1,密碼設(shè)置模塊 process(clk) 定義個(gè)存儲(chǔ)器將密碼存放在keyin中 begin if clk39。event and clk=39。139。 then keyin=key。 end if。end process。 prr=pdan or rw1 or rin or ok。st: process(keyin,prr,ok1) 第一次修改密碼 begin if ok1=39。139。 then start=39。039。 elsif (keyin/=000000 and