王 晴,劉宏偉,張彥航,陳惠鵬,許 磊
(哈爾濱工業(yè)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150001)
數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計課程是計算機(jī)大類的一門基礎(chǔ)性課程,教學(xué)目的是培養(yǎng)和提高計算機(jī)專業(yè)人才的抽象思維能力及邏輯設(shè)計能力[1-2]。哈工大計算機(jī)學(xué)院秉承著以學(xué)生為主體、以課程為核心、以激勵學(xué)生的創(chuàng)造性思維為目標(biāo)的實驗教學(xué)思路,實驗教學(xué)與理論課程采用點(diǎn)面結(jié)合、配合緊密、循序漸進(jìn)的方式,以期提高學(xué)生的計算思維能力和自主創(chuàng)新能力,全方位地培養(yǎng)學(xué)生的工程素質(zhì)和研究素質(zhì)。同時為了提高通識教育與專業(yè)教育的契合度[3-5],2016年制定的新版《本科生培養(yǎng)方案》,數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計課程在實踐層面做出了多項改革舉措,擴(kuò)充知識點(diǎn)覆蓋深度和廣度,突出理論知識的實踐應(yīng)用,更加注重學(xué)生邏輯思維能力、解決復(fù)雜工程問題的能力以及終身學(xué)習(xí)能力的鍛煉和培養(yǎng)。
為了提高學(xué)生的創(chuàng)新和實踐能力,數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計”課程在新的教學(xué)大綱中逐步增加了實驗項目和實驗學(xué)時,并增大了綜合設(shè)計型實驗項目的占比,如圖1所示。

圖1 實驗學(xué)時、學(xué)分統(tǒng)計圖(2011—2017年)
2011—2014年,實驗學(xué)時為12學(xué)時,共4次實驗,每次實驗包括4~6個實驗項目,實驗總成績占課程成績的20%(即20分)。實驗內(nèi)容中,設(shè)置了綜合設(shè)計類型的實驗項目,但由于課時的限制,內(nèi)容相對簡單,重點(diǎn)放在設(shè)計方法的掌握及設(shè)計思維的培養(yǎng)上。為了彌補(bǔ)不足,課程總成績中增加了一項課后大作業(yè)的成績,占課程成績的10%(即10分),具體內(nèi)容為學(xué)生自行設(shè)計并實現(xiàn)一個獨(dú)立工作的數(shù)字系統(tǒng)。對于該部分,學(xué)生設(shè)計的居多,真正實現(xiàn)的較少,教學(xué)效果有一定瑕疵。
為了突出實驗環(huán)節(jié)的重要性,2015年將實驗學(xué)時增加至16學(xué)時,共6次實驗,實驗成績提高到29分,課后大作業(yè)仍占10分。此次改革中,單獨(dú)使用1.5學(xué)時作為一次綜合設(shè)計類的硬件實驗考試,滿分5分,具體內(nèi)容為設(shè)計實現(xiàn)一個七段數(shù)碼管顯示譯碼器,要求學(xué)生靈活運(yùn)用計數(shù)器、觸發(fā)器、譯碼電路等知識,獨(dú)立完成從設(shè)計、選片、連線、調(diào)試、排除故障到實現(xiàn)一個數(shù)字系統(tǒng)的全過程。
為了進(jìn)一步提高學(xué)生解決實際問題的能力,以及增強(qiáng)學(xué)生對于數(shù)字系統(tǒng)設(shè)計過程全面掌控的能力,2017年將綜合設(shè)計類型的實驗學(xué)時增加至6學(xué)時,新增一項FPGA綜合設(shè)計類型的實驗,滿分15分,要求學(xué)生采用自頂向下的思想,使用硬件描述語言的手段,在FPGA平臺上設(shè)計實現(xiàn)一個完整的電子系統(tǒng),具體內(nèi)容及考核形式見3.1節(jié)。
2017年,數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計課程為了提高學(xué)生參與實驗教學(xué)的自主度,體現(xiàn)以學(xué)生為本的理念,在實驗項目、實驗類型等方面做了相應(yīng)的改革。主要措施是提高了綜合設(shè)計類型實驗項目的占比,增加了選做實驗的比例,使得不同程度的學(xué)生在實驗課上能夠根據(jù)自身情況有的放矢,突出個性化培養(yǎng)的重要性。
表1所示為2017年春季學(xué)期數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計課程的實驗項目列表。課程實驗學(xué)時16學(xué)時,共6次實驗,其中2次為綜合設(shè)計型實驗;在其他4次實驗中,設(shè)計型實驗項目有12項,占實驗項目總數(shù)的63.2%,選做實驗項目共7項,占實驗項目總數(shù)的36.8%。從表1中可見,設(shè)計類的實驗項目數(shù)量比例較大,且給出的選做實驗項目范圍也較大。
2011年,計算機(jī)學(xué)院根據(jù)當(dāng)時的培養(yǎng)方案要求,自主開發(fā)設(shè)計了一套能夠完成中規(guī)模芯片硬件連線設(shè)計和FPGA可重構(gòu)編程設(shè)計兩種設(shè)計方式的實驗平臺,設(shè)計框圖如圖2所示。實驗平臺分為硬件電路實驗部分、信號源及信號檢測部分、FPGA可編程部件下載運(yùn)行部分,其中,硬件電路實驗部分和信號源及信號檢測部分主要完成硬件實驗,實驗方式是硬件連線;FPGA可編程部件下載運(yùn)行部分配置FPGA芯片,主要完成FPGA實驗,實驗方式是使用硬件描述語言設(shè)計并下載。

