湖北民族學(xué)院信息工程學(xué)院 黃雙林 景愛霞 劉 嵩湖北民族學(xué)院科技學(xué)院 徐 建
?
基于FPGA的組合邏輯電路教學(xué)實驗融合研究
湖北民族學(xué)院信息工程學(xué)院 黃雙林 景愛霞 劉 嵩
湖北民族學(xué)院科技學(xué)院 徐 建
【摘要】FPGA技術(shù)為數(shù)字電路的教學(xué)和實驗,既帶來靈活性又帶來了挑戰(zhàn)。基于硬件描述語言(HDL)的FPGA正深入地改變傳統(tǒng)數(shù)字系統(tǒng)設(shè)計方法、設(shè)計過程和設(shè)計觀念。本文對數(shù)字電路教學(xué)中組合邏輯部分內(nèi)容進(jìn)行了基于硬件描述語言(HDL)的FPGA改造,有利于克服傳統(tǒng)數(shù)字電路教學(xué)實驗中的缺點。這種硬件設(shè)計軟件化設(shè)計模式有利于培養(yǎng)學(xué)生創(chuàng)新能力、增強綜合素質(zhì)和提高教學(xué)質(zhì)量,促使學(xué)生盡早掌握數(shù)字系統(tǒng)硬件設(shè)計軟件化發(fā)展的新趨勢,提高學(xué)習(xí)興趣。
【關(guān)鍵詞】數(shù)字電路;FPGA;數(shù)字系統(tǒng)設(shè)計;硬件描述語言
《數(shù)字電子技術(shù)基礎(chǔ)》是電氣信息類專業(yè)的專業(yè)基礎(chǔ)課程,具有很強的實踐性[1]。傳統(tǒng)數(shù)字電路教學(xué)注重數(shù)字系統(tǒng)分析設(shè)計的所有細(xì)節(jié),對于初學(xué)者來說比較繁雜,難以掌握和設(shè)計復(fù)雜度較高的數(shù)字系統(tǒng)。在實際教學(xué)中,教師往往以簡單實例引導(dǎo)學(xué)生,逐步理解和掌握數(shù)字邏輯電路分析設(shè)計的一般步驟和方法。對于較復(fù)雜的數(shù)字系統(tǒng)設(shè)計,對于學(xué)生學(xué)習(xí)和教師教學(xué)都存在著很大的挑戰(zhàn)以及難以逾越的障礙。基于FPGA技術(shù)[2],就可以讓教師只需要向?qū)W生教授數(shù)字邏輯問題的分析和設(shè)計思路,從頂層開始,逐步分解復(fù)雜問題直至基本的簡單的數(shù)字邏輯問題。然后,通過HDL語言將這問題和思路描述出來。最后將綜合分析后的目標(biāo)文件下載到FPGA器件就可以觀察設(shè)計結(jié)果。
近年來,基于FPGA的數(shù)字系統(tǒng)設(shè)計已經(jīng)走入了高校電子信息專業(yè)數(shù)字電路教學(xué)環(huán)節(jié)和實驗室實踐環(huán)節(jié)。文獻(xiàn)[3]認(rèn)為,采用FPGA技術(shù),改造高校數(shù)字電路實驗方法和手段,對促進(jìn)教學(xué)內(nèi)容的知識更新,順應(yīng)國際電子設(shè)計及應(yīng)用技術(shù)發(fā)展需求,引入計算機EDA技術(shù)的設(shè)計和仿真手段,加強學(xué)生的綜合設(shè)計能力和直觀分析效率,使學(xué)生的學(xué)習(xí)和實驗訓(xùn)練與現(xiàn)代技術(shù)發(fā)展相一致,具有一重要的意義和迫切性。文獻(xiàn)[4]分別通過組合邏輯和時序邏輯設(shè)計實例比較了傳統(tǒng)設(shè)計方法存在的問題和現(xiàn)代邏輯設(shè)計方法的優(yōu)勢。文獻(xiàn)[5]闡述了FPGA在數(shù)字電路實驗教學(xué)中的重要地位和作用。文獻(xiàn)[6]通過對現(xiàn)有課程中不同部分的內(nèi)容進(jìn)行分析,嘗試提取適應(yīng)發(fā)展的部分,重新構(gòu)成一個自洽的課程內(nèi)容體系。并認(rèn)為HDL的設(shè)計應(yīng)該將速度的評價融入到電路結(jié)構(gòu)的描述中,并通過仿真工具的應(yīng)用使這一評價能夠推廣到大系統(tǒng)中。
然而,關(guān)于如何將基于FPGA的現(xiàn)代EDA技術(shù)與傳統(tǒng)數(shù)字電路課堂教學(xué)融合的研究非常少,而且現(xiàn)有的研究工作尚處于起步階段。接下來,本文將以組合邏輯電路為例,研究和討論在數(shù)字電路課程教學(xué)中如何將基于FPGA的現(xiàn)代EDA技術(shù)與數(shù)字電路傳統(tǒng)課堂教學(xué)相融合的方法和步驟。
組合邏輯電路的設(shè)計:根據(jù)實際邏輯問題,求出所要求邏輯功能的最簡單邏輯電路。
2.1傳統(tǒng)設(shè)計思路
組合邏輯電路的設(shè)計步驟如下:
①邏輯抽象:根據(jù)實際邏輯問題的因果關(guān)系確定輸入、輸出變量,并定義邏輯狀態(tài)的含義;②根據(jù)邏輯描述列出真值表;③由真值表寫出邏輯表達(dá)式;④簡化和變換邏輯表達(dá)式,畫出邏輯圖。
2.2基于FPGA的設(shè)計思路
基于FPGA的組合邏輯電路的設(shè)計步驟如下:
①根據(jù)實際邏輯問題的因果關(guān)系確定輸入、輸出變量,并定義邏輯狀態(tài)的含義,并確定頂層模塊;②采用HDL語言描述邏輯問題;③通過EDA工具進(jìn)行綜合分析、仿真和FPGA在線測試。
傳統(tǒng)的數(shù)字系統(tǒng)組合邏輯電路設(shè)計需要人工列出真值表,由真值表寫出邏輯函數(shù)表達(dá)式,再簡化和變換邏輯表達(dá)式,畫出邏輯圖。最后還需要購買各種相應(yīng)的門電路或者集成電路器件,制作相應(yīng)的實際印制板電路,才可以進(jìn)行實際數(shù)字系統(tǒng)的測試。這整個過程對于剛剛接觸數(shù)字邏輯電路的學(xué)生來說,將是一項困難大、耗時長和難以逾越的障礙。因此傳統(tǒng)的數(shù)字電路教學(xué)和實驗需要占用大量的課時,但是效果卻難以令人滿意。
基于硬件描述語言和FPGA的數(shù)字電路設(shè)計能夠大大簡化初始入門者的學(xué)習(xí)門檻,輕松進(jìn)行數(shù)字電路實驗和進(jìn)行實際數(shù)字系統(tǒng)的仿真測試。
3.1注重分析和設(shè)計思路
在實際教學(xué)中,首先向?qū)W生傳輸傳統(tǒng)的組合邏輯電路分析設(shè)計思想,然后再講解基于FPGA和HDL語言的設(shè)計思路。通過對比教學(xué),激發(fā)學(xué)生學(xué)習(xí)先進(jìn)設(shè)計方法、理念和EDA開發(fā)工具。
在對比教學(xué)中,注重問題的分析,突出如何從問題中提煉出基本邏輯問題,理清各個邏輯變量的內(nèi)在因果聯(lián)系,確定輸入、輸出邏輯變量,并定義邏輯狀態(tài)的含義。在此基礎(chǔ)上,用HDL語言對于問題進(jìn)行描述。最后,通過EDA工具進(jìn)行綜合分析、仿真和FPGA在線測試。
在這個過程中,無論是初始針對原始問題的分析以確定內(nèi)在因果邏輯關(guān)系,還是采用HDL語言對于問題進(jìn)行描述和設(shè)計,都只需要教師和學(xué)生著眼于問題分析和設(shè)計思路。這大大簡化整個設(shè)計過程、加快實際電路設(shè)計速度,降低設(shè)計門檻,并且通過FPGA實驗板可以馬上驗證實際效果。
3.2典型數(shù)字集成電路與HDL描述相結(jié)合
在組合數(shù)字邏輯電路教學(xué)中,對于典型數(shù)字集成電路的教學(xué)可以與HDL描述相結(jié)合。首先介紹典型數(shù)字集成電路的原理、功能、邏輯電路圖、真值表以及典型期間等;在此基礎(chǔ)上,接著討論采用HDL語言描述的編程模塊,以及仿真和實際測試效果。這樣的教學(xué)有利于學(xué)生更加注重模塊邏輯功能和設(shè)計思路,減少學(xué)生學(xué)習(xí)器件以及器件連接的枯燥,即時的實際效果展示又可以進(jìn)一步激發(fā)學(xué)生學(xué)習(xí)興趣,強化學(xué)生求知欲望。在接下來部分,本文將以三八譯碼器為實例進(jìn)行說明。
譯碼的功能是將具有特定含義的二進(jìn)制碼進(jìn)行辨別,并轉(zhuǎn)換成控制信號,具有譯碼功能的邏輯電路稱為譯碼器。譯碼器在數(shù)字系統(tǒng)中有廣泛的應(yīng)用,不僅用于代碼的轉(zhuǎn)換、終端的數(shù)字顯示,還用于數(shù)據(jù)分配,存貯器尋址和組合控制信號等。不同的功能可選用不同種類的譯碼器。譯碼是編碼的逆過程,它能將二進(jìn)制碼翻譯成代表某一特定含義的信號 (即電路的某種狀態(tài))。具有譯碼功能的邏輯電路稱為譯碼器。
圖1 波形仿真
三八譯碼器有三個地址輸入端A、B、C,它們共有8種狀態(tài)的組合,即可譯出8個輸出信號Y0~Y7。另外它還有三個使能輸入端E1、E2、E3。實現(xiàn)3-8譯碼器的Verilog HDL代碼如下:
圖1是三八譯碼器的波形仿真。從仿真波形中,可以直觀地看出輸入和輸出之間的邏輯關(guān)系。在波形仿真之后,可以很快通過下載線下載目標(biāo)文件到FPGA實驗板,在課堂上就可以觀察實際電路的運行效果。
本文思考如何將基于HDL語言的FPGA實驗板與傳統(tǒng)數(shù)字電路教學(xué)相結(jié)合。這種思路無疑能夠豐富課堂教學(xué)手段,開拓學(xué)生視野,激發(fā)學(xué)生興趣,強化學(xué)生求知欲望。數(shù)字電路是一門實踐性很強的課程,通過課程講授、結(jié)合虛擬實驗和實物實驗將使學(xué)生的創(chuàng)新精神、動手能力得到較大的提高,進(jìn)一步鞏固所學(xué)的理論知識,提高教學(xué)質(zhì)量。在厚基礎(chǔ)、寬口徑的應(yīng)用人才培養(yǎng)模式指導(dǎo)下,我們的課堂教學(xué)中應(yīng)該注重知識的復(fù)合性、現(xiàn)時性和應(yīng)用性,培養(yǎng)學(xué)生應(yīng)用科學(xué)理論解決實際問題的綜合能力、實踐能力及創(chuàng)新能力。
參考文獻(xiàn)
[1]康華光,秦臻,張林.電子技術(shù)基礎(chǔ)–數(shù)字部分[M].北京:高等教育出版社,2014.
[2]王金明.數(shù)字系統(tǒng)設(shè)計與Verilog HDL[M].北京:電子工業(yè)出版社,2014.
[3]朱明程,董爾令.應(yīng)用FPGA技術(shù)改造數(shù)字電路實驗[J].電工教學(xué),1995,17(3):29-34.
[4]雙凱,蔡洪明.基于CPLD/FPGA的數(shù)字電路設(shè)計方法變革必要性研究[J].現(xiàn)代電子技術(shù),2014,4,37(7):139-142.
[5]丁健,杜瀟君,張景鳳.基于FPGA的數(shù)字電路實驗教學(xué)的探討[J].信息技術(shù)教學(xué)與研究,2011,60:158-159.
[6]姜書艷,張鷹,蔣寧,唐軍,李力.數(shù)字電路教學(xué)體系改革的研究[J].教育教學(xué)論壇,2014.2,6:165-166.
通訊作者:徐建。
基金項目:湖北民族學(xué)院博士啟動基金(MY2013B015);湖北民族學(xué)院科技學(xué)院教學(xué)研究項目(KYJY201507)。