華一村, 曹 源, 張義紅, 鄧開連, 李 楠
(東華大學 信息科學與技術學院,上海 201620)
我國高度重視應用型創新人才培養,以應對新時代背景下人才質量不能適應產業界需求的問題[1]。高校是培養人才的重要陣地和社會生產力輸送的重要源頭,在高校推行應用型創新人才的培養理念,將理念貫穿于教學過程,為社會培養有創造力和有應用能力的人才,是高校義不容辭的責任和義務。
現場可編程門陣列(Field Programmable Gate Array,FPGA)[2],是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物[3]。相比于原有可編程器件,FPGA集成度更高[4],資源更豐富,適用于實現運算能力較強的數據密集型數字系統。它是作為專用集成電路(ASIC)領域中的一種半定制電路[5]而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。當前,FPGA產品的應用領域已經從原來的通信[6]擴展到交通[7]、工業[8]、測試測量[5]等廣泛的領域。
鑒于FPGA優良的性能及廣泛的應用前景,我校積極引進FPGA軟硬件系統裝置,現有EDA實驗室346 m2,FPGA實驗裝置123臺,并為學生開設相應的實驗教學課程。本文將應用型創新人才的培養理念應用于FPGA教學過程,彌補傳統教學模式的不足,推行產學研[9]聯合培養模式,并以FPGA“按鍵-顯示”實驗課為案例,詳細闡述新模式下實驗教學的流程,為基于應用型創新人才培養的FPGA實驗教學提供參考。
高校實驗教育發展至今,已經歷了一系列教學模式的革新[10-11],取得了一些教學成果[11],但傳統教學模式[12]仍占據主導地位,課堂教學內容與實際應用技能無法銜接,學生的創新能力受到限制,教學過程枯燥單一,缺乏啟發性。FPGA實驗課程作為我校電學專業的一門必修課,也深受傳統教學模式的約束。存在的問題主要有以下幾點。
(1) 教學內容與實際生產脫節。實驗類課程本應是培養學生實際動手能力,生產實踐能力的重要渠道,FPGA在實際生產生活中有廣泛應用,但實驗課程內容僅僅局限于完成實驗裝置上的特定功能,并未緊密聯系生產實際。學生缺乏對應用背景的了解,對課程的學習感到抽象和空洞[13],對實驗內容沒有系統性的認識。
(2) 缺乏創新能力的培養。傳統的“灌注式”[14]教學模式能在最短時間內將教學內容傳授給學生,老師講,學生聽,聽完開始做實驗。這樣的模式枯燥乏味,課堂沒有活力,學生接受度低,而且學生始終處于被動接受教師講授的狀態,思維受限,缺乏自主創新意識。這樣的模式培養出的學生無法滿足社會對于創新思維和實踐能力的要求。
(3) 缺乏自主學習能力的培養。由于傳統教學模式以教師為中心,學生過分依賴實驗教師的教授與幫助,當遇到問題時,不會自行查找資料,解決問題,而是一味地等待實驗老師解答。然而一個實驗教師要面對幾十個學生,往往不能及時幫忙查找錯誤,回答問題。學生等待答疑的時間長,學習效率低下。并且這樣的模式培養出的學生,缺乏自主學習能力,將來在社會實踐中遇到問題,也不能很好地應對。
應用型創新人才的培養要從應用能力,創新思維能力,自主學習能力三方面入手。借助產學研[9]結合途徑培養學生的工程應用能力,用啟發式[15]的教學方法培養學生的創新思維能力,課堂講解時緊密結合學習資料的使用,并建設“經驗庫”培養學生的自主學習意識和能力。構建的應用型創新人才培養的FPGA實驗教學模式如圖1所示。