圖2 數(shù)字邏輯實驗平臺設(shè)計框圖
基于平臺框圖設(shè)計,計算機(jī)學(xué)院與廠家合作量產(chǎn)了適合課程實驗的SD2100數(shù)字邏輯設(shè)計實驗箱,實驗臺面板如圖3所示,其中,硬件電路實驗部分能夠完成基本門電路實驗、觸發(fā)器實驗、計數(shù)器實驗、交通燈實驗等多種常用電路實驗;FPGA可編程部分最主要的器件是1片XILINX公司的XC3S500E芯片和64K×16位的RAM芯片構(gòu)成的50萬門邏輯電路核心板,能夠支持FPGA實驗調(diào)試、下載及運(yùn)行的完整流程。

圖3 SD2100實驗箱
隨著近幾年可編程器件的飛速發(fā)展,老實驗臺上配置的XC3S500E芯片已經(jīng)逐漸不能適應(yīng)新的硬件市場。為了保持實驗手段的先進(jìn)性,促進(jìn)學(xué)生在校學(xué)習(xí)與工作后的無縫連接,2016年,我們購置了450套口袋實驗室開發(fā)板,其上配置了XILINX公司的XC7A35T-1CSG324C芯片,以此代替SD2100實驗臺中原有的FPGA部分。開發(fā)板外觀如圖4所示,具有大容量、高性能的特點(diǎn),能實現(xiàn)更加復(fù)雜的設(shè)計內(nèi)容,且體積小巧,攜帶方便,利于隨時隨地使用。

圖4 FPGA口袋開發(fā)板

表1 課程實驗項目列表(2017年)
在實驗課堂以外,為了支持學(xué)生在沒有實際FPGA開發(fā)板的情況下,也能夠在遠(yuǎn)程使用真實的開發(fā)板,計算機(jī)學(xué)院搭建了硬件類遠(yuǎn)程虛擬實驗平臺,如圖5所示。文獻(xiàn)[6]詳細(xì)介紹了該平臺的架構(gòu)及特色,該平臺已在哈爾濱工業(yè)大學(xué)計算機(jī)學(xué)院及軟件學(xué)院的本科教學(xué)中完成試點(diǎn)應(yīng)用,取得一定成效,正逐步推廣使用。遠(yuǎn)程硬件平臺實現(xiàn)了硬件類課程“遠(yuǎn)實近虛、以虛補(bǔ)實、以實驗虛”實驗教學(xué)模式[7],彌補(bǔ)了硬件實驗課堂時間緊、任務(wù)重的缺點(diǎn),有效提高了實驗教學(xué)效果。

圖5 遠(yuǎn)程虛擬平臺
自2015—2017年,課程實驗經(jīng)歷了3次重要的改革,其中力度最大的當(dāng)屬FPGA綜合設(shè)計類實驗。該項實驗以提高學(xué)生實驗興趣和創(chuàng)新能力為出發(fā)點(diǎn),在實驗方式和成績評定方面變化較大。
FPGA綜合設(shè)計實驗共提供9個實驗項目,并鼓勵學(xué)生自擬題目,要求學(xué)生使用硬件描述語言設(shè)計實現(xiàn)一個完整的數(shù)字系統(tǒng),并能夠在開發(fā)板上演示功能。實驗方式采取課后設(shè)計實現(xiàn)、課上評定成績的方式。最后一次實驗課時,要求學(xué)生帶著實現(xiàn)成功的系統(tǒng),在開發(fā)板上現(xiàn)場演示各項功能,并回答老師的提問。實驗教師則根據(jù)系統(tǒng)完成情況及答辯表現(xiàn),當(dāng)堂給出實驗分?jǐn)?shù)。這樣一種成績評定方式與傳統(tǒng)實驗課有所區(qū)別,更類似于畢業(yè)答辯的形式,需要學(xué)生對實驗內(nèi)容有更為深刻的理解。
以電梯控制器的設(shè)計為例,要求設(shè)計一個電梯控制器的數(shù)字電路,能夠模擬出日常生活中電梯在1~9層樓之間上行、下行的功能,不同學(xué)生的設(shè)計成果各具特點(diǎn),體現(xiàn)了不同的創(chuàng)造性思維。
圖6所示的學(xué)生設(shè)計中,直接利用邏輯語句實現(xiàn),沒有設(shè)計其他器件。這種設(shè)計屬于行為級建模方式,描述了邏輯電路的輸入—輸出模型,而忽略了電路底層的內(nèi)部實現(xiàn)和物理細(xì)節(jié)[8]。

