肖 杰,李 強(qiáng),龍勝春,胡海根,盧書芳
(浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與計(jì)算學(xué)院,浙江 杭州 310023)
數(shù)字電路與數(shù)字邏輯課程是計(jì)算機(jī)科學(xué)、計(jì)算機(jī)+自動化等專業(yè)本科生在硬件技術(shù)方面的專業(yè)基礎(chǔ)必修課。通過該課程的學(xué)習(xí),學(xué)生能夠獲得數(shù)字電路與數(shù)字邏輯方面的基本理論、基本知識和基本技能,理解數(shù)字電路的工作原理及應(yīng)用,掌握數(shù)字電路的分析與設(shè)計(jì)方法,為后續(xù)相關(guān)課程的學(xué)習(xí)奠定基礎(chǔ)。在物聯(lián)網(wǎng)發(fā)展大背景以及教育工程專業(yè)認(rèn)證的大環(huán)境下,社會發(fā)展對學(xué)生提出了更高的要求,要求學(xué)生能夠根據(jù)特定需求對復(fù)雜計(jì)算機(jī)系統(tǒng)的子模塊或子單元進(jìn)行軟硬件設(shè)計(jì)和實(shí)現(xiàn),理解計(jì)算機(jī)系統(tǒng)工程化管理的概念與方法[1-2]。
然而,當(dāng)前的教學(xué)實(shí)踐主要通過設(shè)計(jì)一定的課內(nèi)實(shí)驗(yàn),使學(xué)生掌握常用電子儀器的使用方法和常用中大規(guī)模集成電路的裝配方法,加深學(xué)生對數(shù)字電路與數(shù)字邏輯有關(guān)理論的理解,以此培養(yǎng)學(xué)生分析設(shè)計(jì)和解決實(shí)際問題的能力[3]。這些設(shè)計(jì)實(shí)驗(yàn)不具備復(fù)雜工程問題背景,學(xué)生難以在設(shè)計(jì)過程中體會相應(yīng)的思想和方法以及提升足夠的創(chuàng)新意識,也沒有融入社會、健康、安全、法律、文化、環(huán)境等因素的考量,而這些因素是當(dāng)前計(jì)算機(jī)專業(yè)學(xué)生需要進(jìn)一步提升的素養(yǎng),也是當(dāng)前學(xué)生創(chuàng)業(yè)、創(chuàng)新實(shí)踐中所需的內(nèi)容[4]。
我們在實(shí)際教學(xué)過程中還發(fā)現(xiàn),計(jì)算機(jī)專業(yè)學(xué)生往往表現(xiàn)出更加擅長軟件編程,在硬件方面則較為薄弱,具體表現(xiàn)為對硬件缺少了解或者缺少興趣。目前采用VHDL語言開展邏輯電路設(shè)計(jì)的實(shí)踐性教學(xué),對計(jì)算機(jī)專業(yè)學(xué)生來說還是較為困難,主要在于缺少相應(yīng)課程的支撐從而造成學(xué)生缺乏EDA編程基礎(chǔ),難以在短期內(nèi)快速掌握VHDL語言。因此,在實(shí)驗(yàn)教學(xué)過程中,利用類C的Verilog HDL語言,結(jié)合學(xué)生擅長軟件編程的基礎(chǔ),通過融入數(shù)字邏輯電路知識的學(xué)習(xí)與實(shí)踐,便可較好地在復(fù)雜工程綜合設(shè)計(jì)與運(yùn)用方面鍛煉學(xué)生的能力。
一般來說,數(shù)字電路與數(shù)字邏輯課程計(jì)劃學(xué)時數(shù)為64學(xué)時,其中授課56學(xué)時,實(shí)驗(yàn)8學(xué)時。該課程的課內(nèi)實(shí)驗(yàn)8學(xué)時只局限于基本數(shù)字邏輯電路知識的練習(xí),定位于基本電路的練習(xí)和掌握,見表1。顯然,這還不足以支撐該課程教學(xué)內(nèi)容以達(dá)成其教學(xué)目標(biāo)。
表1 數(shù)字電路與數(shù)字邏輯課程課內(nèi)實(shí)驗(yàn)安排
為了進(jìn)一步提高學(xué)生的實(shí)踐動手能力,特別是學(xué)習(xí)現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)方法,開展共計(jì)20個學(xué)時的數(shù)字邏輯電路課程設(shè)計(jì)實(shí)驗(yàn)課程是有必要的。該課程最初采用VHDL語言,然而從近幾年計(jì)算機(jī)專業(yè)學(xué)生的實(shí)驗(yàn)效果來看,教學(xué)效果并不理想。主要原因有兩點(diǎn):①VHDL較為復(fù)雜,計(jì)算機(jī)專業(yè)學(xué)生沒有EDA編程基礎(chǔ),難以靈活運(yùn)用該工具語言進(jìn)行電路設(shè)計(jì),實(shí)踐中大都采取“依葫蘆畫瓢”的方式,缺乏主動思考和分析,不利于充分發(fā)揮學(xué)生的主觀能動性;②當(dāng)前工程領(lǐng)域中,較多企業(yè)采用Verilog HDL進(jìn)行電路設(shè)計(jì)[5]。
針對計(jì)算機(jī)專業(yè)的特點(diǎn)與現(xiàn)狀,該課程初步安排了4個理論學(xué)時和16個實(shí)驗(yàn)學(xué)時進(jìn)行展開,同時還要求學(xué)生自主安排相應(yīng)的課外自學(xué)課時。
理論教學(xué)的安排見表2。首先講授FPGA結(jié)構(gòu)和原理,有利于學(xué)生快速熟悉數(shù)字邏輯電路的設(shè)計(jì)與實(shí)驗(yàn)平臺;其次講授Verilog HDL語言,便于計(jì)算機(jī)專業(yè)學(xué)生快速掌握這一門類C的硬件設(shè)計(jì)語言;最后借助一個簡單的數(shù)字系統(tǒng)設(shè)計(jì)方法的演示案例,使學(xué)生初步掌握電路的基本設(shè)計(jì)方法與技巧。
表2 數(shù)字邏輯電路課程設(shè)計(jì)理論教學(xué)安排
理論教學(xué)完成后,再安排“2必做+1自選”的實(shí)驗(yàn)操作與設(shè)計(jì)內(nèi)容。需要說明的是,必選題目側(cè)重于學(xué)生掌握基本知識和熟悉操作;自選題目則充分參照公司項(xiàng)目的操作流程,需要學(xué)生組隊(duì)完成市場調(diào)研、分析設(shè)計(jì)、確定開發(fā)工具、項(xiàng)目實(shí)現(xiàn)、評估優(yōu)化、開發(fā)說明書等環(huán)節(jié),最終通過項(xiàng)目演示與答辯的形式通過驗(yàn)收評價。
實(shí)驗(yàn)課題的安排見表3。
表3 數(shù)字邏輯電路課程設(shè)計(jì)實(shí)驗(yàn)操作安排
1.2.1 必做課題1:12進(jìn)制計(jì)數(shù)器
實(shí)驗(yàn)要求:基于原理圖設(shè)計(jì)12進(jìn)制計(jì)數(shù)器,原理框圖如圖1所示,狀態(tài)轉(zhuǎn)換圖如圖2所示。計(jì)數(shù)脈沖由實(shí)驗(yàn)板上的按鍵產(chǎn)生,計(jì)數(shù)值通過LED數(shù)碼管顯示,由EDA軟件自帶元件庫提供的74192(十進(jìn)制加減計(jì)數(shù)器)和7447(共陽7段LED顯示譯碼器)元件構(gòu)成。
1.2.2 必做課題2:4位數(shù)字頻率計(jì)
實(shí)驗(yàn)要求:①分別采用自頂向下與自底向上的設(shè)計(jì)方法進(jìn)行設(shè)計(jì)。頂層設(shè)計(jì)可采用原理圖,也可采用Verilog HDL語言描述,底層模塊均通過Verilog HDL語言描述;②系統(tǒng)的輸入標(biāo)準(zhǔn)時鐘信號頻率為1MHz,可測量的頻率范圍為1~9 999 Hz;③系統(tǒng)具有復(fù)位信號且有溢出指示,計(jì)數(shù)頻率通過4位共陰數(shù)碼管顯示。
1.2.3 自選課題3
學(xué)生可自由選擇3個題目中的1個進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。自選題目的整個實(shí)驗(yàn)過程參照實(shí)際工程項(xiàng)目的實(shí)施流程來實(shí)施。首先,學(xué)生進(jìn)行自由組隊(duì),2~3人/組,其中,1~2人負(fù)責(zé)市場調(diào)研(以確定擬采用的元器件型號)、電路結(jié)構(gòu)設(shè)計(jì)、產(chǎn)品測試等,1人負(fù)責(zé)模塊代碼設(shè)計(jì);其次,根據(jù)市場調(diào)研結(jié)果,確定所采用的元器件具有較小的成本,并確定所設(shè)計(jì)的電路結(jié)構(gòu)具有較高的可靠性以及較強(qiáng)的可操作性,然后開展項(xiàng)目任務(wù)的設(shè)計(jì)、開發(fā)與測試;最后,完成報(bào)告的撰寫以及答辯材料的準(zhǔn)備,并進(jìn)行答辯,需要注意的是內(nèi)容上要求完整,包括項(xiàng)目設(shè)計(jì)目的、結(jié)合調(diào)研結(jié)果的總體方案設(shè)計(jì)(設(shè)計(jì)要求、方案論證與選擇、設(shè)計(jì)思路及原理)、單元模塊設(shè)計(jì)、頂層設(shè)計(jì)、系統(tǒng)功能仿真及調(diào)試、總結(jié)與體會、參考文獻(xiàn)、源代碼等。
圖1 12進(jìn)制計(jì)數(shù)器原理框圖
圖2 12進(jìn)制計(jì)數(shù)器狀態(tài)轉(zhuǎn)換圖
(1)自選題1:出租車計(jì)費(fèi)器的設(shè)計(jì)與實(shí)現(xiàn)。要求實(shí)現(xiàn)如下功能:①實(shí)現(xiàn)計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn):按行駛里程計(jì)費(fèi),起步價為7.0元,并在行駛3 km后按2元/km計(jì)費(fèi),當(dāng)計(jì)費(fèi)器達(dá)到或超過20元時,每km加收50%的車費(fèi),車停不計(jì)費(fèi);②現(xiàn)場模擬功能:以開關(guān)按鍵模擬km計(jì)數(shù),能模擬汽車啟動、停止、暫停等狀態(tài);③將車費(fèi)和路程分別以10進(jìn)制形式顯示出來。
(2)自選題2:智力搶答器的設(shè)計(jì)與實(shí)現(xiàn)。要求實(shí)現(xiàn)如下功能:①實(shí)現(xiàn)5人搶答器,一旦有人搶答成功,其他人則搶答無效;②在數(shù)碼管上顯示搶答成功者的序號;③搶答成功后開始20 s的答題倒計(jì)時,當(dāng)?shù)褂?jì)時結(jié)束,通過蜂鳴器響1 s提示回答問題時間到,并開始新一輪搶答,且數(shù)碼管要顯示倒計(jì)時開始所剩時間;④主持人可通過按鍵清除所有信息。
如圖3所示,經(jīng)過多次試驗(yàn)發(fā)現(xiàn),該打磨機(jī)器人從端口最低點(diǎn)出發(fā),在沿端口周向轉(zhuǎn)動進(jìn)行打磨的過程中會發(fā)生打滑失效,尤其在的轉(zhuǎn)角范圍內(nèi)明顯存在一個打滑失效區(qū)。發(fā)生打滑失效的原因是壓緊力過小,也就是說,施加的預(yù)緊力在垂直方向的分力小于摩擦力和重力在該方向的合力,機(jī)器人在慣性的作用下發(fā)生打滑失效,這說明機(jī)器人發(fā)生打滑失效與預(yù)緊力、摩擦力及其自身重力等因素有關(guān)。
(3)自選題3:數(shù)字鬧鐘的設(shè)計(jì)與實(shí)現(xiàn)。要求實(shí)現(xiàn)如下功能:①具有基本的計(jì)時功能;②鬧鐘時間可調(diào);③鬧鐘時間到通過蜂鳴器響30 s,中途可以通過按鍵停止;④若無外界干預(yù),鬧鐘每隔3 min響一次,直至15 min后結(jié)束。
答辯過程主要由學(xué)生PPT展示和教師問答環(huán)節(jié)構(gòu)成,使用分組答辯,每組2位老師,再根據(jù)實(shí)際情況邀請校外專家。首先,學(xué)生進(jìn)行系統(tǒng)演示;其次,學(xué)生展示PPT進(jìn)行答辯;最后,教師點(diǎn)評。
學(xué)生成績由以下幾部分構(gòu)成:功能實(shí)現(xiàn)(包括測試)占比50%,可靠性評價[6]占比10%,代碼質(zhì)量評價占比10%,成本開銷占比10%,報(bào)告完整性占比10%,回答問題占比10%。
從實(shí)驗(yàn)過程及結(jié)果的反饋來看,針對FPGA結(jié)構(gòu)和原理、數(shù)字系統(tǒng)的設(shè)計(jì)方法這兩部分內(nèi)容,絕大部分學(xué)生能較好掌握,對于Verilog HDL語言基礎(chǔ)的掌握情況則相對較差。一方面,前面兩項(xiàng)內(nèi)容相對簡單且學(xué)生有較好的程序設(shè)計(jì)基礎(chǔ),掌握起來相對容易;另一方面,學(xué)生平常接觸更多的是串行化的程序設(shè)計(jì)風(fēng)格,對Verilog HDL的并行化程序設(shè)計(jì)風(fēng)格還不太熟悉,因此實(shí)踐過程中較容易犯錯。
實(shí)驗(yàn)1的目的是讓學(xué)生通過簡單設(shè)計(jì)實(shí)例熟練掌握Quartus II的基本操作,包括設(shè)計(jì)輸入、編譯、仿真、管腳鎖定與下載,并熟悉DE2實(shí)驗(yàn)板。實(shí)驗(yàn)結(jié)果顯示,學(xué)生均能通過基于原理圖方法實(shí)現(xiàn)對12進(jìn)制計(jì)數(shù)器的設(shè)計(jì)與仿真。
實(shí)驗(yàn)3的目的是讓學(xué)生將Verilog HDL編程與實(shí)際工程結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干方法,進(jìn)一步提高上機(jī)動手能力,培養(yǎng)使用設(shè)計(jì)綜合電路的能力和規(guī)范編程的思想,養(yǎng)成提供文檔資料的習(xí)慣。通過這個實(shí)驗(yàn),學(xué)生可以進(jìn)一步理解觸發(fā)器、計(jì)數(shù)器、鎖存器等的工作原理,掌握利用Verilog HDL行為描述綜合數(shù)字系統(tǒng)的基本方法。盡管在5 h的時間內(nèi),沒有學(xué)生能完全正確地完成這個實(shí)驗(yàn)的設(shè)計(jì)與仿真,但他們在課外的幾個星期里仍然探討并最終基本完成了這個實(shí)驗(yàn)。雖然學(xué)生未能充分結(jié)合市場調(diào)研結(jié)果設(shè)計(jì)出一個低成本、高可靠性的產(chǎn)品,但是培養(yǎng)了把控產(chǎn)品成本與可靠性的意識、設(shè)計(jì)綜合電路的能力及團(tuán)隊(duì)協(xié)作精神。
總之,這些實(shí)驗(yàn)課題的設(shè)計(jì)在安排上是從基礎(chǔ)逐漸過渡到擴(kuò)展提高的能力要求。通過設(shè)計(jì)12進(jìn)制計(jì)數(shù)器,學(xué)生可以進(jìn)一步鞏固和加深對相關(guān)課程基本理論和概念,提高綜合運(yùn)用所學(xué)知識的能力;而4位數(shù)字頻率計(jì)能使學(xué)生掌握自底向上和自頂向下的設(shè)計(jì)方法,充分感受這兩種設(shè)計(jì)方法的特點(diǎn)。設(shè)置一些有趣的自選課題,能調(diào)動學(xué)生的積極性,促使學(xué)生進(jìn)行獨(dú)立分析,最終實(shí)現(xiàn)這些具有一定工程復(fù)雜性的設(shè)計(jì)課題,培養(yǎng)學(xué)生綜合設(shè)計(jì)和實(shí)踐創(chuàng)新的能力,并在此過程中培養(yǎng)團(tuán)隊(duì)合作能力,初步了解工程項(xiàng)目開發(fā)實(shí)踐流程。
為了更好地了解本課程設(shè)計(jì)實(shí)驗(yàn)教學(xué)的效果,我們在開課前后分別設(shè)計(jì)了一套匿名問卷并在學(xué)生中進(jìn)行調(diào)研。結(jié)果顯示,大部分學(xué)生還是對硬件感興趣的,如在開課之前雖然幾乎所有學(xué)生沒有接觸過VHDL這樣的硬件開發(fā)設(shè)計(jì)語言,但是仍有35%的學(xué)生對硬件開發(fā)感興趣,并且認(rèn)為學(xué)習(xí)VHDL或者Verilog HDL今后會有用。然而,受限于數(shù)字邏輯電路理論課的學(xué)習(xí),高達(dá)80%的學(xué)生認(rèn)為自己只會基于原理圖完成簡單電路的設(shè)計(jì),無法獨(dú)立完成更復(fù)雜的電路設(shè)計(jì)或者對電路進(jìn)行功能與時序測試。
通過本課程設(shè)計(jì)的學(xué)習(xí),90%的學(xué)生對硬件開發(fā)感興趣;83%的學(xué)生認(rèn)為有必要多開設(shè)一些硬件相關(guān)的工程實(shí)踐類實(shí)驗(yàn)課程;78%的學(xué)生認(rèn)為實(shí)驗(yàn)課題設(shè)置合理,通過查閱資料并結(jié)合教師課堂所講授知識可以完成實(shí)驗(yàn)。某組學(xué)生自選課題的部分實(shí)驗(yàn)結(jié)果展示如圖3所示。此外,也有20%左右的學(xué)生認(rèn)為需要教師更詳細(xì)地講解并提供更多的相關(guān)資料;還有10%左右的學(xué)生反映對自選課題毫無頭緒,不知從何著手。
圖3 某組學(xué)生自選課題部分實(shí)驗(yàn)結(jié)果展示
針對學(xué)生反映的問題,我們采取了如下措施幫助學(xué)生順利完成課題設(shè)計(jì)任務(wù):①利用教師與學(xué)生的業(yè)余時間額外開設(shè)了4學(xué)時的理論教學(xué)課程,供需要的學(xué)生自愿聽課;②通過開通即時聊天的群聊與單聊模式、公布移動電話號碼等方式,方便教師隨時隨地為學(xué)生答疑。從實(shí)際效果來看,相比第①種方式,第②種方式明顯更優(yōu)。
在數(shù)字邏輯電路課程設(shè)計(jì)的實(shí)驗(yàn)教學(xué)改革過程中,我們采用Verilog HDL開展設(shè)計(jì)性實(shí)驗(yàn),并設(shè)計(jì)“2必做+1自選”逐層遞進(jìn)實(shí)驗(yàn)課題的實(shí)踐,使學(xué)生理解數(shù)字電路的工作原理及應(yīng)用,掌握數(shù)字系統(tǒng)的基本設(shè)計(jì)流程與方法,熟悉復(fù)雜電子系統(tǒng)的相關(guān)技術(shù)標(biāo)準(zhǔn)、知識產(chǎn)權(quán)、產(chǎn)業(yè)政策和法律法規(guī);此外,通過產(chǎn)品的可靠性分析與成本測算,培養(yǎng)學(xué)生的產(chǎn)品質(zhì)量與成本控制意識。自選題采用團(tuán)隊(duì)方式開展,以項(xiàng)目答辯的方式進(jìn)行考核,充分鍛煉學(xué)生的團(tuán)隊(duì)協(xié)作和綜合設(shè)計(jì)開發(fā)能力。從實(shí)驗(yàn)效果來看,針對計(jì)算機(jī)專業(yè)學(xué)生的該項(xiàng)實(shí)驗(yàn)教學(xué)改革是有效的,但是實(shí)驗(yàn)過程中也暴露出一些不足,如學(xué)生還難以熟練運(yùn)用Verilog HDL進(jìn)行復(fù)雜電路設(shè)計(jì),未能揚(yáng)長避短設(shè)計(jì)出更為合理的實(shí)驗(yàn)課題以適應(yīng)當(dāng)前計(jì)算機(jī)行業(yè)的發(fā)展需求等,這也促使我們在今后的實(shí)踐教學(xué)中進(jìn)一步探索,不斷深入和完善。
[1] 中華人民共和國教育部. 工程教育專業(yè)認(rèn)證標(biāo)準(zhǔn)(試行)[EB/OL]. [2017-12-30]. http://www.moe.edu.cn/s78/A08/gjs_left/moe_742/s5638/s3861/201110/t20111008_125419.html.
[2] 趙宏, 王愷. 我國大學(xué)計(jì)算機(jī)課程現(xiàn)狀及改革探索[J]. 中國大學(xué)教育, 2015(2): 50-54.
[3] 龍勝春, 孫惠英, 肖杰. 電路與電子技術(shù)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)[M]. 北京: 清華大學(xué)出版社, 2015: 1-59.
[4] Palnitkar S. Verilog HDL: A guide to digital design and synthesis[M]. 2nd ed. New Jersey: Prentice Hall Press, 2003: 226-237.
[5] Ciletti M D. Verilog HDL高級數(shù)字設(shè)計(jì)[M]. 2版. 北京:電子工業(yè)出版社, 2014: 1-4.
[6] Xiao J, Lee W, Jiang J, et al. Circuit reliability estimation based on an iterative PTM model with hybrid coding[J]. Microelectronics Journal, 2016, 52(4): 117-123.