圖1 應用型創新人才培養的FPGA教學模式框架
FPGA實驗教學模式的主要內容有:
(1) 產學研結合強調應用技能培養。產學研相結合的人才培養模式有助于學生加深理解產業界所存在的工程技術問題以及行業發展狀況[16],從中提煉出科學問題,并在實驗室可提供的軟硬件基礎上進行功能研發,對實驗內容有系統性的認識,大大提升技術應用能力。FPGA尺寸小、功耗低、集成度高,移動靈活的特性非常適合于開發可穿戴設備[17]。我校與西塘紐扣產業有項目合作,將FPGA芯片嵌于紐扣中,根據用戶需要增加如溫度控制,攝像監控,心跳監測等功能,開發出可穿戴的智能紐扣,滿足市場需求。上課時,給學生普及FPGA的應用背景,并開放項目通道,鼓勵學生參與FPGA項目開發,使學生將課堂所學及時應用于現實生產,真正實現應用型人才培養的目的。
(2) 啟發式教學培養創新能力。啟發式教學以學生為主體,調動學生的主動性,引導學生積極思考、拓寬思路,從而提高創新思維能力,獨立分析問題和解決問題的能力[15]。鼓勵學生用已有電路電子理論知識自行設計實驗方案。在講解過程中,教師不再是知識的灌輸者,而只是作為一位引導者,設計有針對性的思考題,用提問的方式激勵和啟迪學生發現問題,分析問題,根據學生的反饋,與學生平等交流、討論,一步一步輔助學生用不同的開發思路實現產品功能。
(3) 經驗庫建設培養自主學習能力。為鼓勵學生自主學習,在講解PPT時,會同時引導學生查看指導書的相應內容,教給學生利用指導書、互聯網等查找所需資源的方法。由于每屆學生在軟件操作過程中經常提問類似問題,將學生們提出的常見問題搜集并整理為一個“經驗庫”,經驗庫中給出問題的描述,解決該問題的步驟,以及軟件操作界面的截圖。有的學生在剛開始創建項目的時候沒有選中正確的FPGA核心芯片,在后面的操作中需要修改芯片,則定位到“經驗庫”的第9個問題“實驗中更改芯片”,給出了詳細的步驟描述和軟件操作界面截圖,并用紅色箭頭標示出對應操作位置,如圖2所示。這樣,學生遇到問題時,可以先從“經驗庫”尋找幫助,有效解決了師資不足無法及時解答所有學生提問的問題,也節約了學生的等待時間,提高了學習效率。學生也會效仿這樣的方法建立自己的經驗庫,方便今后的學習。

圖2 經驗庫部分內容截圖
本實驗所采用的FPGA軟件平臺為Altera公司開發的Quartus II[18]軟件,硬件系統為Altera公司開發的Cyclone系列EP1C3T144C8核心芯片及LP-2900開發裝置[2]。在此基礎上,以企業需求為導向,抽象出實驗室可以滿足的開發功能,并對學生進行實驗指導,在教學過程中培養學生的自主學習能力,創新思維能力,并在提高部分幫助學生將實驗課堂所學真正運用于實際產品開發。現以一個教學實例闡述這一過程。
(1) 以企業需求為導向設計實驗內容。企業需求為設計一個智能紐扣系統,通過紐扣按鍵切換智能模式,并在微型LED屏幕上顯示當前模式序號。因課堂資源有限,截取“按鍵-顯示”的功能作為案例,在EDA實驗室的FPGA裝置上進行實驗,由此設定實驗目標功能:LP-2900開發裝置設有3×4鍵盤,共12個按鍵,按鍵內容為數字“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”,及符號“*”“#”。按鍵顯示系統的開發目標為:① 利用3×4鍵盤輸入“0~9”任意10個數字鍵,字符能在FPGA裝置上的LED顯示屏從左到右依次正確顯示,每按1次鍵,顯示1位數字,同時已有的數字依次左移1位。② 設有復位鍵,用來清空顯示屏,等待鍵盤新一輪輸入。在提高部分,指導學生去市場上采購合適尺寸和功耗的屏幕,按鍵等電子元器件,完成真正的產品開發。
(2) Quartus II基礎教學培養自主學習能力。由于學生在這門實驗課前對于FPGA為零基礎,所以要進行一定的基礎教學。踏實的專業基礎能力是應用型創新人才培養的第一步,只有在牢固掌握專業基礎能力的前提下才能進行創新,才知道如何創新,并靈活地將已有知識應用于實際生產中。
用Quartus II軟件進行電子電路設計的開發流程如圖3所示,虛線框內為可選步驟。教學中著重培養學生的自主學習意識,在講解每個步驟時,引導學生查看指導書對應于該步驟的相應頁碼,也幫助學生掌握用學校圖書館電子資源和互聯網等渠道查找相關資料。同時,為了給學生更直觀的感受,老師在講解每一個關鍵步驟后,對該步驟進行Quartus II 軟件的實際操作演示,通過機房屏幕廣播軟件[19],控制機房所有電腦屏幕,同步演示。

圖3 Quartus II的開發流程
為鞏固教學內容,老師在每個關鍵步驟講解結束后,立即指導學生用該步驟內容完成系統中的部分模塊功能。學生由于掌握了自主學習方法,能很快找到需要查閱的資料,并參考這些資料進行模塊開發。
(3) 啟發式教學模式下系統方案設計與實現。啟發式教學的關鍵是設計“思考題鏈”[15],實驗教師用提問的方式引起學生的思考,并鼓勵創新思維,得到不同的解決方案。在“按鍵-顯示”實驗案例中,“思考題鏈”設置如圖4所示。

