74ls160設計數(shù)字秒表方案匯總(一)
現(xiàn)場可編程門陣列(簡稱 FPGA)是20 世紀 80 年代中期出現(xiàn)的高密度可編程邏輯器件,采用SRAM開關元件的 FPGA 是易失性的,每次重新加電,F(xiàn)PGA 都要重新裝入配置數(shù)據(jù)。突出優(yōu)點是可反復編程,系統(tǒng)上電時,給 FPGA 加載不同的配置數(shù)據(jù),即可令其完成不同的硬件功能。這種配置的改變甚至可以在系統(tǒng)的運行中進行,實現(xiàn)系統(tǒng)功能的動態(tài)重構。
“在系統(tǒng)可編程”(簡稱 ISP)是指對器件、電路或整個電子系統(tǒng)的邏輯功能可隨時進行修改或重構的能力,支持 ISP 技術的可編程邏輯器件稱為在系統(tǒng)可編程邏輯器件,它不需要專門的編程器,利用計算機接口和一根下載電纜就可以對器件編程了。
1、總體結構
本文利用 EDA 技術中的 Max + plus Ⅱ作為開發(fā)工具,設計了一款基于 FPGA 的數(shù)字式秒表 ,并下載到在系統(tǒng)可編程實驗板的 EPF10K10LC84 - 4 器件中測試實現(xiàn)。其總體結構框架如圖1 所示。圖中的信號源是由實驗板上的時鐘信號經(jīng)分頻而得到的 0. 1 秒信號;控制計數(shù)部分由一個計數(shù)模塊 ctrl 構成,用來實現(xiàn)計時功能,鎖存器模塊 latch 用來對數(shù)據(jù)進行鎖存 ;而譯碼器模塊 DISP 用來對計數(shù)結果進行掃描譯碼;數(shù)碼管用來顯示秒表的工作結果。
2、電路設計
圖2為數(shù)字式秒表的模塊示意圖。輸入信號有三個,分別是 K1 , K2 和 CLK;輸出信號有四個,分別是 LED ,QH[ 6. 。 0 ] ,QL[6. 。 0 ] 及 Q[ 6. 。 0 ]。其中 K1 為“開始/ 清零鍵”,接的是控制計數(shù)部分的整體清零端,該清零信號低電平有效。要求按下 K1 時計時開始 ,再按一下,停止計時,恢復到零狀態(tài)。K2 為“固定顯示鍵”,接的是鎖存器 74373 的允許鎖存端 G,該信號是高電平有效。在計時過程中,按下 K2 時,鎖存數(shù)據(jù) ,顯示固定 ,但計時仍繼續(xù) ;按第二下時 ,顯示從新時間開始。CLK 為時鐘信號 ,必須是秒表計時所需的最小單位 0. 1S。
QH[6. 。 0 ] ,QL[6. 。 0 ] 及 Q[6. 。 0 ] 接三個數(shù)碼管,分別表示秒十位,秒個位和秒十分位。LED 接發(fā)光二極管用來表示秒表的分位,當秒表計時超過59. 9 秒時 LED 燈亮,且能持續(xù)表示到 1分 59. 9 秒,然后燈滅,同時數(shù)碼管重新計時顯示,即該數(shù)字式秒表的計時范圍從0 到2 分鐘?;谠韴D編輯和VHDL語言,并使用從上到下的設計方法設計的秒表,其具體的線路構成如圖3 所示。
在總體電路圖中,根據(jù)設計要求,輸入信號 K1、K2 應采用脈沖開關。由于實驗板上除了撥動開關就是瞬時的按鍵開關,且按鍵開關平時都呈高電平,按一下為低電平。故在實際測試時采用了撥動開關來模擬脈沖開關。根據(jù)設計要求將K1、K2 平時置于相應的高、低電平狀態(tài),需要清零或固定顯示時再將它們分別置于相應的位置上即可。
3、模塊設計
在設計電路時,要遵循從上到下的設計原則。首先從系統(tǒng)設計入手,在頂層進行功能劃分和結構設計,頂層模塊中的每個次層模塊均可完成一個較為獨立的功能,次模塊在調試成功后可生成一個默認符號,以供上一層模塊調用。
3. 1、時鐘信號模塊 cnt100
由于最終的設計結果要下載到可編程邏輯器件中測試,而承載該芯片的“在系統(tǒng)”可編程實驗板上最小也是1 kHz 的時鐘源,而秒表計時所需的最小單位為 0. 1s,故采用 2 片 74160,利用并行輸入方式,接成 100 進制計數(shù)器(00~99),將 1 kHz 信號變成 10 Hz (即 0. 1 s),從而達到分頻的目的。編譯通過后創(chuàng)建的默認符號為 cnt100,其輸入信號為 CLK,輸出信號為 CQ(即高位的進位端 RCO) 。
3. 2、控制計時模塊 ctrl
從 Maxplus2 器件庫中調用 3 片 74160,采用串行時鐘方式,連接成六百進制計數(shù)器(即 0~599),用來表示秒位。將 3 片 74160 的清零端 CLR 連接在一起,用來做秒表的整體清零端。再調用器件庫中的 J K觸發(fā)器,連接相應控制端形成 T′觸發(fā)器,將六百進制計數(shù)器的進位信號接 T′觸發(fā)器的時鐘端。平時其輸出端 Q 保持低電平,所接發(fā)光二極管不亮 ;當計時到 59. 9 秒時,由于有進位信號到來,因此時鐘端出現(xiàn)脈沖下降沿,觸發(fā)器翻轉,Q 由低電平變?yōu)楦唠娖?,發(fā)光二極管點亮,表示已計時到 1 分鐘。再計到 1分 59. 9 秒時,過 1 秒,燈滅,同時數(shù)碼管重新計時顯示。該控制模塊為圖 3 中 ctrl 模塊。
3. 3、鎖存器模塊 latch
因為秒表設計中要求在計時過程中能隨時固定顯示時間,而計時仍然繼續(xù),所以要用到鎖存器。在本例中適宜采用 CD4511 芯片,因為它集合了鎖存、譯碼和驅動功能。但由于 Maxplus2 器件庫中沒有此類芯片,故以鎖存器 74373 外加譯碼器 7447 (DISP) 代替。在設計時從器件庫中調用 2 片 74373 (8 位鎖存器), 將它們的 OEN 統(tǒng)統(tǒng)接低電平,允許數(shù)據(jù)輸出。G端接一起,作為允許數(shù)據(jù)鎖存端 (高電平有效) 。鎖存器部分編譯通過后創(chuàng)建的默認符號見圖 3 中的 latch 模塊,輸入信號有四個,分別是 DH[ 3. 。 0 ] 、DL[3. 。 0 ] 、D[3. 。 0 ] 及 G,輸出有三個,分別是 QH[3. 。 0 ] 、QL[3. 。 0 ]及 Q[3. 。 0 ] 。
3. 4、譯碼顯示模塊 DISP
譯碼器可直接從器件庫中調用 7447 (共陽極譯碼器),將它的控制端按要求接好,形成默認符號 ;也可用 VHDL 語言編程,將 4 位 BCD 碼譯成 7 段數(shù)碼管的編碼(0~9),現(xiàn)采用 VHDL 語言編程,編譯無誤后創(chuàng)建默認文件符號 DISP 以供上層電路調用。顯示部分直接采用實驗板上的 3 個共陽極數(shù)碼管,不用將譯碼器的輸出 a~g 具體連線到實驗板上數(shù)碼管的 7 個段,只需將其輸出端口定義到可用作數(shù)碼管顯示的器件的 I/ O 引腳上即可。7 段數(shù)碼管譯碼器源程序如下
4、編程及測試
為設計項目選定 FLEX10K系列中的 EPF10K10LC84 - 4 器件,鎖定頂層設計中各端口所對應的引腳號,并編譯通過。然后對器件編程,使用 ByteBlaste 下載電纜把項目以在線配置的方式下載到 ISP 實驗板的 EPF10K10LC84 - 4 器件中,按相應的 K1、K2 鍵,觀測數(shù)碼管及發(fā)光二極管的狀態(tài),發(fā)現(xiàn)顯示結果正確。該數(shù)字式秒表具有清零功能,能夠在計時過程中隨時停止計時,恢復到初始狀態(tài)。且具有鎖存/ 計時功能,能在計時過程中通過按“固定顯示鍵”,將顯示固定住,而計時仍繼續(xù) ;再按下鍵,顯示從新時間開始。實驗證明該秒表工作正常,基本上已達到了預期的設計要求。
5、結束語
在Max + plus Ⅱ開發(fā)環(huán)境下,采用自頂向下的設計方法有利于在早期發(fā)現(xiàn)結構設計中的錯誤,避免不必要的重復設計。再結合基于 FPGA 的“在系統(tǒng)”可編程實驗板,輕輕松松就能實現(xiàn)各種電子產(chǎn)品的設計,現(xiàn)場觀察實驗測試結果。大大縮短了產(chǎn)品的設計周期和調試周期,提高了設計的可靠性和成功率,充分體現(xiàn)了可編程邏輯器件在數(shù)字電路設計中的優(yōu)越性。
評論
查看更多