李東勤,徐勇,常郝
(安徽財經大學管理科學與工程學院,蚌埠233030)
預計未來十年將是我國利用信息技術與裝備,提升國家創新能力的關鍵時期。要實現這一目標,需要大批具備計算機系統能力,能夠進行系統級設計、實現和應用的計算機專業人才。因此,加強計算機類專業學生的系統能力培養已成為教育界、學術界和工業界的共識[1]。為了進一步推動全國高校計算機系統能力培養工作,2010 年教育部計算機類專業教學指導委員會(以下簡稱“教指委”)專門成立了“計算機類專業系統能力培養”研究項目組,多個省份還成立了地方工作組。在教指委的指導和推動下,國內許多高校開始重視計算機系統方面的教學,積極探索和實踐系統能力培養模式[2-7]。
我校從2017 年開始,積極參加高校計算機系統能力培養課程建設研討會和各類培訓學習班,學習了合肥工業大學、中國科學技術大學、華中科技大學、北京航空航天大學等國內一流大學的教改經驗,并結合地方省屬高校生源的特點,積極探索適合我校特色的課程體系和改革方案,并付諸實踐。
我校已于2018 年5 月入選教指委高等院校系統能力培養第三批試點校。為了進一步推進我校的計算機系統能力培養工作,我們進行了課程體系改革,建立了系統類課程群,包含數字邏輯、計算機組成原理、微機原理與接口技術、編譯原理、操作系統等硬件類核心課程。我們旨在通過系統類課程群中核心課程的綜合改革和實踐,實現我校計算機專業學生能夠自主開發“一個CPU、一個操作系統、一個編譯器”的教學目標,即本科生通過多門課程的學習與實踐,能自主開發一個CPU,并能為所開發的CPU 配套開發一個操作系統和一個編譯器,從而完成計算機系統設計與實驗;幫助學生建立完整計算機系統,使我們的學生能夠在掌握計算機系統基本原理的基礎上,進一步開發構建以計算技術為核心的應用系統。
在系統類課程群中,《數字邏輯》課程位于最底層,是核心基礎課程,可以為后續的計算機組成原理等硬件類課程提供很強的理論和實踐基礎。同時,數字邏輯實驗課程實現的各種元器件和功能部件可以為后續的計算機組成原理實驗課程復用,避免重復設計。
自我校實行大類招生以來,《數字邏輯》課程是計算機類專業學生必修的一門專業基礎課程,包括理論54 學時和實驗18 學時。該課程主要講解數字電路的基本原理,強調數字電路的分析和設計方法,因此既有豐富的理論體系,又有很強的實踐性。
改革之前我校的數字邏輯實驗課程,采用的是傳統的實驗箱模式,即學生通過簡單的插拔線完成指定的實驗項目。這種實驗模式可以讓學生對硬件設備和各類元器件有一個感性的認識,但受制于實驗箱本身元器件的種類和數量,只能完成一些驗證型實驗和簡單的設計型實驗。雖然小規模的設計型實驗可以幫助學生基本理解數字電路的基本原理和初步具備數字系統的開發能力,但由于規模太小,使得復雜系統中存在的較為深刻的問題難以暴露。實驗箱本身比較龐大,學生只能在指定的時間到指定的地點完成實驗項目。在學生進行實驗時還會遇到這樣一種情況,多次檢查設計本身沒有任何問題但實驗結果就是不對,經過排查發現是實驗箱本身有問題,這會極大打擊學生實驗的積極性。
在計算機系統能力培養工作中,實踐可以說起到關鍵性作用。只有通過實踐才能真正培養學生系統能力,同時也是理論知識的有效檢驗手段。在系統類課程群建設過程中,我們統一了實驗平臺,減少學生不斷熟悉平臺的時間,可以將更多的時間和精力用于設計。我們選擇實驗平臺以Xilinx FPGA 器件的開發板Nexys 4 DDR 為硬件實驗平臺,以Vivado 為配套開發軟件,以強化設計能力和系統能力為目的。
由于我校之前沒有開設過硬件描述語言,硬件類課程實驗基本是通過獨立的實驗箱來完成的,因此我們首先需要讓學生了解一下硬件描述語言Verilog。Verilog 語言是源于 C 語言,經 IEEE 公布為 IEEE STANDAD1364-1995-2 標準的一種硬件描述語言,在美國 ASIC(Application Specific Integrated Circuit)設計者使用Verilog HDL 語言較為普遍;使用Verilog 硬件描述語言進行邏輯設計,高效且便于驗證,可實現大規模復雜數字邏輯系統設計。因為課時有限,而且Verilog 語言與C 語言編程風格相似,學習難度相對較低,易于上手,因此這部分內容我們讓學生通過自學完成。在超星學習通平臺,我們提供了優秀的Verilog HDL 語言學習視頻和案例,讓學生通過線下打卡自學完成。利用Verilog HDL 語言進行數字系統設計,一方面提高學生程序設計能力,另一方面讓學生掌握用軟件思想解決硬件問題的方法。
我們的實驗課是安排在后九周,所以正好可以跟理論課程所講內容銜接上。當組合邏輯電路快講完時,正好可以進行實驗。第一階段,我們讓學生完成改革之前通過實驗箱完成的驗證型實驗和簡單的設計型實驗。對于設計結果,我們使用兩種手段進行驗證,一種是使用Xilinx 的FPGA 實驗板卡Nexys 4 DDR,另一種可以使用Vivado 自帶的仿真功能。該階段的設計主要是讓學生熟悉Verilog 語言、實驗環境Vivado 以及實驗板卡Nexys4DDR。第二階段完成譯碼器、編碼器、寄存器、存儲器、數據選擇器等基本功能部件的設計。對于常用芯片以及功能模塊,通過自己親自設計,學生可以更加了解集成電路的功能和引腳作用,同時獲得成就感。該階段所設計的基本功能部件不僅可以生成IP核,為下一階段的復雜數字系統調用,還可以為后續《計算機組成原理》實驗課程打下基礎,做好鋪墊。第三階段,我們在實驗項目的安排上,既考慮增大實驗規模和難度,同時不易太難,以免打擊大二學生對硬件課程的學習興趣。增大數字系統設計難度和設計規模,使我們的學生具備解決具有一定規模的復雜工程問題能力,真正起到系統能力培養的目的。對于難度較大的綜合實驗項目,我們在課堂上進行一下講解,給學生以提示作用,主要實現還是靠學生課后去完成。這種方式一方面可以培養學生獨立解決問題的能力和創新能力,另一方面可以培養學生溝通交流能力,通過與同學之間的交流完成任務。部分綜合實訓項目列表如表1 所示。

