丁家峰, 李新梅, 孫克輝, 尹林子, 趙 巖
(中南大學 物理與電子學院, 湖南 長沙 410083)
電子設計自動化EDA(Electronics Design Automation)技術是繼計算機輔助設計CAD(Computer Aided Design)和計算機輔助工程CAE(Computer Aided Engineer)后用計算機輔助電子系統(tǒng)設計的最高階段,實現了電子系統(tǒng)設計的全自動化和智能化。
本科階段的“EDA技術與應用”課程和教材主要圍繞FPGA(Field Programming Gate Array)電子系統(tǒng)設計和實踐,內容涵蓋硬件描述語言、CPLD/FPGA器件和集成化開發(fā)環(huán)境等[1]。
筆者多年來負責“EDA技術與應用”課程的建設及教學,深刻體會到該課程內容具有相當的廣度和深度,將課程內容有機組合服務于專業(yè)培養(yǎng)要求實屬不易。尤其針對發(fā)展速度超快的EDA技術,如何避免學生還未畢業(yè),學到的知識就已經過時的現象,一直是困擾筆者的問題所在[2]。
本文將從“EDA技術與應用”課程特點、理論教學、實踐教學和教學評價四個方面論述對該課程改革和創(chuàng)新的一些思路。
基于FPGA的EDA技術實現了用計算機進行電子系統(tǒng)自動化設計的全過程?;贔PGA平臺可以實現當前絕大多數數字電子系統(tǒng)設計。作為可編程邏輯器件的典型代表,FPGA采用了查找表方式的邏輯電路實現方法,比采用乘積項方式的CPLD更加簡單靈活,比PROM存儲器具有更高的利用率,而且集成了鎖相環(huán)、存儲器、硬件乘法器的FPGA可以實現單片機和數字信號處理器的功能。
基于FPGA的“EDA技術與應用”課程基礎是“數字電子技術基礎”課程,這兩門課程以交叉螺旋上升方式共同發(fā)展?!皵底蛛娮蛹夹g基礎”基于布爾代數和多值邏輯,采用自底向上的方法描述組合和時序電路的設計方法,為可編程結構的重構和控制提供了堅實的理論基礎,是FPGA器件集成和創(chuàng)新的保障。而“EDA技術與應用”課程則基于FPGA的平臺,采用自頂向下的設計方法,完成數字系統(tǒng)的快速自動化設計和實現,極大推進了數字電子技術的發(fā)展?!皵底蛛娮蛹夹g基礎”充分展現了數字電子設計中自底向上的歸納過程,“EDA技術與應用”充分體現了數字電子設計中自頂向下的演繹過程,兩門課程相輔相成、相互促進。
考慮到“EDA技術與應用”課程涵蓋的內容很多,而且知識更新的速度很快,因此在課堂中面面俱到的全面講授根本不可能,也沒必要。
從FPGA器件發(fā)展來看,從早期的Altera公司的FLEX系列發(fā)展到現在的CYCLONE系列,器件的集成度增加了,器件內部集成的鎖相環(huán)、乘法器、存儲器和接口特性都增強了,但器件的基本原理并沒有大的變化。
從集成開發(fā)工具發(fā)展來看,從早期的MAX+PLUSII發(fā)展到現在的QUARTUSII,人機交互界面變化了,與最新版Windows操作系統(tǒng)的兼容性增加了,但新版剝離了仿真模塊的QUARTUSII給教學帶來了一定的不便。
從硬件描述語言的發(fā)展來看,以VHDL為例,雖然2000年以后也做了一些更新和擴展,但87版和93版標準仍是目前的主流,被眾多工具支持,變化不大。
為了滿足電子信息專業(yè)本科教學的需要,根據上述三個方面發(fā)展的特點,我們提出分三個階段進行理論教學的安排:
1)階段一:基礎內容引導
作為最基礎的部分,涉及到概述、器件、工具和語言四個部分,是課程必須掌握的內容:①概述部分起到概覽的作用,了解EDA技術的發(fā)展歷史、設計方法學、設計流程以及未來展望;②器件部分在此階段是最基本內容,以乘積項原理的CPLD和查找表原理的FPGA兩條主線講解可編程器件的結構和特點,通過數字電路中的最小項和最大項是否可編程的特性衍生出ASIC、PLA、PROM、PAL、GAL和CPLD器件,然后將CPLD中的乘積項單元用查找表替換獲得FPGA器件,進而講解FPGA器件中的鎖相環(huán)、存儲器、乘法器和接口電路。最后的編程下載和調試功能則是CPLD/FPGA通用技術,緊扣JTAG標準講解即可;③工具部分的講解以一個圖形化全加器或者全減器設計為例講解為宜,因為“數字電子技術基礎”課程以圖形方式建模為核心,學生已經能容易判斷圖形模型的對錯,所以會將精力放在軟件工具的掌握上,了解EDA設計的輸入、仿真、綜合、適配和下載過程,并且可以掌握嵌套式工程設計方法;④語言部分,VHDL硬件描述語言的講解必須循序漸進,在這個階段完成基本的語法結構和簡單的數字電路設計即可,而VHDL語法結構的講解最好放到數字電路設計案例中講解。典型的數字電路為組合的全加器和時序的計數器,通過在行為級、RTL級和結構級對這兩個電路進行VHDL文本建模,可以覆蓋大部分語法結構。這個階段的內容和數字電路課程緊密相關,起到承前啟后的作用。
階段一的四個部分,每部分結束時都采用課堂提問的方式進行考核,力求學生能全部掌握,這一階段占總課時的50%。
2)階段二:特色系統(tǒng)講解
考慮到電子技術發(fā)展日新月異,數字系統(tǒng)集成度越來越高,若所有的系統(tǒng)都從基本的門電路出發(fā)設計,只是多了一種文本式建模方法,不能完全體現EDA技術的優(yōu)越性。此外,FPGA器件內部集成的鎖相環(huán)、存儲器等特殊資源,必須使用軟件提供的宏單元才可以啟用。因此調用系統(tǒng)提供的知識產權IP核進行資源復用是電子系統(tǒng)設計的一條捷徑。為了體現課程特色,我們通過設計51單片機最小系統(tǒng)這個案例講解這部分內容。51單片機選擇開源的mc8051,PLL、RAM、ROM直接使用FPGA內部資源,單片機的代碼在Keil C51中編譯轉化為HEX格式,然后在QUARTUSII環(huán)境中進行集成設計。我們在課堂中認真講解這個案例的每個細節(jié),使學生不僅了解知識產權復用的辦法,而且掌握了快速數字系統(tǒng)設計的方法。
這一階段以工具的使用為主,多數學生可以掌握,占總課時的25%。
3)階段三:高級設計方法
在FPGA數字系統(tǒng)設計中,狀態(tài)機設計和編碼、系統(tǒng)優(yōu)化和抗干擾、時序分析等高級內容都是難點。在這一階段,我們重點講解狀態(tài)機的設計與編碼,其它部分由學生自學并在實踐環(huán)節(jié)進行討論和考核。這主要是考慮到狀態(tài)機是處理器控制單元設計的基礎,除了計算機專業(yè)的學生必須掌握以外,電子專業(yè)的學生也要能夠設計簡單的微處理器。該部分以VHDL語言的深入應用為主,通過設計序列檢測器和ADC控制器,訓練學生們的狀態(tài)提取和狀態(tài)轉移分析能力,突出基于PROCESS語句的多進程結構,區(qū)分不同編碼在FPGA和ASIC平臺實現中的優(yōu)劣,對這階段內容可能只有少數學生達到熟練掌握的程度,這階段占總課時的25%。
上述三個階段的課程安排,我們都精心準備了典型的案例,將理論和實踐有效地結合起來。同時,在每階段小結時,均會安排課堂提問環(huán)節(jié)并布置平時作業(yè),使學生盡快地掌握這門技術。
我校“EDA技術與應用”課程的實驗平臺主要有兩種類型:一種是掌上開發(fā)板形式,配合學生的電腦和軟件開發(fā)工具即可構成口袋實驗室,可滿足與理論教學同步的實驗活動,不受場地和時間的限制,但開發(fā)板有限的資源只能滿足入門的需求;另一種是實驗箱形式,資源充裕,體積較大,只能在專業(yè)實驗室內使用,需要單獨安排實驗時段,可滿足大型電子系統(tǒng)設計要求。
在課程初期,學生可以借用開發(fā)板,緊跟理論教學步伐,完成EDA技術的入門學習。理論課程結束后,學生歸還開發(fā)板,然后到專業(yè)實驗室使用實驗箱,完成EDA技術的綜合和創(chuàng)新實驗??紤]到使用口袋實驗室,學生已經完成了大部分的實驗任務,為使專業(yè)實驗內容的安排更有效,我們根據理論教學的內容,通過提煉整合各階段的關鍵詞,有針對性地安排了三階段的綜合實驗內容。
階段一:組合/時序電路+優(yōu)化/抗干擾實驗。這項實驗要求學生在基礎的組合或者時序電路上增加優(yōu)化或者抗干擾的功能,如譯碼電路的輸入端增加抗干擾功能、全加器升級為流水線全加器等,對應理論教學的第一階段。另外,堅決不允許提交同樣的作品,要求學生自己去尋找課題,并以最快的速度完成,引起學生對實驗的重視。在掌握技巧后,所有學生都能完成這個作業(yè)。
階段二:MC8051+片內外設實驗。這項實驗要求學生在課堂學習的單片機最小系統(tǒng)上增加片內外設,這些片內外設建立了單片機和實驗箱硬件外設之間的關聯,然后編制程序實現對硬件外設的控制。這個實驗使用的是同樣的單片機最小系統(tǒng),但要求學生在設計片內外設或者硬件外設控制程序上不能重復,因此有一定的實現難度。大約只有50%的學生可以完成這個實驗。
階段三:狀態(tài)機+ADC轉換器實驗。這項實驗要求學生使用狀態(tài)機實現對外部模擬-數字轉換器的控制,如TLC549、ADC0809、TLC5510等,要求學生通過更換ADC芯片或者狀態(tài)機的狀態(tài)數,提交帶有個人色彩的不同作品。這是難度等級最高的實驗題,只有25%的學生可以完成這個實驗。
口袋實驗室與專業(yè)實驗箱結合的實驗方式,提高了專業(yè)實驗的難度和對學生的要求,可以讓學生通過實驗過程看到最終的實驗效果,提升了學生的創(chuàng)新能力和競爭能力。
學生成績由平時成績和末考成績兩部分組成,考慮到每年選修該課程的學生人數都超過170人,若平時成績占比太高,教師主觀評價將嚴重影響學生的總分,且教師會花費大量的時間和精力。所以平時成績占比不要太高,以30%為宜。但是,對于這門實踐技能要求很高的課程,單純的對概念和基礎考試又無法體現學生之間的差異。所以,一份高質量的期末考卷是解決問題的關鍵,在這份占總成績70%的考卷中,必須擁有40%以上的實踐考核內容。為此我們提出了一種新的創(chuàng)新考評辦法。
平時成績:以一次考勤為基本單位,將課堂問答、平時作業(yè)和實驗報告以1:1:1的比例折算為考勤分。在理論課每次小結時,教師都會精心準備一些題目,以課堂提問的形式強化學生的理解和記憶。具體流程為:首先教師發(fā)問,然后學生翻書查資料準備,這時教師按照名冊依次點名,點到名的學生站起來作答,答對者記一次出勤和1次課堂問答,回答不上來者只記一次出勤,點到名但未出勤的學生記一次缺勤,這些記錄最終都折算成考核分。(丁家峰等文)
平時作業(yè)和實驗報告的考核有一定難度,在學生提交時必須當場檢查提問,不合格者立刻告知問題并退回,學生修改后可以再次提交。只有通過審核的報告和作業(yè)才可提交,最后折算為考核分。課堂提問活躍了學習的氣氛、平時作業(yè)和實驗報告拉開學生的差距,保證了理論教學和實踐教學的順利進行。
期末成績:因為課程涵蓋內容很多,我們采用了開卷考試的形式,注重學生對知識的理解而不是單純的記憶,通過選擇、判斷的形式對基礎知識進行考核,占60%的題量。另外40%的題量則選自學生的平時作業(yè)和實驗報告,因為前期對平時作業(yè)和實驗報告進行了嚴格把控和精心篩選,所以提交的作品都是精品,從這些精品中提煉考試題目是考驗他們運用能力的最佳辦法,學生分數可明顯被區(qū)分開。如層次化工程設計、mc8051單片機最小系統(tǒng)、序列檢測器的狀態(tài)機設計等都是典型的考試題目,以填空、計算和問答的形式進行考核不僅可以客觀反映學生的應用能力,而且可以避免評卷的主觀性。
上述模式提高了課堂的趣味性、分數的客觀性和實踐應用能力的比重,增強了學生應用EDA技術的積極性,深化了學生對EDA技術的認識。
通過分析我?!癊DA技術與應用”的課程特點,筆者在理論教學、實踐教學和學生考評三個方面提出了創(chuàng)新的教學模式,既實現了與“數字電子技術基礎”課程的平滑銜接又體現了“EDA技術與應用”課程本身的特色。經過多年的教學實踐,學生能很快掌握EDA技術,還曾獲得全國電子設計競賽一等獎和全國嵌入式系統(tǒng)競賽一等獎的好成績,以上實踐成果證明了該教學模式的有效性。
[1] 潘松,黃繼業(yè). EDA技術實用教程-VHDL版(第四版)[M],北京:科學出版社,2010.
[2] 闞玲玲,張秀艷,粱洪衛(wèi). “EDA技術與應用”課程教學內容的定位與改革[J]. 南京:電氣電子教學學報,2010,32(5):27-28.
[3] 朱正偉,周炯如. EDA技術在硬件課程體系教學改革中的應用[J]. 南京:電氣電子教學學報,2010,32(6):23-25.