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