鄧小鶯 陳全威 鄭能恒


摘要:“數(shù)字電路設(shè)計(jì)”是本科電子信息類對(duì)邏輯分析和動(dòng)手實(shí)踐能力要求較高的工科實(shí)訓(xùn)課程。現(xiàn)有的教學(xué)方式無(wú)論從吸引力或者學(xué)生接受程度而言,均不能獲得令人滿意的結(jié)果。大部分學(xué)生普遍存在“重代碼輕電路”的思想觀念,缺少進(jìn)一步學(xué)習(xí)的熱情和動(dòng)力,造成新一代合格實(shí)踐性人才的培養(yǎng)不足和嚴(yán)重流失。因此,一種“先電路后代碼”、“口袋實(shí)驗(yàn)室”和“課后項(xiàng)目”有機(jī)結(jié)合的教學(xué)方法被提出。學(xué)生不僅能理解數(shù)字電路和數(shù)字系統(tǒng)的設(shè)計(jì)技巧,而且提高自主實(shí)驗(yàn)、解決問(wèn)題的能力,這有效地促進(jìn)了“數(shù)字系統(tǒng)設(shè)計(jì)”的教學(xué)改革。
關(guān)鍵詞: 數(shù)字電路設(shè)計(jì); 數(shù)字邏輯電路; 教學(xué)改革;“口袋實(shí)驗(yàn)室”;FPGA
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)21-0130-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1? 引 言
“數(shù)字系統(tǒng)設(shè)計(jì)”作為電子信息類的一門(mén)工科實(shí)訓(xùn)課程,向前鞏固“數(shù)字電子計(jì)數(shù)基礎(chǔ)”并加以實(shí)踐,向后為選讀“數(shù)字集成電路設(shè)計(jì)”和“現(xiàn)場(chǎng)集成電路技術(shù)”儲(chǔ)備豐富的邏輯電路基礎(chǔ),其研讀質(zhì)量直接影響到數(shù)字集成電路或電路架構(gòu)等高層次領(lǐng)域人才的培養(yǎng)。數(shù)字集成電路領(lǐng)域一直是我國(guó)科技領(lǐng)域的短板,人才缺口巨大,學(xué)校、研究所等機(jī)構(gòu)培養(yǎng)出來(lái)的實(shí)用型人才供不應(yīng)求[1-2]。“數(shù)字系統(tǒng)設(shè)計(jì)”充當(dāng)“跳板”角色,其教學(xué)風(fēng)格需要具備吸引力,匯聚更多學(xué)子前來(lái)研讀。然而現(xiàn)有的課程內(nèi)容和模式不能達(dá)成上述目的,很難培養(yǎng)出能夠自主解決問(wèn)題的實(shí)踐型人才,使得選讀學(xué)生數(shù)量越來(lái)越少,或者僅僅使得已選讀學(xué)生“為學(xué)分為績(jī)點(diǎn)上課”,如此一來(lái)造成了嚴(yán)重的人才流失[3]。如何改革課程內(nèi)容和教學(xué)方法以培養(yǎng)合格的數(shù)字系統(tǒng)相關(guān)的實(shí)踐型人才,不僅僅與高校的課程教學(xué)質(zhì)量息息相關(guān),而且對(duì)相關(guān)產(chǎn)業(yè)發(fā)展前景具有很強(qiáng)的現(xiàn)實(shí)意義。
2? 現(xiàn)有教學(xué)模式存在的問(wèn)題
“數(shù)字系統(tǒng)設(shè)計(jì)”課程所涉及的領(lǐng)域之多,教學(xué)內(nèi)容相當(dāng)豐富,實(shí)踐方式數(shù)不勝數(shù),但是這些繁多而未系統(tǒng)化的信息會(huì)讓教師失去教學(xué)重心。以下問(wèn)題是現(xiàn)有教學(xué)模式的通病:(1)Verilog HDL或VHDL等硬件描述語(yǔ)言是這門(mén)課最常用的兩門(mén)語(yǔ)言,許多教學(xué)模式僅僅對(duì)硬件描述語(yǔ)言的語(yǔ)法進(jìn)行講解,卻沒(méi)有教授其本質(zhì)電路,讓學(xué)生誤以為“數(shù)字系統(tǒng)設(shè)計(jì)”其實(shí)就是學(xué)習(xí)一門(mén)與C語(yǔ)言類似的Verilog HDL,丟失了最基本的電路設(shè)計(jì)知識(shí),與之前研讀的“數(shù)字電子計(jì)數(shù)基礎(chǔ)”割裂,出現(xiàn)斷層[4]。學(xué)生即使使用Verilog HDL實(shí)現(xiàn)了預(yù)定功能,對(duì)其描述的邏輯電路也非常模糊。(2)研讀“數(shù)字系統(tǒng)設(shè)計(jì)”的時(shí)間恰好就在學(xué)生課程最繁重的學(xué)期,加上理論學(xué)習(xí)和實(shí)踐過(guò)程分離,即理論分析和實(shí)驗(yàn)指導(dǎo)分開(kāi)授課,這導(dǎo)致學(xué)生不僅疲于兩者的銜接,并且不能向指導(dǎo)老師及時(shí)反饋,以便做出適當(dāng)?shù)恼{(diào)整[5]。認(rèn)真研讀的興趣和熱情會(huì)因?yàn)椤皟H能在課室學(xué)理論”和“僅能在實(shí)驗(yàn)室做實(shí)驗(yàn)”消退。(3)學(xué)生所接受的理論知識(shí)或者所實(shí)踐的課程實(shí)驗(yàn)尚未能“落地”,未能及時(shí)應(yīng)用在具有實(shí)際意義的項(xiàng)目中。這會(huì)導(dǎo)致一個(gè)嚴(yán)重的教學(xué)弊病,即學(xué)生僅僅在課堂上或者某個(gè)學(xué)期修讀“數(shù)字系統(tǒng)設(shè)計(jì)”,深入學(xué)習(xí)研究和探索的熱情未能持久[6]。通過(guò)課程考核后,不少學(xué)生直接進(jìn)入“空白期”或者“遺忘期”,甚至從那以后絲毫不接觸數(shù)字系統(tǒng)的知識(shí)。除此之外,現(xiàn)有的教學(xué)模式缺少課后時(shí)間的方向引導(dǎo)和適當(dāng)監(jiān)督,導(dǎo)致學(xué)生未能參與相對(duì)應(yīng)的實(shí)際項(xiàng)目或比賽等必要環(huán)節(jié)。
對(duì)此,筆者所在的教學(xué)團(tuán)隊(duì)采用了理論、實(shí)驗(yàn)、項(xiàng)目三者環(huán)環(huán)相扣的教學(xué)模式。在理論課堂中,對(duì)學(xué)生必須重點(diǎn)強(qiáng)調(diào)“數(shù)字邏輯電路設(shè)計(jì)”的重要性,堅(jiān)持“以電路設(shè)計(jì)為主,以代碼描述為輔”,讓學(xué)生認(rèn)識(shí)到本課程的核心知識(shí);在實(shí)驗(yàn)環(huán)節(jié),采用“口袋實(shí)驗(yàn)室”教學(xué)法,即讓學(xué)生攜帶小型FPGA開(kāi)發(fā)板,個(gè)人電腦中安裝開(kāi)發(fā)環(huán)境。如此,學(xué)生不僅可以在實(shí)驗(yàn)室、宿舍等地方學(xué)習(xí)ISE、VIVADO等開(kāi)發(fā)工具,而且能夠隨時(shí)隨地驗(yàn)證所設(shè)計(jì)的電路設(shè)想。在課后項(xiàng)目中,組織、鼓勵(lì)學(xué)生早進(jìn)實(shí)驗(yàn)室,早接觸應(yīng)用型的項(xiàng)目,培養(yǎng)更加自主研究、解決問(wèn)題的能力。
3 教學(xué)方法
3.1 “先電路后代碼”的理論教學(xué)模式
由于大部分學(xué)生學(xué)習(xí)“數(shù)字系統(tǒng)設(shè)計(jì)”之前,已經(jīng)選學(xué)了C或者C++等代碼語(yǔ)言,但是C語(yǔ)言與Verilog HDL語(yǔ)言存在本質(zhì)上的差異。前者的設(shè)計(jì)與CPU的指令集架構(gòu)和串行性相關(guān),后者卻是邏輯電路的一種簡(jiǎn)便的描述方法。在一些傳統(tǒng)的教學(xué)風(fēng)格沿襲下,選讀本課程的學(xué)生普遍存在一種先入為主的觀念,即“這門(mén)課的內(nèi)容和C語(yǔ)言課程類似,重點(diǎn)在于語(yǔ)法學(xué)習(xí)”。這種觀念是片面的,帶有很強(qiáng)的誤導(dǎo)性,學(xué)生稍不留神就會(huì)誤入歧途。對(duì)此,首先需要對(duì)學(xué)生強(qiáng)調(diào)“數(shù)字系統(tǒng)設(shè)計(jì)”是“數(shù)字電子計(jì)數(shù)基礎(chǔ)”的集成和進(jìn)階,如何設(shè)計(jì)一個(gè)合理的數(shù)字邏輯電路是極其重要,Verilog HDL或VHDL等硬件描述語(yǔ)言僅作為一個(gè)輔助的工具,幫助更簡(jiǎn)單地描述所設(shè)計(jì)的電路。
讓學(xué)生把重心轉(zhuǎn)移到電路設(shè)計(jì)以及技巧積累需要循序漸進(jìn)、慢步指引。首先應(yīng)當(dāng)鞏固學(xué)生的數(shù)字電路基礎(chǔ),如熟練使用真值表、邏輯表達(dá)式和卡諾圖,掌握基本邏輯模塊包括加法器、編碼器、選擇器等組合邏輯電路和狀態(tài)機(jī)等時(shí)序邏輯電路[7]。沒(méi)有如此的積淀,學(xué)生不可能設(shè)計(jì)出合理的數(shù)字系統(tǒng),因?yàn)閿?shù)字系統(tǒng)其實(shí)就是將基本模塊連接集成,實(shí)現(xiàn)特定功能。離開(kāi)了電路基礎(chǔ),直接教授Verilog等語(yǔ)言,會(huì)使得學(xué)生摸索不到重點(diǎn)知識(shí)。一種比較有效且值得推廣的教學(xué)方式是由原理圖向硬件描述語(yǔ)言過(guò)渡。大部分學(xué)生在“數(shù)字電子計(jì)數(shù)基礎(chǔ)”實(shí)驗(yàn)課上,使用過(guò)面包板、分立芯片實(shí)現(xiàn)過(guò)計(jì)數(shù)器、譯碼器等簡(jiǎn)單模塊。為了讓學(xué)生自然地過(guò)渡到本課程實(shí)驗(yàn),筆者讓學(xué)生熟悉ISE開(kāi)發(fā)工具的原理圖輸入方式,即將先前的數(shù)字電路實(shí)驗(yàn)搬移到PC端,熟悉ISE 軟件原理圖輸入、仿真流程。在這個(gè)過(guò)程中,筆者發(fā)現(xiàn)可以先避開(kāi)Verilog HDL等語(yǔ)法的教學(xué),學(xué)生可以更好地理解和接受。接下來(lái),可以布置一些相對(duì)復(fù)雜的模塊,但需要使用原理圖實(shí)現(xiàn),如多位寬計(jì)數(shù)器,讓學(xué)生體會(huì)到原理圖方式輸入電路的煩瑣性。此時(shí)再引入Verilog HDL簡(jiǎn)化電路的輸入方式,可謂水到渠成,也讓學(xué)生認(rèn)識(shí)到,先設(shè)計(jì)電路,再描述輸入。反過(guò)來(lái),學(xué)生也知道自己所寫(xiě)的代碼在硬件底層代表著什么電路。
3.2 數(shù)字系統(tǒng)設(shè)計(jì)方法
大部分學(xué)生能夠相對(duì)較好理解單一的數(shù)字電路模塊,但是對(duì)于比較復(fù)雜的數(shù)字系統(tǒng)卻無(wú)從下手,對(duì)于系統(tǒng)框架設(shè)計(jì)和子模塊的應(yīng)用與互聯(lián)感到無(wú)力。如何利用簡(jiǎn)單模塊搭建一個(gè)能實(shí)現(xiàn)特定功能的系統(tǒng),不僅需要扎實(shí)的數(shù)字電路基礎(chǔ),還要有設(shè)計(jì)系統(tǒng)的技巧和經(jīng)驗(yàn)。
筆者團(tuán)隊(duì)著重兩點(diǎn),一是從功能簡(jiǎn)單的、學(xué)生普遍掌握的基礎(chǔ)模塊開(kāi)始,添加若干個(gè)邏輯器件,能夠?qū)崿F(xiàn)功能豐富的、較為復(fù)雜的應(yīng)用模塊。例如,簡(jiǎn)單的計(jì)數(shù)器由加法器和D觸發(fā)器構(gòu)成,在D觸發(fā)器的D端加入選擇器為主的組合邏輯,就可以實(shí)現(xiàn)擁有向上計(jì)數(shù)、向下計(jì)數(shù)、暫停、置位、清零等等功能的秒表,其邏輯電路和Verilog HDL描述如圖1所示。另一個(gè)是模塊信號(hào)互連的技巧,不同的子模塊當(dāng)中經(jīng)常會(huì)出現(xiàn)互連信號(hào)的時(shí)序不匹配,需要對(duì)這些信號(hào)做調(diào)整。常用的轉(zhuǎn)換電路有上升、下降邊沿檢測(cè),電平與脈沖之間的轉(zhuǎn)換等等,如圖2所示。
3.3 “口袋實(shí)驗(yàn)室”與 “課后項(xiàng)目”鞏固法
在“數(shù)字系統(tǒng)設(shè)計(jì)”這門(mén)工訓(xùn)課程中,理論分析是必備基礎(chǔ),實(shí)驗(yàn)實(shí)踐更是重中之重。教師在授課過(guò)程只是進(jìn)行邏輯設(shè)計(jì),學(xué)生容易感到枯燥和抽象。課程的最終目的是讓學(xué)生自主設(shè)計(jì)并實(shí)現(xiàn)驗(yàn)證數(shù)字系統(tǒng),所以充足的實(shí)驗(yàn)時(shí)間對(duì)于學(xué)生是必不可少的。回到本課程的教學(xué)立足點(diǎn),注重?cái)?shù)字邏輯的設(shè)計(jì)與實(shí)現(xiàn),而后序的時(shí)序分析尚未提及,所以大部分實(shí)驗(yàn)可以通過(guò)小型的FPGA開(kāi)發(fā)板以及其配套的開(kāi)發(fā)環(huán)境完成。筆者讓學(xué)生借用實(shí)驗(yàn)室中的Xilinx Basys3開(kāi)發(fā)板,并在個(gè)人電腦中安裝VIVADO等開(kāi)發(fā)環(huán)境,讓學(xué)生不必局限于實(shí)驗(yàn)室,可以隨時(shí)隨地設(shè)計(jì)、驗(yàn)證自己設(shè)計(jì)的電路 [8]。因?yàn)锽asys3開(kāi)發(fā)板足夠小型便攜,甚至可以放在口袋里,所以也稱為“口袋實(shí)驗(yàn)室”。
為了進(jìn)一步培養(yǎng)學(xué)生對(duì)“數(shù)字電路設(shè)計(jì)”的課程興趣以及加強(qiáng)自主解決問(wèn)題的能力,筆者積極組織學(xué)生參與課后線上和線下技術(shù)交流,做到“有困難必深究”,多接觸和積累其他數(shù)字系統(tǒng)的設(shè)計(jì)技巧。除此之外,發(fā)布一些有挑戰(zhàn)性的課后實(shí)驗(yàn),如秒表、VGA電子相冊(cè)等。不僅讓學(xué)生將理論知識(shí)驗(yàn)證在實(shí)踐當(dāng)中,而且與自身生活息息相關(guān)。
4 結(jié)束語(yǔ)
筆者團(tuán)隊(duì)提出的“數(shù)字系統(tǒng)設(shè)計(jì)”教學(xué)方法,引導(dǎo)學(xué)生注重課程的真正核心,真正掌握數(shù)字電路與數(shù)字系統(tǒng)設(shè)計(jì)的方法。理論分析離不開(kāi)實(shí)驗(yàn)實(shí)踐,“口袋實(shí)驗(yàn)室”和“課后項(xiàng)目”能夠幫助學(xué)生自主動(dòng)手實(shí)踐、解決問(wèn)題的能力。該教學(xué)方法有效地啟蒙學(xué)生對(duì)數(shù)字系統(tǒng)的理解,為將來(lái)遇到項(xiàng)目、科研中的更復(fù)雜實(shí)際問(wèn)題,奠基堅(jiān)實(shí)基礎(chǔ),對(duì)培養(yǎng)新一代合格的實(shí)踐型人才有重大意義。
參考文獻(xiàn):
[1] 王小強(qiáng),鄧傳錦,范劍峰.集成電路發(fā)展歷程、現(xiàn)狀和建議[J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2021,39(S1):106-111.
[2] 方欣.集成電路產(chǎn)業(yè)發(fā)展:現(xiàn)狀、制約因素與促進(jìn)政策[J].中國(guó)集體經(jīng)濟(jì),2021(11):161-162.
[3] 李宇波,葉德信,卓成,等.“數(shù)字系統(tǒng)設(shè)計(jì)”課程的實(shí)踐教學(xué)改革初探[J].工業(yè)和信息化教育,2020(3):39-42,48.
[4] 李冠霖,張寶玲.Verilog HDL數(shù)字鐘電路的設(shè)計(jì)研究[J].無(wú)線互聯(lián)科技,2021,18(4):67-68.
[5] 張磊.口袋實(shí)驗(yàn)室的設(shè)計(jì)創(chuàng)建與應(yīng)用[J].科學(xué)技術(shù)創(chuàng)新,2019(30):147-148.
[6] 牛小燕,楊柳,鄭雪峰.基于競(jìng)賽驅(qū)動(dòng)的《數(shù)字系統(tǒng)課程設(shè)計(jì)》課程教學(xué)改革研究[J].科技風(fēng),2020(36):64-65.
[7] 艾偉清,陳景波,王偉,等.基于FPGA的“數(shù)字電路”教學(xué)改革探索[J].電氣電子教學(xué)學(xué)報(bào),2021,43(2):49-51.
[8] 嚴(yán)海洲.基于Xilinx口袋實(shí)驗(yàn)室的組合邏輯電路設(shè)計(jì)實(shí)驗(yàn)[J].電腦知識(shí)與技術(shù),2016,12(28):268-270,275.
【通聯(lián)編輯:王力】