圖6 行為級建模設(shè)計框圖
圖7所示的設(shè)計使用自頂向下的設(shè)計方法,將各個功能模塊化[9],其中,Timediv模塊將系統(tǒng)原有100MHZ的頻率分頻為100HZ,Getled模塊輸出每個樓層數(shù)對應(yīng)的數(shù)碼管形狀,Main模塊負(fù)責(zé)判斷電梯運(yùn)行狀態(tài)及控制電梯運(yùn)行方式,test主框架模塊將所有模塊連接起來,同時利用視覺延遲顯示出所有七段數(shù)碼管的形狀。該種設(shè)計方式集成度較高,維護(hù)起來也較為簡單。
圖8所示為基于IP核的學(xué)生設(shè)計,學(xué)生將器件功能提煉并編碼實現(xiàn),再封裝成自定義的IP核,大大提高了效率。利用IP核設(shè)計電子系統(tǒng),引用方便,修改基本元件的功能容易,適合長期進(jìn)行硬件開發(fā)設(shè)計的人員[10]。
通過3個實例,我們看到,盡管題目設(shè)計要求相同,但是選擇同樣題目的學(xué)生的設(shè)計方式和最終設(shè)計成果都不盡相同,這充分體現(xiàn)出該類型的實驗對于學(xué)生自主創(chuàng)新精神和實踐能力的培養(yǎng)成效。

圖7 模塊化的設(shè)計框圖

圖8 基于IP核的設(shè)計框圖
圖9為2017年春季學(xué)期FPGA綜合設(shè)計實驗現(xiàn)場答辯演示部分(滿分10分)的成績分布情況,橫坐標(biāo)軸刻度表示成績分?jǐn)?shù)區(qū)間,縱坐標(biāo)軸表示該分?jǐn)?shù)區(qū)間內(nèi)的人數(shù),共統(tǒng)計392名學(xué)生的成績,9分以上者173名,占44.1%,6分以下者共54名,占13.7%。該項FPGA綜合設(shè)計實驗成績的優(yōu)秀率為44.1%,及格率為86.3%,不及格率為13.7%。

