柳 欣
(山西大學(xué)商務(wù)學(xué)院 信息學(xué)院,山西太原 030031)
一體化數(shù)字集成電路IC(Integrated Circuit)是各種控制/智能終端系統(tǒng)的核心部分。掌握數(shù)字IC 設(shè)計可以為特定領(lǐng)域做出貢獻(xiàn),如老年護(hù)理和獨立生活的生物電位監(jiān)測,護(hù)理人員遠(yuǎn)程監(jiān)測多項生命體征參數(shù),以識別老人移動、行走狀態(tài),監(jiān)測是否跌倒等。目前EDA(Electronics Design Automation)發(fā)展已經(jīng)使數(shù)字IC 設(shè)計方法從圖形轉(zhuǎn)向硬件描述語言HDL(Hardware Description Language),它意味著數(shù)字IC 設(shè)計變得更加抽象。成果導(dǎo)向教育(Outcome based education,OBE)倡導(dǎo)學(xué)生與教師精誠合作,共同完成學(xué)習(xí)過程,最后一起分享學(xué)習(xí)成果,享受學(xué)習(xí)樂趣[1]。為使學(xué)生能夠較好地參與到課堂教學(xué)中來,基于Verilog HDL 的主題—案例組合式實驗教學(xué)設(shè)計,意在通過基于IC 基本技術(shù)的典型設(shè)計實例回應(yīng)到實際項目,為學(xué)生提供簡便高效學(xué)習(xí)方法的同時,拓展學(xué)生在未來特定領(lǐng)域?qū)崿F(xiàn)數(shù)字IC 設(shè)計并有效改進(jìn)現(xiàn)有控制系統(tǒng)的能力。
教學(xué)依據(jù)的線上教學(xué)平臺為推送資源及組織教學(xué)活動平臺——學(xué)習(xí)通[2]、虛擬仿真實驗室Quartus9.1、集中教學(xué)平臺——騰訊會議;線下銜接教學(xué)平臺為多媒體環(huán)境的現(xiàn)場實驗室。OBE理念下線上線下可銜接的實驗教學(xué)實施及學(xué)習(xí)效果導(dǎo)向如圖1 所示。
培養(yǎng)學(xué)生掌握數(shù)字IC 設(shè)計的能力,包括編寫Verilog HDL,運行EDA 工具來模擬、綜合和測試及驗證FPGA 設(shè)計[3]。
(1)了解數(shù)字IC 設(shè)計方法。①設(shè)計流程;②設(shè)計仿真,綜合和驗證。
(2)能夠編寫Verilog HDL 代碼。①理解Verilog HDL 的結(jié)構(gòu)、數(shù)據(jù)流和行為描述;②理解Verilog HDL 與硬件架構(gòu)的關(guān)系。
(3)能夠使用EDA 工具和FPGA 測試板。①使用EDA 工具完成數(shù)字IC 設(shè)計的能力;②通過EDA 開發(fā)工具和FPGA 測試板驗證數(shù)字IC 設(shè)計的能力。
(4)能夠反思已有設(shè)計并通過組討論持續(xù)推進(jìn)設(shè)計方法的優(yōu)化。①了解自頂向下、分層和并行設(shè)計方法;②了解流水線、多循環(huán)和硬件共享先進(jìn)的設(shè)計技巧。
圖1 OBE 理念下線上線下可銜接的實驗教學(xué)實施及學(xué)習(xí)效果導(dǎo)向圖
學(xué)習(xí)者完成課程應(yīng)達(dá)到學(xué)習(xí)成果:①理解Verilog HDL 語法、編碼、語法和語義;②理解物理硬件架構(gòu)與Verilog HDL 之間的關(guān)系;③掌握IC設(shè)計流程,包括Verilog HDL 代碼模擬、單元庫、綜合、時序分析和設(shè)計驗證;④具備通過分析現(xiàn)有案例來組織實施項目的能力;⑤具備通過FPGA測試板,運用知識驗證數(shù)字IC 設(shè)計的能力;⑥能夠拓展運用數(shù)字IC 設(shè)計能力到特定應(yīng)用領(lǐng)域。
采取以案例為核心、講座和實驗同步組合實施的一套完整教學(xué)設(shè)計,組織的學(xué)習(xí)方式將支持學(xué)習(xí)者學(xué)習(xí)能力的自我更新和持續(xù)發(fā)展。
(1)知識理解。①利用本課程知識,理解與案例直接相關(guān)問題;②分析梳理實際項目與現(xiàn)有案例之間的知識點關(guān)系;③思考和應(yīng)對新項目、新課題的考察和挑戰(zhàn)。
(2)智力技能。①分析案例實施中成功或失敗的原因;②總結(jié)小組經(jīng)驗基礎(chǔ)上優(yōu)化原有實驗設(shè)計;③小組間討論和經(jīng)驗分享,獲得新思維啟迪;④拓展應(yīng)用案例做更進(jìn)一步研究,嘗試解決新問題或完成新項目。
(3)實踐技能。①編寫Verilog HDL 開發(fā)特定數(shù)字IC;②利用數(shù)字IC 實現(xiàn)既定算法;③使用FPGA 驗證數(shù)字IC 設(shè)計。
(4)整合技能。①應(yīng)用真實案例來幫助理解抽象問題;②關(guān)聯(lián)問題到其他項目;③建立起獨特的個人知識和能力集合。
由于所提出的數(shù)字IC 設(shè)計課程是基于案例的教學(xué),因此在實踐教學(xué)實施中最好安排主題講座和實驗任務(wù)為同步進(jìn)行。課程包括10 個講座主題和2 個項目。每個講座由講座主題和實驗室的代表性案例組成,每個案例包括Verilog HDL代碼中的物理結(jié)構(gòu)、注釋、真值表和各種描述的說明等內(nèi)容。學(xué)生可以通過參考原理圖和Verilog HDL代碼,學(xué)習(xí)Verilog HDL代碼的語法、語義,不再是純粹面對那些抽象術(shù)語。案例集合的最終指向是終極項目,目的在于引導(dǎo)學(xué)生學(xué)習(xí)如何完成數(shù)字IC 設(shè)計。2 個項目為脈搏測試儀和選擇項目邏輯看門狗或交通信號燈控制。以終極項目脈搏測試儀為例,分別在第6 次、第10 次講座指導(dǎo)學(xué)生設(shè)計完成四倍頻器模塊、555 集成定時器模塊和千進(jìn)制計數(shù)—譯碼—顯示器3 個核心子模塊。第13 次講座完成終極項目脈搏測試儀的設(shè)計驗證。按時間順序列出主題講座、案例、案例實驗、實驗室學(xué)習(xí)時間、實際項目指向,見表1。課程除了表1 第/3 欄所示的1、6 和13 課外,分為10 個主題。
課程設(shè)計安排共13 次講座,除第1 個講座為1 小時外,其余都設(shè)計為3 個小時。每周需3個小時,分14 周完成。此外需為每次實驗教學(xué)實施留出以下時間:①根據(jù)課前教學(xué)活動的分組任務(wù)制定小組實驗方案并虛擬仿真初步測試的時間;②學(xué)生在實驗室以分組形式按既定實驗方案自主實驗和模塊項目操作的時間;③實驗教學(xué)人員檢查和驗證由學(xué)生完成的實例、中間項目和終極項目的時間;④教師根據(jù)現(xiàn)場操作實例解釋模塊實驗、模塊和項目之間關(guān)系的時間;⑤學(xué)生小組間討論、分享實踐經(jīng)驗、組間互相指導(dǎo)的時間;⑥教師對實施結(jié)果分析和說明,提煉新方
法、新思維和新設(shè)計,推動組內(nèi)和組間實驗?zāi)芰φw提升的時間;⑦實驗后的反思總結(jié),進(jìn)一步優(yōu)化實驗設(shè)計、實驗流程和問題解決的時間。
表1 基于案例的數(shù)字IC 設(shè)計課程的講座和實驗組織
如圖2 所示為講座5 的一部分,顯示一個累加寄存器案例,用于說明指令庫軟件和Verilog HDL 代碼之間的區(qū)別。這個階段學(xué)生已經(jīng)了解了課程前期內(nèi)容的關(guān)鍵路徑的含義。圖2(a)顯示累加寄存器的框圖,由三個輸入和一個輸出組成。圖2(b)顯示的是C 語言中累加寄存器的軟件程序,其中有四個整數(shù)變量和一個語句來完成累加的操作。圖2(c)顯示累加寄存器的物理結(jié)構(gòu),說明實際硬件和輸入/輸出部分的細(xì)節(jié)。此外,該圖還顯示兩個加法器之間的寄存器連線k 以及從兩個加法器的輸入到輸出的關(guān)鍵路徑。
圖2(d)給 出 累 加寄存器的Verilog HDL 代碼。參考圖2(c),學(xué)生可以通過將輸入/輸出和線聲明映射到電路物理結(jié)構(gòu)中的輸入/輸出端口和實際連接線來理解Verilog HDL 代碼。算術(shù)和邏輯運算可以以相同的方式映射到實際組合電路中。它有助于學(xué)生了解Verilog HDL代碼與物理結(jié)構(gòu)之間的關(guān)系,進(jìn)而更好地理解抽象Verilog HDL 代碼中關(guān)鍵路徑的含義。
圖2(e)顯示使用了兩個數(shù)據(jù)選擇器、一個加法器和一個寄存器的兩級累加寄存器物理結(jié)構(gòu)。該累加寄存器通過數(shù)據(jù)選擇器和加法器設(shè)計的關(guān)鍵路徑是從寄存器k 到輸出d。圖2(f)描述兩級累加寄存器的Verilog HDL 代碼。教師通過比較圖2(c)和2(e)的物理結(jié)構(gòu)來解釋組合和時序電路的變化,有助于學(xué)生了解關(guān)鍵路徑的含義,在Verilog HDL 語言和物理結(jié)構(gòu)對比中更好地理解關(guān)鍵字“assign”和“always”之間的區(qū)別,此外還可以引導(dǎo)學(xué)生學(xué)習(xí)如何在設(shè)計中聲明和使用寄存器。
圖2 解釋C 語言和Verilog HDL 區(qū)別的累加寄存器案例
實際教學(xué)中把相關(guān)內(nèi)容按類組合,以類組合方式呈現(xiàn)給學(xué)生。如該案例中,講座ppt 顯示的第一個類組合是圖2(a)、2(b)、2(c)和2(d)的組合,用于說明選擇器的第一個結(jié)構(gòu)設(shè)計。為了在有限的一張幻燈片中呈現(xiàn)組合內(nèi)容,可采用Focuksky 軟件在同一張幻燈片的不同區(qū)域添加4個幀,將a、b、c、d 的內(nèi)容分別放在4 個幀上。演示時即可同時呈現(xiàn)4 幀內(nèi)容,也可通過光標(biāo)指向來控制某幀放大到全屏幕展示。類似地,第二張幻燈片展示的是圖2(a)、2(b)、2(e)和2(f)的類組合,用于解釋累加器去符號的第二結(jié)構(gòu)。最后一張幻燈片顯示圖2(c)、2(d)、2(e)和2(f)的類組合,用以比較兩種不同的累加寄存器的描述和結(jié)構(gòu)。通過這種分類組合的展示方式,學(xué)生不僅可以同時獲取框圖、語言、物理結(jié)構(gòu)和Verilog HDL 描述的信息,還可以了解兩種不同描述和結(jié)構(gòu)之間的區(qū)別。
圖2 是基于案例的Verilog HDL 課程兩級累計寄存器的教學(xué)示例。如在更多級寄存器組設(shè)計的情況下,設(shè)計中的聲明和寄存器使用可以根據(jù)案例特點進(jìn)行節(jié)點和線路的拓展修改。
為取得實踐教學(xué)實施效果反饋信息,針對性構(gòu)建反饋評估方式,從學(xué)生學(xué)習(xí)本課程的背景知識和基于案例的數(shù)字IC 設(shè)計課程的回應(yīng)兩個方向做出相關(guān)調(diào)查。調(diào)查問卷由教學(xué)助手于終極項目審查后發(fā)放。第一類表列出學(xué)生背景包括性別、年級、專業(yè)、編程語言背景、FPGA 板和其他虛擬仿真實驗平臺使用經(jīng)驗等信息,意在了解數(shù)字IC 課程實踐教學(xué)設(shè)計的實效發(fā)揮對相關(guān)專業(yè)課程體系中前導(dǎo)知識能力及第二課堂實踐教學(xué)活動的依賴程度,發(fā)現(xiàn)存在的短板問題,以便從整個專業(yè)實踐教學(xué)人才培養(yǎng)方案中予以調(diào)整。
第二類表是學(xué)生對基于案例的數(shù)字IC 設(shè)計課程回應(yīng)的評估問卷信息,見表2。意在了解對基于案例式的實踐教學(xué)設(shè)計的喜歡程度;學(xué)生對課程實際學(xué)習(xí)成果是否達(dá)到預(yù)期教學(xué)目標(biāo);這種學(xué)習(xí)Verilog HDL 的方法是否比抽象學(xué)習(xí)更見成效;教學(xué)設(shè)計的講座部分所起作用是否達(dá)到預(yù)期設(shè)計效果;教學(xué)設(shè)計中的案例代表性和數(shù)量是否與課程匹配;講座和實驗同步組合的教學(xué)設(shè)計較非同步方式是否更佳;該教學(xué)設(shè)計是否值得在其他工程類課程中推廣等。
Verilog HDL 語言的抽象性質(zhì)對熟悉傳統(tǒng)原理圖輸入法設(shè)計流程的學(xué)生來說是很大的挑戰(zhàn)?;谥黝}講座和實驗案例組合式實驗教學(xué)設(shè)計的實施方法,在推進(jìn)學(xué)生學(xué)習(xí)效果的同時,持續(xù)提高了學(xué)生對更具復(fù)雜性案例項目的設(shè)計開發(fā)能力。希望這種實踐教學(xué)方法可以幫助到其他具有與數(shù)字IC 設(shè)計課程相同特點的工程類課程。
表2 學(xué)生對主題-案例組合式的數(shù)字IC 設(shè)計課程的回饋信息調(diào)查