楊振南 梁曉琳


摘要:EDA技術是一門專業技能課,以培養學生應用硬件描述語言進行FPGA開發的能力為目標。為實現這個教學目標,提出把教學分成軟件操作教學、VerilogHDL語法教學、基本數字模塊教學和綜合項目訓練4個教學階段,并且在每個階段教學結束時進行階段考試,把4個階段的考試成績加權求和作為學生的課程考核成績,同時創新地使用階段重修補考的方法督促學生全過程認真學習。
關鍵詞:EDA技術;分階段教學;過程考核
1引言
EDA技術課程作為一門實用性很強的實踐技術課,在電子信息、通信、自動控制及計算機應用領域的重要性日益突出,在電子類專業廣泛開設。該課程開設的目的是使學生掌握采用硬件描述語言,借助EDA工具進行電子電路設計的方法,培養學生使用可編程邏輯器件進行數字系統設計以解決實際工程問題的能力。為了達成這個目標,學生需要具備以下四個方面的能力:掌握一種EDA開發軟件平臺;掌握一門硬件描述語言;掌握基本數字電路模塊的原理及設計方法;具有設計一定復雜程度數字系統的能力。這四個能力具有層層遞進,前后依賴的關系。在教學中需要依照培養目標分階段開展教學。為了及時地了解學生的學習效果,督促學生掌握好各階段的知識和技能,為后續階段的學習打下基礎,就需要在每個階段結束后,對學生的學習進行考核。鑒于此,筆者對EDA技術課程進行了改革,采用分階段教學與過程考核相結合的方法。具體實施辦法如下所述。
2分階段教學方法
根據EDA技術教學需要達成的四個目標,把教學分成以下四個階段。
2.1QuartuslI軟件操作的教學
筆者所在學校的實驗箱使用的是Ahera公司的FPGA芯片,所以選擇該公司的QuartuslI軟件作為EDA開發平臺。此階段的教學目標是讓學生掌握QuartuslI軟件的基本操作,了解FPGA芯片開發的基本流程,掌握實驗箱的結構和使用,理解FPGA芯片與普通數字邏輯芯片的差異。教學內容包括:Qua-tuslI創建工程,新建各類設計文件,繪制電路圖的基本操作,全程編譯,創建仿真文件,仿真激勵設置,仿真結果閱讀,鎖定引腳,實驗箱原理及使用等。教學方法:在機房進行教學,老師邊講邊演示,學生邊聽邊操作。每次課結束前,對所講的內容進行總結,如果有涉及理論教學,則穿插在演示過程中講解。教學中使用數字電路基礎課程中學習過的器件作為教學和練習對象,例如簡單與非邏輯電路,加法器,選擇器,觸發器等的內部結構圖。
2.2 Verilog HDL語法教學
硬件描述語言應用最廣泛的有VHDL和Verilog HDL兩種,后者與C語言語法類似,容易學習,所以筆者選擇后者用來教學。此階段的教學目標是讓學生掌握Ve~ogHDL語言的基本語法。教學內容包括:Verilog HDL程序的基本框架,always語句,assign語句,case語句,if語句和運算符等。教學方法:在機房進行,先練后講;以數據選擇器為對象討論組合電路的設計方法;分別使用不同的語句進行設計,從實例講解和練習出發,再小結使用到語句的語法;以寄存器,計數器為對象,講解簡單時序電路的設計方法。每一個實例都要求學生在課堂上完成仿真驗證,操作熟練的同學則要求完成實驗箱上的驗證,并且布置課后練習,要求學生在自己的電腦上進一步熟練軟件操作,學習語法規則。
2.3基本數字模塊設計教學
此階段的教學目標是:讓學生根據設計任務,利用學習過的Verilog HDL語句,自己進行數字模塊的設計。教學內容包括:數碼管譯碼器,多位多選一數據選擇器,BCD編碼器,分頻器,BCD碼計數器等。教學方法:老師講解設計目標,進行設計任務分解,設計原理分析,然后學生進行代碼編寫和設計驗證;為了降低設計難度,逐步培養學生的設計能力,可以采用關鍵代碼行填空,代碼段填空,直到完全獨立編寫的方法。每次課,都需要留出時間給學生講解答案,分析代碼,并要求每個學生最終完成設計。
2.4綜合訓練項目教學
教學目標:培養學生使用自上而下的方法進行數字系統設計的能力。教學內容:計數器與數碼管譯碼器綜合設計,數碼管掃描器的設計,頻率計的設計,電子時鐘的設計,ADC轉換器讀寫時序設計,串行通信接口模塊的設計等,具體教學內容可以依據實際教學課時和教學進度進行適當增減。教學方法:老師講解設計目標,把設計分解成不同的內部模塊,并畫出方框圖,講解各個內部模塊之間的信號連接。然后,要求學生進行代碼的設計。為了降低設計難度,對于部分核心代碼可以給出參考代碼,或者給出參考資料和參考教材,讓學生自學。此階段難度較大,因此,教學需要擴展到課后。筆者教學中,采用了這次課布置任務,講解設計原理,下次課檢查學生的設計結果的方法。這樣學生就可以利用兩次課中間的空余時間完成練習。老師在檢查完結果后,公布參考代碼,并且演示,然后學生根據參考代碼,查漏補缺。
3過程考核
3.1過程考核總體概述
分階段教學的模式,從第二個階段開始,每個階段都使用到上一個階段的知識和技能,同時又是下一個階段學習的基礎,所以學生在每個階段的學習都非常重要。地方性本科院校的學生,其學習主動性和自覺性較差,僅就教學進行改革,則大部分學生都無法達成教學目標。通過課程考核是學生獲得學位的必要條件,因此充分利用考核督促學生學習是一個很有效的方法。在傳統的教學中,使用期末考試進行一次性考核。從以往的經驗看,學生常依靠前突擊應對考試,不利于督促學生平時的學習。尤其本課程的階段依賴性決定期末考試的方式不適合用來進行本課程的考核。
因此,筆者在每個階段教學結束后都進行考試,四個階段共有四次考試,這四次考試分散在整個學期的不同時間進行,是對學生學習過程的深入考核,簡稱為過程考核。又由于學生個體差異,階段考試也會出現不及格的現象。不及格意味著該生這個階段學習離目標太遠,不能直接開展后續階段的學習,因此學生需要通過自學,重修這個階段的內容,然后參加補考,補考通過才能進行下一個階段的學習。教學和考核的進行過程如圖1所示。
3.2各個階段考試內容及考試方法
3.2.1軟件操作考試
考試要求:此階段主要考試學生對于QuartuslI軟件操作的掌握程度。要求學生在不翻閱教材、實驗指導書的前提下,能夠順利完成工程創建,電路圖繪制(電路圖通過試卷提供),全程編譯,仿真驗證,和實驗箱驗證。考試內容和形式:考試在機房進行,一人一機,考試時間為一個小時;考試內容為教學過程中講解過的示例和練習過的數字電路基礎模塊內部結構圖,教師選取4-5個圖寫在一張試卷上作為題目,學生隨機抽取一個題目進行現場考試。考試成績的評定:老師在學生每完成一個步驟后進行檢查,根據學生完成的速度和質量給出該步驟得分,最后加總所有步驟得分計算出總分。
3.2.2 VerilogHDL語法考試
考試要求:要求學生掌握VerilogHDL的基本語法,正確的編寫VerilogHDL語句,能夠發現和改正語法錯誤,正確使用運算符。考試內容及形式:考試使用傳統的閉卷考試的方式,在教室進行,學生間隔坐好,老師監考,考試時間為一個小時。試卷內容由老師靈活設置,只要完成考試要求即可。試題類型可以為填空題,選擇題或者是改錯題等,但是不建議設置編程題。考試成績的評定:考試結束后,教師改卷給出成績。
3.2.3基本數字模塊考試
考試要求:此階段要求學生掌握基本數字電路模塊的作用及原理,具備運用VefilogHDL語言設計基本數字模塊的能力。考試內容及形式:考試在實驗室進行,每人一臺電腦一個實驗箱,考試時間一個小時;老師從本階段教學中講解過的數字模塊抽取4-5個制成試卷,學生隨機抽取一道題,現場編程設計,仿真驗證,并且使用實驗箱驗證,每完成一步,老師當場檢查,根據完成情況給出該步驟得分。考試成績評定:考試結束后,老師收集學生試卷,根據學生每個步驟得分統計出此階段考試的總分。