圖9 FPGA綜合設(shè)計成績分布圖
從圖9中,我們看到該項實驗的成績不符合一般的正態(tài)分布規(guī)律,成績分布在兩端的比例較大,中間較少,這與實驗的實際情況是相符合的,實驗成績真實地反映出了“會”與“不會”兩種學(xué)生的存在,對于優(yōu)秀學(xué)生起到激勵促進(jìn)作用,對于后進(jìn)學(xué)生起到督促鞭策作用,也能夠幫助一知半解的學(xué)生定位知識體系的薄弱環(huán)節(jié),便于后續(xù)有針對性的學(xué)習(xí)。
此外,從實驗成績來看,獲得優(yōu)秀的同學(xué)不在少數(shù),實驗完成的效果比較好,證明大部分學(xué)生具有獨(dú)立安裝調(diào)試簡單的電子電路,以及計算機(jī)仿真軟件設(shè)計電子電路的能力。
實驗教學(xué)作為培養(yǎng)復(fù)合型人才的一個必經(jīng)過程,是高校教學(xué)體系中重要的組成部分,其教學(xué)質(zhì)量直接影響著人才培養(yǎng)的質(zhì)量[11]。數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計課程的實驗教學(xué)仍然存在需要不斷改革的方面,在實驗內(nèi)容和實驗方式上都有待進(jìn)一步提升。
(1)實驗項目難度階梯化?,F(xiàn)有的實驗項目難度跨度大,尤其是FPGA設(shè)計類型的實驗,由于受到實驗學(xué)時的限制,課上只能進(jìn)行實驗開發(fā)環(huán)境的簡單講解,而最后的綜合設(shè)計類實驗較為復(fù)雜,但目前只能依靠學(xué)生課后自主學(xué)習(xí)。如果可以增加一個中間過渡難度的實驗,使得各個實驗項目復(fù)雜度能夠形成階梯化的遞進(jìn)形式,相信能夠取得更加良好的實驗效果。
(2)鼓勵自定義IP核的累積。利用Vivado設(shè)計套件的IP集成器可以生成復(fù)雜系統(tǒng)設(shè)計[12],然而目前的實驗課上沒有時間講解IP核的封裝及使用方法,硬件中心實驗教師錄制了幾個視頻教學(xué)內(nèi)容,方便學(xué)生課下學(xué)習(xí)。實驗教師應(yīng)當(dāng)鼓勵學(xué)生多采用IP核的設(shè)計,如果學(xué)生們能夠養(yǎng)成良好的積累習(xí)慣,可以積累自己自定義的IP核,將前續(xù)課程的IP核應(yīng)用到后續(xù)課程的實驗當(dāng)中,避免重復(fù)的勞動量,在實驗層面實現(xiàn)硬件系列課程的連通一貫性,同時也方便以后的課程學(xué)習(xí)和工作實戰(zhàn)。
目前,實驗中心開設(shè)的數(shù)字邏輯與數(shù)字系統(tǒng)設(shè)計課程實驗采用硬件連線+FPGA設(shè)計兩種類型的實驗手段,應(yīng)用硬件實驗箱+真實虛擬平臺兩種實驗平臺,利用教師課上教學(xué)+學(xué)生課下自學(xué)的手段,實現(xiàn)了課程實驗的不斷提升。經(jīng)過實際教學(xué)實踐證明,實驗中心不斷改革的多項措施,有效促進(jìn)了實驗教學(xué)效果,提高了學(xué)生工程意識和系統(tǒng)觀的素養(yǎng),體現(xiàn)了自主學(xué)習(xí)、合作學(xué)習(xí)及探究學(xué)習(xí)相結(jié)合的理念,值得進(jìn)一步推進(jìn)與完善。
參考文獻(xiàn):
[1]Kosuke I.Digital logic design for computer science students[J]. Journal of Computing Sciences in Colleges, 2005(1): 212-219.
[2]韓建濤, 陳小天, 丁文霞. 加強(qiáng)實踐環(huán)節(jié)的數(shù)字邏輯設(shè)計教學(xué)[J]. 計算機(jī)教育, 2014(24): 59-61.
[3]崔金貴. 大學(xué)的卓越靈魂: 通識教育、教學(xué)改革與管理: 哈佛大學(xué)哈佛學(xué)院前院長哈瑞·劉易斯教授訪談錄[J]. 高校教育管理,2014(4): 1-6.
[4]R icardo H.Generally educated in the 21st Century: The importance of computer literacy in an under graduate curriculum[C]//Proceedings of the Western Canadian Conference on Computing Education.Richmond, British Columbia Canada, 2014: 1-5.
[5]何欽銘, 陸漢權(quán), 馮博琴.計算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計算思維能力的培養(yǎng):《九校聯(lián)盟(C9)計算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》解讀[J]. 中國大學(xué)教學(xué), 2010(9): 5-9.
[6]張彥航, 劉宏偉, 陳惠鵬, 等. 基于FPGA的硬件類課程遠(yuǎn)程虛擬實驗平臺[J]. 實驗技術(shù)與管理, 2017, 34(1): 16-20.
[7]史建燾, 李秀坤, 張宏莉. 虛擬仿真云平臺下信息內(nèi)容安全實驗課建設(shè)[J].實驗技術(shù)與管理, 2017(4): 9-13.
[8]Michael D C. Verilog HDL高級數(shù)字設(shè)計[M]. 張雅綺, 李鏘, 譯. 北京: 電子工業(yè)出版社, 2007.
[9]Zainalabedin N. Verilog 數(shù)字系統(tǒng)設(shè)計: RTL綜合、測試平臺與驗證[M]. 2版. 李廣軍, 陳亦歐, 李林, 等, 譯. 北京: 電子工業(yè)出版社, 2007.
[10]Charles H R, Larry L K. 邏輯設(shè)計基礎(chǔ)[M]. 7版. 解曉萌, 楊清洪, 譯. 北京: 清華大學(xué)出版社, 2016.
[11]張春平, 胡慧. 教學(xué)型實驗室建設(shè)與管理[J]. 實驗技術(shù)與管理, 2017(4): 232-234.
[12]孟憲元, 陳彰林, 陸佳華. Xilinx新一代FPGA設(shè)計套件Vivado應(yīng)用指南[M]. 北京: 清華大學(xué)出版社, 2014.