圖4 FPGA“按鍵-顯示”實驗啟發式教學模式
根據“思考題鏈”的啟發,學生針對目標功能要求設計出多種可行方案,這里給出其中一種實現方案如圖5所示。虛線框內為LP-2900裝置上的3×4鍵盤系統。FPGA通過DE1~DE3這3個端口控制譯碼器A的輸入,以使譯碼器A的Y0~Y3中某一個輸出為低電平,進而獲取按鍵陣列的列線狀態,再通過RK1~RK3這3個端口讀取按鍵陣列的行線狀態。通過行線和列線狀態定位被按下的按鍵位置。為了讓DE1~DE3 3個端口輸出循環往復變化,設置1個計數器[20],通過計數器循環往復的計數輸出(q[0]~q[2])控制DE1~DE3依次不斷變化,實現按鍵的列線掃描。由于計數器需要一個時鐘輸入(Clock),且該頻率小于LP-2900裝置上自帶的晶振[21]頻率,所以設置一個分頻器[22],以將晶振的頻率進行分頻,降低頻率輸出。按鍵陣列的行線信息用一個2-4線數據選擇器[23]進行獲取,數據選擇器的選擇輸入A、B兩個端口用計數器q[3]、q[4]進行控制。為了記錄按鍵陣列的行列信息以進行后續處理,要設置一個寄存器[24]。數據選擇器的輸出端同步控制計數器的使能EN和寄存器的時鐘CLK1,這樣,當掃描到有按鍵被按下時,計數器的當前計數輸出q[0]~q[4]就能立即被寄存器記錄。

圖5 FPGA“按鍵-顯示”實驗的實現方案舉例
接下來,要對獲取到的按鍵陣列的行、列線信息進行譯碼,并顯示在LED屏幕上。如只是顯示當前按鍵,則只需設計1個7段顯示譯碼器,將獲取到的q[0]~q[4]的數據翻譯為LED顯示屏上7段數碼管的A,B,C,D,E,F,G。這里,由于目標功能中要求原有數據保留顯示,并依次左移1位,故設置移位寄存器[25],并配套3-6線數據選擇器,移位寄存器的時鐘也由用來獲取按鍵行線數據的2-4線數據選擇器的輸出控制。這樣,當有按鍵按下時,移位寄存器將原有輸出下移1位,而配套的3-6線數據選擇器通過不斷掃描輸出移位寄存器的6個輸出端以實現移位顯示功能。
復位按鍵可設計為控制移位寄存器的清零端CLR,則當復位按鍵按下時,移位寄存器輸出清零,將其在7段顯示譯碼器中翻譯為LED屏全滅。最終,實現“按鍵-顯示”系統的全部功能要求。
(4) 系統軟硬件調試提升應用能力。完成軟件電路設計后,要將設計的電路導入FPGA硬件裝置,以查看最終開發效果。這時,學生會遇到一些問題,電路設計上的錯誤會真實地反映到硬件上。比如,有的學生按鍵時屏幕上沒有顯示,有的學生屏幕上的數字不能移位等。這時要進行調試,讓學生分析產生問題的可能原因,去電路原理圖中查找對應模塊是否設計有誤,及時更正錯誤,完成最終作品。在這個過程中,學生能深切感受到理論分析與實際產品開發的區別。
在提高部分,要求學生分析企業所需產品的特點,考慮尺寸,功耗等各方面因素,去市場上挑選合適的電子元器件,來代替實驗裝置,完成實際產品開發。這一過程大大提高了學生的自主學習能力,創新思維模式以及工程應用技能。
在本案例中,實驗內容緊密結合工程背景,使學生對實驗目的有清晰的認識,對實驗內容有系統性的概念,在完成產品開發后,對自己的應用技能產生信心。自主學習能力的培養使學生擁有獨立學習和獨立開發產品的意識和能力,在未來的學習工作中,懂得如何查閱資料,獨立進行產品研發。“經驗庫”的使用在實驗課中大大減少了學生的等待時間,提高了學習效率,同時,許多學生也效仿這個思想,建立了自己的“經驗庫”,將解決方案不斷補充進去,方便今后查閱。啟發式的教學模式不僅提高了學生的課堂參與度,也活躍了學生的思維,提出了許多創新的解決方案。基于應用型創新人才培養的教學模式在FPGA實驗教學中取得了良好的效果。
為彌補傳統教學模式的不足,提出了培養應用型創新人才的FPGA實驗教學模式,并通過FPGA“按鍵-顯示”系統的實驗課案例詳細闡述實驗教學過程。從FPGA的工程應用背景入手,運用“產學研”結合的教學模式提高學生的工程應用能力。在Quartus II等基礎教學過程中配合“經驗庫”的建設,著重培養學生的自主學習能力。在方案設計實驗教學環節,運用啟發式教學模式,設計環環相扣的“思考題鏈”,引導學生積極思考,培養創新思維能力。最終,在新模式的引導下,學生從對FPGA一無所知的狀態,逐漸掌握FPGA的專業知識,自主完成軟件設計,硬件電路調試,完成產品開發,并運用于實際生產中。在此過程中培養了學生的自主學習能力、創新思維能力和工程應用能力,較好地實現了應用型創新人才的培養目標。