湖北民族學院信息工程學院 黃雙林 景愛霞 劉 嵩湖北民族學院科技學院 徐 建
?
基于FPGA的組合邏輯電路教學實驗融合研究
湖北民族學院信息工程學院 黃雙林 景愛霞 劉 嵩
湖北民族學院科技學院 徐 建
【摘要】FPGA技術為數字電路的教學和實驗,既帶來靈活性又帶來了挑戰。基于硬件描述語言(HDL)的FPGA正深入地改變傳統數字系統設計方法、設計過程和設計觀念。本文對數字電路教學中組合邏輯部分內容進行了基于硬件描述語言(HDL)的FPGA改造,有利于克服傳統數字電路教學實驗中的缺點。這種硬件設計軟件化設計模式有利于培養學生創新能力、增強綜合素質和提高教學質量,促使學生盡早掌握數字系統硬件設計軟件化發展的新趨勢,提高學習興趣。
【關鍵詞】數字電路;FPGA;數字系統設計;硬件描述語言
《數字電子技術基礎》是電氣信息類專業的專業基礎課程,具有很強的實踐性[1]。傳統數字電路教學注重數字系統分析設計的所有細節,對于初學者來說比較繁雜,難以掌握和設計復雜度較高的數字系統。在實際教學中,教師往往以簡單實例引導學生,逐步理解和掌握數字邏輯電路分析設計的一般步驟和方法。對于較復雜的數字系統設計,對于學生學習和教師教學都存在著很大的挑戰以及難以逾越的障礙。基于FPGA技術[2],就可以讓教師只需要向學生教授數字邏輯問題的分析和設計思路,從頂層開始,逐步分解復雜問題直至基本的簡單的數字邏輯問題。然后,通過HDL語言將這問題和思路描述出來。最后將綜合分析后的目標文件下載到FPGA器件就可以觀察設計結果。
近年來,基于FPGA的數字系統設計已經走入了高校電子信息專業數字電路教學環節和實驗室實踐環節。文獻[3]認為,采用FPGA技術,改造高校數字電路實驗方法和手段,對促進教學內容的知識更新,順應國際電子設計及應用技術發展需求,引入計算機EDA技術的設計和仿真手段,加強學生的綜合設計能力和直觀分析效率,使學生的學習和實驗訓練與現代技術發展相一致,具有一重要的意義和迫切性。文獻[4]分別通過組合邏輯和時序邏輯設計實例比較了傳統設計方法存在的問題和現代邏輯設計方法的優勢。文獻[5]闡述了FPGA在數字電路實驗教學中的重要地位和作用。文獻[6]通過對現有課程中不同部分的內容進行分析,嘗試提取適應發展的部分,重新構成一個自洽的課程內容體系。并認為HDL的設計應該將速度的評價融入到電路結構的描述中,并通過仿真工具的應用使這一評價能夠推廣到大系統中。
然而,關于如何將基于FPGA的現代EDA技術與傳統數字電路課堂教學融合的研究非常少,而且現有的研究工作尚處于起步階段。接下來,本文將以組合邏輯電路為例,研究和討論在數字電路課程教學中如何將基于FPGA的現代EDA技術與數字電路傳統課堂教學相融合的方法和步驟。
組合邏輯電路的設計:根據實際邏輯問題,求出所要求邏輯功能的最簡單邏輯電路。
2.1傳統設計思路
組合邏輯電路的設計步驟如下:
①邏輯抽象:根據實際邏輯問題的因果關系確定輸入、輸出變量,并定義邏輯狀態的含義;②根據邏輯描述列出真值表;③由真值表寫出邏輯表達式;④簡化和變換邏輯表達式,畫出邏輯圖。
2.2基于FPGA的設計思路
基于FPGA的組合邏輯電路的設計步驟如下:
①根據實際邏輯問題的因果關系確定輸入、輸出變量,并定義邏輯狀態的含義,并確定頂層模塊;②采用HDL語言描述邏輯問題;③通過EDA工具進行綜合分析、仿真和FPGA在線測試。
傳統的數字系統組合邏輯電路設計需要人工列出真值表,由真值表寫出邏輯函數表達式,再簡化和變換邏輯表達式,畫出邏輯圖。最后還需要購買各種相應的門電路或者集成電路器件,制作相應的實際印制板電路,才可以進行實際數字系統的測試。這整個過程對于剛剛接觸數字邏輯電路的學生來說,將是一項困難大、耗時長和難以逾越的障礙。因此傳統的數字電路教學和實驗需要占用大量的課時,但是效果卻難以令人滿意。
基于硬件描述語言和FPGA的數字電路設計能夠大大簡化初始入門者的學習門檻,輕松進行數字電路實驗和進行實際數字系統的仿真測試。
3.1注重分析和設計思路
在實際教學中,首先向學生傳輸傳統的組合邏輯電路分析設計思想,然后再講解基于FPGA和HDL語言的設計思路。通過對比教學,激發學生學習先進設計方法、理念和EDA開發工具。
在對比教學中,注重問題的分析,突出如何從問題中提煉出基本邏輯問題,理清各個邏輯變量的內在因果聯系,確定輸入、輸出邏輯變量,并定義邏輯狀態的含義。在此基礎上,用HDL語言對于問題進行描述。最后,通過EDA工具進行綜合分析、仿真和FPGA在線測試。
在這個過程中,無論是初始針對原始問題的分析以確定內在因果邏輯關系,還是采用HDL語言對于問題進行描述和設計,都只需要教師和學生著眼于問題分析和設計思路。這大大簡化整個設計過程、加快實際電路設計速度,降低設計門檻,并且通過FPGA實驗板可以馬上驗證實際效果。
3.2典型數字集成電路與HDL描述相結合
在組合數字邏輯電路教學中,對于典型數字集成電路的教學可以與HDL描述相結合。首先介紹典型數字集成電路的原理、功能、邏輯電路圖、真值表以及典型期間等;在此基礎上,接著討論采用HDL語言描述的編程模塊,以及仿真和實際測試效果。這樣的教學有利于學生更加注重模塊邏輯功能和設計思路,減少學生學習器件以及器件連接的枯燥,即時的實際效果展示又可以進一步激發學生學習興趣,強化學生求知欲望。在接下來部分,本文將以三八譯碼器為實例進行說明。
譯碼的功能是將具有特定含義的二進制碼進行辨別,并轉換成控制信號,具有譯碼功能的邏輯電路稱為譯碼器。譯碼器在數字系統中有廣泛的應用,不僅用于代碼的轉換、終端的數字顯示,還用于數據分配,存貯器尋址和組合控制信號等。不同的功能可選用不同種類的譯碼器。譯碼是編碼的逆過程,它能將二進制碼翻譯成代表某一特定含義的信號 (即電路的某種狀態)。具有譯碼功能的邏輯電路稱為譯碼器。

