發布時間:2021-05-12所屬分類:教育職稱論文瀏覽:1次
摘 要: 摘要:傳統數字電路課程以講授中小規模電路為主,與產業和技術應用趨勢嚴重脫節。本文以FPGA設計技術和硬件描述語言為基礎,按照數字電路到復雜數字系統的順序,從易到難地重新設計了教學內容,重點培養學生利用FPGA設計數字電路和數字系統的能力。在理論教學
摘要:傳統“數字電路”課程以講授中小規模電路為主,與產業和技術應用趨勢嚴重脫節。本文以FPGA設計技術和硬件描述語言為基礎,按照數字電路到復雜數字系統的順序,從易到難地重新設計了教學內容,重點培養學生利用FPGA設計數字電路和數字系統的能力。在理論教學改革的同時,配套的實驗課程也采用FPGA平臺開展教學。課堂實踐證明,改革后的新課程“數字電路與FPGA設計”能夠滿足應用型本科院校的人才培養需要。
關鍵詞:數字電路;教學改革;FPGA
0引言
“數字電路”是電子信息和自動化類工科專業必修的一門基礎課。傳統的“數字電路”理論教學以布爾代數和邏輯卡諾圖為理論工具,以門電路和觸發器作為基本電路單元,以組合電路和時序電路作為知識主干[1~2]。實驗教學以中小規模集成芯片為主要器件,實驗手段局限在器件連線和傳統示波器等的使用。這樣傳統的教學方式導致培養的學生缺乏設計復雜數字系統的能力、缺乏熟練使用現代數字系統設計、測試和調試工具的能力,所學的知識與實際的技術應用脫鉤[3]。
相對于集成度較低的標準芯片,現場可編程門陣列FPGA擁有豐富的內部資源,能根據應用需求在硬件層進行靈活修改,適用于大型集成電路和數字系統的開發。越來越多的高校開始將FPGA作為主要的教改手段引入到“數字電路”理論和實驗課程中[2~6]。我院以硬件描述語言(VerilogHDL)為主要設計手段,以FPGA作為實現工具,將“數字電路”課程改革為“數字電路與FPGA設計”課程,精簡了傳統的教學內容,按照從簡單組合電路到復雜數字系統的順序,循序漸進地編排了理論教學內容和實例訓練[4]。實驗平臺也由傳統的實驗箱變為口袋式FPGA開發平臺。
1傳統教學內容的精簡
1.1邏輯函數與卡諾圖
傳統的教學內容目的是讓學生掌握采用集成芯片設計中小規模數字電路的能力,因此,邏輯函數和卡諾圖的化簡是課程教學的重點。然而,在實際應用中,小規模芯片的使用越來越少,取而代之的是擁有豐富片內資源的現場可編程邏輯器件FPGA。因為器件中各種單元電路足夠多,也就沒必要對邏輯函數進行化簡[5]。因此,新課程對邏輯函數和卡諾圖的化簡內容進行了大幅度的弱化,只介紹了基本的原則,不作為教學內容的重點。
1.2組合電路
傳統的組合電路教學內容以門電路為基礎,以編碼器、譯碼器、數據選擇器、數值比較器和算術運算電路的集成模塊為主要對象,培養學生對小規模組合電路的分析和設計能力。基于FPGA在工業現場的大規模應用,傳統的組合電路分析和設計方法已經不適應實際的生成需要。因此,新課程只對典型組合電路的功能進行簡單介紹,教學重點為VerilogHDL行為描述的常用語法介紹,包括always塊、if語句、case語句、參數和常數等,并通過一些常見組合邏輯電路實例來介紹基于VerilogHDL語言的設計方法,如二進制-BCD碼轉換器。
1.3時序電路
傳統的教學內容以各類鎖存器和觸發器模塊為基礎,并把時序邏輯電路的設計作為重中之重。在使用FPGA設計中小規模時序電路時,不需要考慮狀態的化簡,也不需要考慮觸發器的類型。因此,新課程中刪減了時序邏輯電路的傳統設計方法,弱化了不同結構、功能和用途的鎖存器、觸發器的教學內容,將教學重點關注到這些基礎時序邏輯單元的VerilogHDL描述方法上,如觸發器、寄存器、移位寄存器和計數器的VerilogHDL行為描述。在學生掌握簡單時序電路的FPGA設計方法后,新課程通過PWM脈沖調試器、7段數碼管動態掃描以及秒表等實例,進一步訓練學生設計復雜時序電路的能力。
2新增的教學內容
為了進一步培養學生利用硬件描述語言和FPGA設計復雜數字系統的能力,新增的教學內容包括:FPGA與Vivado基礎,VerilogHDL基礎,計數器和狀態機架構,IP核設計方法,串口通信控制器設計,內部存儲器控制器設計,VGA控制器設計以及數字系統設計案例。
2.1FPGA與Vivado基礎
教學內容主要為可編程邏輯器件的基本電路、表示方法,以及現場可編程邏輯門陣列FPGA的基本結構及原理。教學重點為實驗平臺Basys3FPGA開發板的結構及主要資源介紹,并通過一個兩輸入門電路的FPGA設計實例說明開發環境Vivado的整個設計流程。
2.2VerilogHDL基礎
教學內容主要為VerilogHDL語言的基礎規范,包括標識符、數據類型、運算操作、關鍵字、注釋、模塊及端口聲明和定義以及編程規范。通過對VerilogHDL語言的學習,讓學生掌握自頂向下、結構化的數字電路設計方法。
2.3計數器與狀態機架構
教學內容主要為計數器架構八步法和有限狀態機的VerilogHDL語言描述。計數器架構八步法包括明確功能、功能波形分析、計數架構、加1和結束條件、定義特殊點、完整性檢查、計數器代碼編寫、功能代碼編寫。通過PWM流水燈和數字鐘等實例進一步訓練學生利用計數器架構法設計復雜時序電路的能力。有限狀態機分為Moore狀態機和Mealy狀態機。通過序列檢測器、交通信號燈數字系統、密碼鎖設計和ADC采樣控制電路等實例實現學生運用狀態機設計簡單數字系統的能力。
2.4IP核設計方法
隨著FPGA片內資源的繼續增大,市場機制下的設計周期越來越短,基于可重復使用的第三方IP核完成復雜數字系統設計的趨勢已經不可避免。Xilinx提倡的積木式設計,正是與IP核緊密相關,用戶可以將功能性設計做成一個IP核,然后“組裝”起來成為產品[4]。教學重點為教授學生如何使用第三方IP核或打包自己開發的IP核實現簡單數字電路和數字系統的設計。
2.5串口通信控制器設計
當FPGA需要與外部數字設備進行數據傳送時,需要用到串行通信協議。教學內容為四種串行通信協議的控制器設計,即UART總線、SPI總線、I2C總線和PS/2總線串行通信控制器的VerilogHDL行為描述。通過UART回環、OLED顯示、ADT7420溫度設置以及PS/2鍵盤控制等實例介紹了如何利用自頂向下的設計理念,基于先前學習的基本數字電路、計數器以及狀態機模塊,設計出具備通信能力的數字系統。
2.6內部存儲器控制器設計
當FPGA控制不同串行通信接口或不同設備間通信時,需要將多個字節的數據臨時按需要存入內部的存儲單元或從內部存儲單元中取出,此時需用到內部存儲接口控制器。教學內容主要為兩種內部存儲器,即FIFO和RAM的VerilogHDL行為描述。從內部存儲器的結構和數據傳輸時序等方面介紹了內部存儲器的數據通信原理,并通過PS/2鍵盤數據存取命令實例來訓練學生進一步設計具備通信和數據存儲能力的數字系統。
2.7VGA控制器設計
一個良好的人機交流數字系統需要有可視化的數據輸出。VGA視頻接口作為當前仍是最常用的視頻圖像接口,有必要在教學中引入。教學內容為VGA接口信號功能、掃描顯示原理以及VerilogHDL行為描述。通過VGA顯示條紋、VGA顯示文字、VGA顯示圖像等實例逐步地訓練學生設計具備通信、數據存儲和顯示功能的復雜數字系統的能力。
2.8數字系統案例設計
為了進一步培養學生利用模塊化的思想設計復雜數字系統的能力,新課程提供了若干數字系統案例。以俄羅斯方塊游戲機為例,需要用到PS/2通信模塊、RAM存儲模塊、VGA顯示模塊。控制核心需要用到先前學習的計數器架構和狀態機架構。通過俄羅斯方塊游戲機的學習,學生不僅能夠鞏固先前學習的數字電路和數字系統的FPGA設計方法,也能夠加強學習的興趣,為后續的創新實踐課程打好基礎。
3實驗教學的改革
傳統的“數字電路”實驗課程獨立于理論課程,由實驗平臺的教師上課。因此,常常出現實驗課與理論課不同步,理論課沒上的內容實驗課已經開展了,學生學習效果差。另外,傳統的實驗平臺采用的是集成的數字電路實驗箱。實驗以74LS系列的小規模集成芯片為主要器件開展,故障率高,能開展的實驗有限,如基于狀態機的紅綠燈等實驗就很難實現。
改革后的“數字電路與FPGA設計”將實驗課程和理論課程相結合,由理論課教師直接帶領學生實驗,避免了實驗與理論不同步的問題。此外,實驗平臺也從集成的數字電路實驗箱改為了迪芝倫公司的口袋儀器Basys3FPGA開發平臺和Xilinx公司的編程軟件Vivado2017.4。通過該實驗平臺,學生可以學習現代數字系統的設計、仿真和調試流程,并能夠將理論課程中教授的案例逐一實現。這大大增強了學生學習的興趣和教學效果。
4結語
本文以FPGA設計為基礎,從教學內容的精簡和強化、實驗教學的改革兩個角度介紹了對傳統的“數字電路”課程的教改探索,旨在培養學生利用硬件描述語言和FPGA設計數字電路和數字系統的能力。改革后的課程實施效果良好,在學院工程教育專業認證中獲得了專家好評。——論文作者:艾偉清,陳景波,王偉,鐘黎萍
相關期刊推薦:《電氣電子教學學報》JournalofElectrical&ElectronicEducation(雙月刊)1979年創刊,是我國高教界電氣、電子信息、電子科學、自動控制類專業教學與科技的學術刊物,主要讀者和作者為各類高等院校的管理人員、教師和學生,也包括工業和企業的工程技術人員。設有:專題論壇、專業改革、課程改革、教學研究、電子科學、電子信息、電氣工程、自動控制等欄目。
SCISSCIAHCI