表1 部分綜合實訓項目
該實驗模式不受場地和時間的限制,學生基本上可以隨時隨地進行實驗,即使課堂上無法完成的實驗,也可以利用課后繼續去完成。對于Xilinx FPGA 器件的開發板Nexys 4 DDR 小巧玲瓏,非常便于隨身攜帶。我們以動態數碼管顯示為例,要求學生以流水的方式在指定的數碼管上顯示指定的數據。這里涉及到計數器模塊、3:8 譯碼器模塊、顯示譯碼器模塊、分頻模塊(如果需要通過實驗板卡進行驗證的話)、存儲器模塊。學生需要設計一個頂層模塊,然后調用上面這些子模塊。實驗結果可以通過仿真查看,如圖1 所示,也可以通過實驗板卡Nexys 4 DDR 進行驗證,如圖2所示。

圖1 仿真結果顯示

圖2 實驗板卡驗證結果
為了提高實驗效果,我們利用超星的學習通平臺進行了課堂學習的延伸,上傳的資料包括優秀作品展示視頻、優秀的學習視頻、學習資料、學習網址等;還經常通過學習通發布專題討論,學生可以發表自己的設計思想。在考核機制上,我們更加注重平時的學習過程考核,以作業的形式在學習通上進行發布,學生以截圖方式提交設計源文件、測試文件、約束文件和仿真結果(或者是以視頻展示實驗板卡實驗結果)。通過學習通的自動統計功能,我們可以隨時查看學生作業的完成情況,對于未按時提交作業的同學平臺會自動及時給出提醒。
改革之前的《數字邏輯》實驗課程成績主要看最后一次的隨堂考試,占期末考試成績的80%。因為實驗箱數量有限,所以是兩位學生使用一臺實驗箱共同完成一個設計題目,就存在少數學生渾水摸魚的現象;而且還存在少數學生設計沒有問題,但因為實驗箱本身的問題一直無法得到正確的實驗結果,嚴重打擊了學生的積極性。
改革之后的實驗課程成績構成包括平時成績60%,期末成績40%。平時成績的60%具體包括學習通平臺視頻資料學習10 分、出勤率10 分,討論和隨堂測驗10 分,平時作業30 分(一共留有5 次課后作業,每次作業6 分)。期末成績就是由期末考試成績構成,提前一周給學生布置考試要求,最后一次實驗課上以答辯的形式介紹作品功能以及完成情況,同時提交實驗報告;教師根據答辯情況和實驗報告給出期末考試成績。對于平時成績教師可以直接由學習通平臺以Excel 文件導出,非常方便,極大地減輕了教師的工作量。
在計算機系統能力培養進程中,《數字邏輯》課程是學習計算機硬件系列課程的核心基礎課程,具有較強的理論性、實踐性和工程性,對培養學生基本素質、實踐能力和創新能力具有舉足輕重的作用。以培養學生系統能力為目標,對《數字邏輯》實驗課程進行了改革和實踐,不僅完成了計算機核心功能部件的設計,更是通過實際項目提高了學生解決復雜工程問題的能力和創新能力,有效地提高了學生實驗的興趣和積極性,取得了較好的改革效果。