胡剛毅 曹涌
摘要:EDA技術有很強的綜合性和實踐性,有其特殊性和要求。本文分析了目前EDA技術教學的現狀和存在的問題,指出了硬件語言教學學時過多的弊端,以學生真正系統地掌握該技術入手,從組建興趣小組、不同梯隊配備實驗平臺、Verilog語言與VHDL語言并重講授、SOPC的重要性等方面討論了EDA技術教學的改革思路。
關鍵詞:EDA;教學;探索
● 引言
隨著信息技術的發展,EDA技術(EDA即電子設計自動化
● EDA技術的教學現狀及存在的問題
長期以來,由于各高校對本科生實驗投入有限,教師無法做到手把手帶領學生進行一個完整的項目,學生在學習的過程中大多是應付學習,缺乏尋找硬件進行實訓的主動性,以致學生學完以后仍然無法獨立進行FPGA項目的開發。同時,學生在學習關于可編程邏輯陣列的結構特點、相互交叉點可編程內容時,往往不知道從何下手,但這些內容對硬件電路設計,以軟件語言的思維去改變硬件電路結構至關重要。可因為在理論課上一般是使用國內高校流行的教學硬件語言VHDL語言進行教學,會使學生錯以為前后兩個部分沒有聯系,進而感覺索然乏味,造成學習興趣缺乏。
EDA教學主要是利用現代電子系統的設計方法,使用可編程邏輯器件實現邏輯設計,同時也會講授一些電路制作軟件的使用以及仿真工具的使用。而因在市面上流行的硬件開發語言還有Verilog語言,加之各高校的教師掌握語言的熟練程度不一,也缺乏統一的教學指導,就導致各高校在講授該門課程的時候,使用的平臺各異,學生在學該門課程的時候往往滿懷信心去學,結果到實際工作中卻是面對另外一門語言。后續課程中,如SOPC系統設計,對學生和教師的要求很高,一般EDA課堂上也較少涉及SOPC的知識。學生在學習了EDA課程以后,往往感覺知道了一些,也會完成一些實訓的小項目,但牽涉到如IP核等方面的技能時卻不知從何下手。另外,由于FPGA設計的教學涉及方面很多,有理論學習部分,有實踐應用環節,需要掌握新的計算機語言,熟練使用專業的軟件平臺,了解FPGA硬件內部結構,熟悉FPGA與外圍電路的硬件設計,對理論教學、軟硬件實驗都有較高要求。除此以外,可編程邏輯器件的基礎結構、FPGA芯片內部硬件結構等內容的教學難度大,硬件程序語言的語法規則較多,而所有的這些都是為了硬件開發能更快上手,可是,高校現今往往在講述這些前述基礎知識后課時也基本完了,這樣就使得學生少了一些時間進行系統的開發,也沒有時間深入理解軟核知識對FPGA開發的重大作用。
● 改進EDA技術教學的方法
EDA技術教學主要依托的器件是可編程邏輯陣列,其課程結構可以分為:芯片內部結構演變發展及原理;硬件描述性語言;可編程片上系統設計。這三部分在EDA課程中有不同的比例。有的高校將這三個部分合為一門課程講授,在筆者所在學校,是將前兩個部分歸為一門課程,后一部分歸為一門課程。不論采用哪一種課程歸屬方式,這三部分都是相互聯系、相互依存的。其目標是要讓學生快速理解可編程器件的基本原理,從而能夠自主完成系統設計。這就需要一個又一個系統的真實的實訓案例教學,讓學生能從原理理解、程序設計、系統分析等方面得到訓練。使學生從孤立的設計到系統設計的轉變,利用“逐項引導+項目驅動”的教學模式,培養學生的自主學習能力、系統設計能力和語言表達能力。
1.結合項目開發的課堂引導教學
筆者在多年的教學過程中,發現從可編程邏輯陣列的原理入手,引導學生進入FPGA的教學中,效果甚微,學生感覺無法理解,也不知這些原理究竟有何妙用,無法真正熟知FPGA的強大魅力所在。為此,后續教學中,我們試圖引入案例教學,因為在學習EDA課程之時,學生基本上都有單片機學習的經驗和過程。在給出案例的時候,有意識地讓學生去思考,如果這個項目用單片機開發該如何進行?何處需要改進?耗費資源多少?速度多快?當學生已經進入硬件設計的殿堂之后,讓學生首先觀察同一個項目,用FPGA開發有何精妙之處。第一個項目一般是由教師給出,引導學生逐步討論,然后自學、歸納、找出與單片機的相同與不同。讓學生在有一個感性的認識后,變被動學習為主動學習。這樣可以激發學生主動思考、發現問題、解決問題、歸納和總結問題經驗的能力。例如,在學生的第一次課中,教師給出多路彩燈的實際案例,先讓學生以單片機的思維去解決問題,他們一般能夠很快入手。當換成FPGA的思維后,學生突然之間就能感覺到FPGA的強大,花樣彩燈在變換過程中,利用硬件描述性語言并行思維的好處。教師可鼓勵學生多提方案,并對方案論證辯論和反駁,得出最優方案。通過這樣的一個簡單但是卻完整的過程,學生對FPGA的設計有了一個深刻的認識,同時也加深了理解。再來學習FPGA的原理、相互交叉邏輯點的編程組合,學生就會非常有興趣,也不會望而生畏,這樣就很好地解決了入門引導的學習問題。
2.組建興趣小組,進行以學生為主的項目實踐教學
我校的FPGA教學配備了Altera公司的實驗套件,同時,也為每五人一個興趣小組配備了簡易的FPGA開發板,實驗室同時也配備了SOPC實驗平臺。這些成梯隊的實驗設備的配備,不論從性能上還是拓展學習上,已能完全滿足學生學習FPGA的需要,學生平時在課堂上學習理論知識,課下興趣小組進行實踐開發驗證,筆者鼓勵他們擴展外圍應用,解決一些學科方面的問題,如林業物聯網監控系統、數據處理等。學習之余,優秀團隊提前進入畢業設計以及參與到教師的科研團隊中,收到了很好的教學效果。學生也真正感受到FPGA的魅力所在,自覺鉆研,動手能力得到了很大提高。對于動手能力特強的學生來說,簡易的FPGA開發板已不能滿足其需求,學生就會轉移學習興趣到SOPC實訓中去。學生在一年多的訓練中,已儼然達到了對一個初級工程師的要求,工作也是得心應手。這種課下興趣小組以及我校本科生創新基地的教學模式,不僅能很好地訓練學生,同時,也可有效激發不同層次學生的學習熱情,帶動一大批學生積極學習,培養了學生的團隊精神、動手能力和創新能力,也能帶動整個專業良好的學習風氣。
3.建立網絡教學體系,彌補學時不足的問題
當前,全球正流行MOOC教學模式,我校在探討MOOC模式教學過程中,也根據自身的特點,開設了第二課堂。平時課堂上的講授,學生都會產生很多問題,在課下通過實驗驗證中,也還會有一些不同問題。針對這個特點,我校充分利用網絡資源,鼓勵學生創建FPGA的QQ討論群,讓教師也加入其中,這樣能夠最大限度地解決問題,同時,要求教師將關鍵知識點、設計過程中的重要之處,都放在網絡教學平臺上,供學生下載查看,并提供討論區供師生交流互動。另外,為了彌補教師工程實訓經驗不足的問題,我們廣泛聯系,邀請了很多FPGA企業中的工程師加入這個平臺討論。這種網絡形式的教學,在很大程度上提高了教學效率,也使教學質量有了很大的提升。
4.引導學生逐漸掌握Verilog語言
目前,電子技術的飛速發展,各大公司也相繼轉型使用Verilog語言,而縱觀國內高校的教學,很大一部分高校還在使用VHDL語言。究竟是選擇VHDL還是Verilog語言,筆者認為都是可以的,但是,如果高校在教授VHDL語言中,引導學生形成正確的硬件開發思維后,也應該要講授Verilog語言,畢竟從主流發展來說,Verilog語言已有逐漸上升的趨勢。同時,因Verilog語言是以C語言為基礎,學生也很容易接受,這樣,語言教學學時就會減少很多,可以將更多的精力放到其他實踐中去。同時,EDA的后續課程中如SOPC設計也有很多是從Verilog語言的角度去講授的。我們的思路是語言是載體,不要花大力氣去講授,而應多花時間去引導學生如何進行硬件開發。VHDL和Verilog語言都應該花些時間告知學生,讓學生能有一個全方位的認識,以后走上工作崗位,才不會感覺到對某門語言非常陌生而不知從何下手,能極大地提高學生工作的上手能力和應聘的成功率。
5.將SOPC教學引入到EDA教學中
SOPC技術是當今電子設計的主流方向,很多計算機類學生,他們沒有電路基礎的知識,也無法理解CMOS、TTL等原理,但是他們的強項是計算機語言編程,而SOPC正好提供了這樣一個平臺,可以將軟件思維編程以硬件結構實現,這是以后硬件電路設計發展的一個方向。沒有SOPC的體系,EDA就會遜色不少。隨著FPGA技術的成熟,SOPC教學也逐漸引入到本科教學中,教學重點也不再關注基礎性知識學習,而應該將重心放在系統設計領域,從硬件語言的設計轉移到C/C++語言設計,使SOPC的功能能夠以C/C++語言的形式體現,使功能更具體化。在這個階段的教學中,要力求使學生體會到各個專業課程之間的聯系與融合,進而感受到FPGA的強大魅力,自覺產生學習的興趣和意愿。只有這樣,才能真正學習好EDA。
● 結束語
EDA技術是一門技術性很強的學科,有它自身的系統性和要求,目前,很大一部分高校在教學過程中都將精力放在語言教學上,容易使學生認為這是一門硬件語言課程。我們要改變這種思維,合理安排語言教學學時,以案例教學為出發點,引導學生理解FPGA的原理和特點,并在此基礎上,完成一個又一個的項目實訓,而后,將學生引入到SOPC的體系和思維中,讓學生深刻理解一個系統不僅有“器官”,而更重要的是有“心臟”。真正達到鍛煉學生動手能力的目的,讓學生身臨項目實訓之中,更好更快地掌握技能。同時,教師也要改變以往總是講授VHDL的思維定勢,逐漸引導學生掌握Verilog語言,這樣,學生在以后的工作中,才不會對自己沒有見過的語言產生陌生感。EDA技術課程,前沿性很強,待學習待掌握的方面還有很多,學生要學習,教師更要學習,只有這樣,才能把這門專業課程講授好,才能使學生學有所用。
參考文獻:
[1]張玉葉.《EDA技術》課程教學思路與創新方向探索[J].太原師范學院學報,2013(3):142-144.
[2]晏伯武,田嵩.EDA技術及其教學相關問題的探討[J].黃石理工學院學報,2010(2):63-67.
[3]高飛.EDA技術課程改革與實踐[J].大學教育,2013(11):85-86.
[4]賈佳.EDA技術課程教學改革研究[J].大眾科技,2011(4):168-169.
[5]周莉莉,周淑閣,井娥林.FPGA課程教學方法的探討與研究[J]. 實驗室科學,2013(6):65-66.
[6]余能輝.關于FPGA課程教學的實踐及其探索[J].南昌教育學院學報,2012(11):49-50.
[7]邱欣寅,袁志騫.應用型本科FPGA課程教學模式的探索[J].教育教學論壇,2014(1):210-211.