陳 微,譚春嬌,唐玉華,吳明飛,王志英
(1.國防科技大學 計算機學院,湖南 長沙 410073;2.國防科技大學 教務處,湖南 長沙 410073)
數(shù)字系統(tǒng)作為電子計算機系統(tǒng)的基礎,是計算機硬件課程系列的專業(yè)核心課程。當前,培養(yǎng)計算機系統(tǒng)能力成為各院校計算機專業(yè)人才培養(yǎng)的重要目標,培養(yǎng)具有系統(tǒng)觀、能夠進行軟、硬件協(xié)同設計的軟硬件貫通人才成為后PC 時代計算機專業(yè)人才培養(yǎng)的關鍵[1-2]。因此,數(shù)字系統(tǒng)課程的重要性日益突出。
傳統(tǒng)數(shù)字系統(tǒng)課程往往局限于基本理論知識的掌握和少量課程大作業(yè)的實踐,缺乏科學系統(tǒng)的課程實驗體系和有效的實驗過程管理。學生難以將理論知識與實踐相結合,數(shù)字系統(tǒng)的實際動手開發(fā)能力沒有得到有效的鍛煉。作為實踐性很強的專業(yè)課程,在邊學邊干中展開教學,數(shù)字系統(tǒng)課程才能真正達到培養(yǎng)學生數(shù)字系統(tǒng)設計能力的教學目的。
數(shù)字系統(tǒng)課程與其他課程間的關系如圖1 所示。課程在電路與模擬電子技術、數(shù)字電子與數(shù)字邏輯、程序設計以及計算機原理的基礎上,對數(shù)字系統(tǒng)設計的相關知識進行系統(tǒng)講解,為學習后續(xù)課程,如嵌入式系統(tǒng)、計算機體系結構、VLSI 設計等打下必要的基礎。
圖1 數(shù)字系統(tǒng)在計算機專業(yè)課程體系中的地位
課程的教學目標是要從基礎知識的角度講解數(shù)字系統(tǒng)設計的相關概念、基本原理,從方法學的角度闡述數(shù)字系統(tǒng)工程設計中的有關概念,使學生了解數(shù)字系統(tǒng)設計過程、主要指導原則及關鍵技術,并輔以相關實例,從而建立全局、整體的數(shù)字系統(tǒng)設計觀念。另一方面,課程重在培養(yǎng)學生的實踐能力,即實際設計和開發(fā)數(shù)字系統(tǒng)的能力,因此該課程涉及的知識面廣、內(nèi)容多、實踐要求高。
貫徹“邊學邊干”的教學理念,基于課程的教學目標和重點,科學系統(tǒng)地設置理論教學和實踐教學內(nèi)容,采用有效新穎的教學手段和教學管理模式,培養(yǎng)學生的數(shù)字系統(tǒng)設計和開發(fā)的能力,是該課程教學中探索的主要方面。
數(shù)字系統(tǒng)課程教學內(nèi)容一般包括理論教學和實踐教學兩部分。教學內(nèi)容設計上需要達到的教學目標:①掌握基礎理論,理解數(shù)字系統(tǒng)設計的基本方法與流程;②邊學邊干,培養(yǎng)實踐動手能力,能夠自主設計一定規(guī)模的數(shù)字系統(tǒng);③滿足不同學生知識與實踐層次的學習需求。
課程內(nèi)容應由淺入深、由底向上,覆蓋數(shù)字系統(tǒng)設計的多個層面如表1 所示。
表1 理論教學內(nèi)容
理論教學首先概述數(shù)字系統(tǒng)設計的基本概念、主流技術等,使學生建立起對現(xiàn)代數(shù)字系統(tǒng)設計主要技術和手段的基本認識。硬件描述語言主要介紹Verilog 硬件描述語言的基本概念、語法和規(guī)則,以及如何使用EDA 工具進行現(xiàn)代數(shù)字系統(tǒng)設計。組合邏輯電路和時序邏輯電路的分析與設計是數(shù)字系統(tǒng)設計的核心,學生在此基礎上進而掌握一般數(shù)字系統(tǒng)的設計方法和步驟。可編程邏輯器件部分主要介紹可編程邏輯器件的分類、原理和應用等。數(shù)字系統(tǒng)的建模與結構主要討論數(shù)字系統(tǒng)模型概念、模型與結構的關系、典型數(shù)字系統(tǒng)計算模型及其在系統(tǒng)設計應用中常用的衍生方式等。在掌握數(shù)字系統(tǒng)設計方法和一般步驟的基礎上,學生可以進階了解數(shù)字系統(tǒng)設計中典型的故障檢測方法和可測性設計。通過理論課程的學習,學生可以系統(tǒng)地了解數(shù)字系統(tǒng)的相關概念、設計方法和流程。
實踐教學對于數(shù)字系統(tǒng)課程而言極其重要,在理論教學之外,課程每周安排2 學時實驗講解課以及2 學時實驗輔導課,實踐教學內(nèi)容由與課程授課進度配套的課堂實驗和最后的綜合實驗兩部分組成。
2.2.1 課堂實驗
目前,本課程共設計12 個課堂實驗,分為示范性實驗、觀察性實驗以及設計性實驗3 個層次,與理論教學相配合,讓學生邊學邊干,實現(xiàn)理論和實踐的結合。每章所配套的課堂實驗數(shù)量見表1。表2 給出了這些課堂實驗與各知識點的對應關系。
表2 課堂實驗安排
實驗1 為示范性實驗,使學生熟悉實驗平臺,初步掌握EDA 工具的使用方法與步驟。實驗2 至實驗6 為觀察性實驗,配合第二章“硬件描述語言”展開。實驗7 至實驗11 為設計性實驗,要求學生根據(jù)理論課程中所學的方法,設計滿足實驗要求的組合邏輯或時序邏輯電路,用硬件描述語言描述,通過仿真驗證,在實驗平臺上下載實現(xiàn)。實驗7 至實驗11 的實驗案例,都是較為典型的組合邏輯電路和時序邏輯電路。實驗12 也是設計性實驗,與第四章“可編程邏輯器件”相配合。前序?qū)嶒炛?,學生用硬件描述語言描述數(shù)字系統(tǒng),驗證通過后編程下載至實驗平臺上。事實上,實驗平臺本身提供了許多現(xiàn)成的IP核(如算術功能單元、時鐘模塊、I/O 接口模塊、存儲器模塊等)供集成在各類數(shù)字系統(tǒng)中。IP 核的使用可以實現(xiàn)設計重用,縮短數(shù)字系統(tǒng)的開發(fā)周期。因此,通過實驗12,學生能進一步掌握IP 核集成等數(shù)字系統(tǒng)設計的重要方法。
12 個課堂實驗,由淺入深、由簡到難,內(nèi)容上環(huán)環(huán)相扣、層層遞進,前面的實驗為后面的實驗打基礎。例如,通過數(shù)碼管譯碼器實驗,學生掌握了數(shù)碼管的顯示控制方法;在計數(shù)器實驗中,學生在數(shù)碼管顯示的基礎上擴展,加入計時控制部分,從而實現(xiàn)按一定的時間間隔計數(shù);通過交通燈實驗,學生掌握多個數(shù)碼管的輪流或分時顯示;前序?qū)嶒灥耐瓿煞纸饬藬?shù)字鐘實驗的難度,而課堂實驗的完成也為后續(xù)綜合實驗的完成提供了保障。
2.2.2 綜合實驗
在理論課程和課堂實驗的基礎上,通過綜合實驗全面考查和提升學生的數(shù)字系統(tǒng)設計能力。綜合實驗要求學生利用課后時間在實驗平臺上設計實現(xiàn)一個具有一定難度和規(guī)模的數(shù)字系統(tǒng),并在實驗平臺上調(diào)試通過。
為了提高學生的興趣,課程可以提供2 個綜合實驗項目供學生選擇,如數(shù)字萬年歷、貪吃蛇游戲。為了滿足對學生不同能力水平的考核,綜合實驗的實驗指導書中明確給出不同成績等級所要求實現(xiàn)的實驗功能。在課程提供的綜合實驗項目之外,學生也可以自己命題,自主設計難度和規(guī)模相當?shù)臄?shù)字系統(tǒng),如用俄羅斯方塊游戲或吃豆人游戲代替貪吃蛇游戲等。
在綜合實驗的實驗指導書中,教師給出實驗功能要求、注意事項以及評分標準。理論課程第5 章—第7 章中介紹的方法與技術,也被要求靈活運用在綜合實驗中。學生根據(jù)所選實驗項目的具體要求進行系統(tǒng)總體設計以及模塊設計,然后進行硬件代碼的開發(fā)、調(diào)試和系統(tǒng)實現(xiàn)。最后要求學生提交的實驗作業(yè)包括實驗源代碼以及詳細的實驗報告。完整的實驗報告包括需求分析、總體設計、模塊設計、運行結果、難點和問題分析、總結等內(nèi)容。
2.2.3 實驗平臺
雖然理論教學中涉及了基于中小規(guī)模邏輯器件的傳統(tǒng)數(shù)字系統(tǒng)設計實現(xiàn)方法,但課程的重點在于基于EDA 工具和硬件描述語言的數(shù)字系統(tǒng)開發(fā)實現(xiàn)技術。因此,課程實驗均在基于可編程邏輯器件的實驗平臺上展開。實驗平臺選擇的依據(jù)有:①采用主流廠商的可編程邏輯器件,支持主流商用的EDA 開發(fā)工具;②滿足課堂配套實驗和綜合實驗的需求;③自帶豐富的接口,便于各種趣味實驗的展開,為學生自主設計實驗項目提供資源保證;④提供可擴展口,用于后續(xù)外接其他模塊和設備進行平臺擴展,滿足后續(xù)擴展實驗的需求;⑤具有較高的性價比,保證每個學生都能有一套口袋實驗室隨時進行實踐鍛煉?;谏鲜鲆螅n程選用一款入門級的實驗開發(fā)板,如圖2 和圖3 所示。
圖2 實驗開發(fā)板外觀
圖3 實驗開發(fā)板主要模塊與接口
該實驗開發(fā)板選用Xilinx 公司的Spartan6系列的XC6SLX9,同時配置64Mbit 的RAM 和32Mbit 的Flash 資源,以確保資源使用的裕度。表3 為實驗板載的基本資源。該實驗開發(fā)板支持多種層次的實驗需要,本課程所有的課堂配套實驗以及綜合實驗均在該實驗平臺上完成。作為入門級的實驗開發(fā)板,與此開發(fā)板功能類似的實驗平臺有很多可供選擇,性價比都較高,適合供學生人手一塊進行課堂和課后練習。
表3 實驗開發(fā)板資源
很多教師抱怨學生對實驗課不重視,抄襲現(xiàn)象嚴重,實踐教學效果不理想。部分學生的學風和學習態(tài)度固然存在一定問題,但作為教師,應該更多地從自身找問題,從教學本身找原因。完善實驗管理過程,完善課程考核機制,是提高學生學習積極性,提高教學質(zhì)量的重要途徑[3]。
實驗系列教師缺乏、助教制度不完善是國內(nèi)院校普遍存在的問題。不少課程的實驗課都是交由助教講課或輔導,而不是由主講教師或是專門的實驗教師承擔。很多助教都是研究生,沒有經(jīng)過專門的教學培訓,缺乏教學經(jīng)驗。有的助教本身對所輔導的課程并不精通,更有甚者是抱著學習一門課的目的來當助教。因此,實踐教學師資力量的薄弱,必然影響到實踐教學質(zhì)量。教師對實踐教學的不重視,必然導致學生對實踐學習的不重視。
目前,本課程的實踐教學由主講教師親自擔任。課程主講教師在從事過大型工程開發(fā)任務、具有豐富的數(shù)字系統(tǒng)開發(fā)經(jīng)驗的教師中選拔。另一方面,課程助教的人選嚴格把關,只選擇具有相關專業(yè)背景或具有相關工程開發(fā)經(jīng)驗的高年級研究生擔任,助教名單需主講教師進行面試才能確定。從近兩年的教學效果來看,完善實驗過程管理,加強實驗教學的師資力量,可以有效提高實踐教學的教學質(zhì)量。
在課程考核上,堅持“過程大于結果”的理念。本課程考核項目及比重為:理論考核占40%,課堂實驗7 至實驗11 各占5%(共計25%),綜合實驗占30%,平時成績占5%,實驗考核的比重大大增加。課程強化對學生的過程性評價,一方面增加對課堂實驗的考核,另一方面綜合實驗考核明確給出成績等級。因為學生的能力彼此不同,有的學生難以完全獨立設計實現(xiàn)功能復雜的數(shù)字系統(tǒng)。如果給學生單一的考核要求,那么這部分學生會因為畏難情緒而放棄動手嘗試實驗。因此,從簡單的實驗入手并考核,可以鼓勵學生進行實踐嘗試,對學生學習過程中的進步也是鼓勵。
在實驗實施過程中,鼓勵學生相互討論和分享經(jīng)驗。但討論之余必須獨立完成實驗并參加實驗驗收。實驗驗收由主講教師或助教與學生一對一開展。驗收過程中,學生要描述所設計數(shù)字系統(tǒng)的功能、解釋部分代碼。這種驗收方式有效減少了抄襲現(xiàn)象。
數(shù)字系統(tǒng)課程教改實施2 年以來,教學成效顯著:①學生實踐能力得到了較大的提高,課堂實驗獨立完成率達到97%,綜合實驗獨立完成率達到94%,各層次的學生在動手能力培養(yǎng)方面都有收獲;②學生理論課成績大幅提高,經(jīng)過了大量實踐鍛煉,學生將理論與實踐相結合,由被動接受知識轉(zhuǎn)變?yōu)橹鲃铀伎紗栴};③培養(yǎng)了一批硬件愛好者,在綜合實驗部分,不少學生加入了自己的理解和創(chuàng)新,設計的數(shù)字系統(tǒng)也是奇思妙想、精彩紛呈。
數(shù)字系統(tǒng)課程的地位和特點決定了實踐教學環(huán)節(jié)在該課程中的重要性。邊學邊干將理論教學和實踐教學相結合,是提高教學質(zhì)量的有效手段。實踐證明,合理設置與理論課程緊密配合的實驗內(nèi)容,對于學生全面深入掌握課程內(nèi)容,積累工程經(jīng)驗,培養(yǎng)分析問題和解決問題的能力、培養(yǎng)科技創(chuàng)新意識等方面都是非常有用的。后續(xù)的教學改革將繼續(xù)探索創(chuàng)新實驗內(nèi)容和實驗模式,而如何規(guī)劃銜接好上下游課程之間的實驗內(nèi)容和實驗平臺,也是課程需要重點考慮的問題。