圖1 波形仿真
三八譯碼器有三個地址輸入端A、B、C,它們共有8種狀態的組合,即可譯出8個輸出信號Y0~Y7。另外它還有三個使能輸入端E1、E2、E3。實現3-8譯碼器的Verilog HDL代碼如下:


圖1是三八譯碼器的波形仿真。從仿真波形中,可以直觀地看出輸入和輸出之間的邏輯關系。在波形仿真之后,可以很快通過下載線下載目標文件到FPGA實驗板,在課堂上就可以觀察實際電路的運行效果。
本文思考如何將基于HDL語言的FPGA實驗板與傳統數字電路教學相結合。這種思路無疑能夠豐富課堂教學手段,開拓學生視野,激發學生興趣,強化學生求知欲望。數字電路是一門實踐性很強的課程,通過課程講授、結合虛擬實驗和實物實驗將使學生的創新精神、動手能力得到較大的提高,進一步鞏固所學的理論知識,提高教學質量。在厚基礎、寬口徑的應用人才培養模式指導下,我們的課堂教學中應該注重知識的復合性、現時性和應用性,培養學生應用科學理論解決實際問題的綜合能力、實踐能力及創新能力。
參考文獻
[1]康華光,秦臻,張林.電子技術基礎–數字部分[M].北京:高等教育出版社,2014.
[2]王金明.數字系統設計與Verilog HDL[M].北京:電子工業出版社,2014.
[3]朱明程,董爾令.應用FPGA技術改造數字電路實驗[J].電工教學,1995,17(3):29-34.
[4]雙凱,蔡洪明.基于CPLD/FPGA的數字電路設計方法變革必要性研究[J].現代電子技術,2014,4,37(7):139-142.
[5]丁健,杜瀟君,張景鳳.基于FPGA的數字電路實驗教學的探討[J].信息技術教學與研究,2011,60:158-159.
[6]姜書艷,張鷹,蔣寧,唐軍,李力.數字電路教學體系改革的研究[J].教育教學論壇,2014.2,6:165-166.
通訊作者:徐建。
基金項目:湖北民族學院博士啟動基金(MY2013B015);湖北民族學院科技學院教學研究項目(KYJY201507)。