王紅航,劉 凱,鄧春健,楊健君,陳李勝,路月月
(電子科技大學 中山學院,廣東 中山 528402)
數(shù)字邏輯設(shè)計及應(yīng)用是高等院校電氣信息類學科中一門重要的學科基礎(chǔ)課程,是研究數(shù)字系統(tǒng)設(shè)計的入門課程,在整個人才培養(yǎng)中起承上啟下的作用。EDA(electronic design automatic)是以大規(guī)模可編程邏輯器件為設(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)??删幊唐骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具,從而實現(xiàn)硬件設(shè)計軟件化的新技術(shù)。
目前,很多學校把EDA的設(shè)計思路引入到數(shù)字電路的教學中[1-7],使得數(shù)字電路設(shè)計風格更靈活、設(shè)計效率更高。也有一部分學校將數(shù)字電路和EDA技術(shù)兩門課程融合,建立傳統(tǒng)數(shù)字電路設(shè)計和現(xiàn)代設(shè)計方法相結(jié)合的新教學模式[8-12],借此提高學生的理論水平和實踐動手能力。中山學院在長期的數(shù)字電路教學實踐中,體會到使用“數(shù)字電路/ARM7嵌入式系統(tǒng)多功能教學科研平臺”能夠提高學生的理解能力和動手能力,能夠更好地推進數(shù)字電路的教學改革,并能更好地完成數(shù)字電路和EDA技術(shù)的融合。
在全國壓縮課時的大背景下,數(shù)字邏輯設(shè)計及應(yīng)用課程融合EDA技術(shù)相關(guān)內(nèi)容之后,學時量仍然保持為64學時。由于課時限制,教師雖然清楚使用EDA技術(shù)設(shè)計數(shù)字電路有諸多優(yōu)點,但為了講清楚數(shù)字電路的基礎(chǔ)知識,只能對EDA技術(shù)的設(shè)計思路和方法做最簡單的介紹和演示,致使學生對現(xiàn)代電路設(shè)計技術(shù)淺嘗輒止,難以化為能力。為了知識體系的延伸和連貫,更為了提高學生的綜合實踐能力,本文自制了一系列基于FPGA的數(shù)字系統(tǒng)實驗實訓平臺,作為數(shù)字電路實驗和EDA綜合實驗共同的設(shè)計平臺。使用共同的平臺,學生學習數(shù)字邏輯設(shè)計及應(yīng)用課程,就能習得QuartusII軟件和試驗箱平臺的使用方法。這一方面可以利用EDA技術(shù)全面改進數(shù)字邏輯設(shè)計及應(yīng)用課程教學,另一方面為EDA綜合實驗課程打下基礎(chǔ),促進EDA綜合實驗更好地進行教學改革。
2013年,學校組織研發(fā)了“數(shù)字電路/ARM7嵌入式系統(tǒng)多功能教學科研平臺”,如圖1所示。該平臺以現(xiàn)場可編程門陣列(FPGA)為核心,以綜合性、創(chuàng)新性實驗為導向,具有豐富的外設(shè)接口和豐富的設(shè)計資源,可以實現(xiàn)傳統(tǒng)數(shù)字邏輯電路實驗設(shè)備的大部分實驗,卻具有傳統(tǒng)實驗設(shè)備無法實現(xiàn)的大部分功能[1]。試驗箱研發(fā)初衷是為了將學生從繁重的插線工作中解脫出來,使用電子設(shè)計自動化技術(shù)實現(xiàn)數(shù)字電路設(shè)計,使設(shè)計風格更靈活,設(shè)計效率更高效。根據(jù)幾年的教學實踐,發(fā)現(xiàn)這個平臺雖能對數(shù)字電路和EDA課程的融合起重要作用,但學生對傳統(tǒng)數(shù)字電路的理解不夠真實、具體。
圖1 數(shù)字電路/ARM7嵌入式系統(tǒng)多功能教學科研平臺
為了讓學生對固定功能芯片的使用有感性的認識,2015年學校組織研發(fā)了 “數(shù)字邏輯及數(shù)字系統(tǒng)綜合實驗實訓平臺”,補充2013版實驗平臺的不足。該平臺不僅包含以FPGA為核心的實驗平臺,還包括傳統(tǒng)實驗箱的一部分功能,即為傳統(tǒng)數(shù)字實驗和現(xiàn)代數(shù)字電路設(shè)計的融合。學生剛開始學習數(shù)字邏輯設(shè)計及應(yīng)用課程時,使用傳統(tǒng)實驗箱部分,理解數(shù)字電路的邏輯關(guān)系和芯片使用方法;對數(shù)字電路有一定的認識之后,學習固定功能芯片擴展應(yīng)用,學習不同固定功能芯片之間如何通信,理解傳統(tǒng)數(shù)字電路設(shè)計方法并嘗試自己設(shè)計電路;固定功能芯片使用方法掌握之后,學習FPGA可編程芯片的使用,掌握現(xiàn)代數(shù)字電路設(shè)計思想,學習用現(xiàn)代設(shè)計思想設(shè)計數(shù)字電路,并通過實驗平臺學會FPGA和固定功能芯片如何通信。學生在學習固定功能芯片和FPGA芯片的過程中,理解真實的電路和用QuartusII搭建的使用FPGA實現(xiàn)的電路其實是一回事,以此實現(xiàn)數(shù)字電路設(shè)計體系的融會貫通。
數(shù)字邏輯設(shè)計及應(yīng)用課程立足于傳統(tǒng)設(shè)計方法,即使把EDA的設(shè)計思路引入到數(shù)字電路的教學中,也只是基于FPGA的原理圖設(shè)計方法設(shè)計數(shù)字系統(tǒng),電路一旦復(fù)雜化,就需要借助HDL描述電路。EDA綜合實驗課程基于HDL進行數(shù)字電路設(shè)計,多數(shù)情況下采用行為描述方式描述數(shù)字電路,對于用原理圖描述的數(shù)字電路,學生對其相應(yīng)的HDL描述并不清晰。這些現(xiàn)象阻礙了學生對數(shù)字電路設(shè)計的認知,阻斷了學習的連貫性和一致性。據(jù)此,我們改革課程內(nèi)容,將數(shù)字電路設(shè)計的一部分內(nèi)容使用原理圖輸入法 (數(shù)字電路課程實現(xiàn))和HDL(EDA綜合實驗)兩種方法來實現(xiàn)。
圖2 用3-8譯碼器實現(xiàn)跑馬燈的電路原理圖
如用3-8譯碼器實現(xiàn)跑馬燈,用電路原理圖的實現(xiàn)方法如圖2所示,其中插圖為LED跑馬燈的亮燈圖。該實現(xiàn)電路是根據(jù) “數(shù)字電路/ARM7嵌入式系統(tǒng)多功能教學科研平臺”而設(shè)計的。
眾所周知,實現(xiàn)亮燈沿著一個方向移動,并且能夠循環(huán)往復(fù),就可稱之為跑馬燈。如圖2所示,將74138的輸出Y0N~Y7N鎖定試驗箱上的LED0~LED7(低電平點亮LED),如果74138的A、B、C輸入端口能夠循環(huán)輸入000~111,則LED0~LED7可以實現(xiàn)跑馬燈功能。如果計數(shù)器的輸出大于等于3位,則計數(shù)器能夠循環(huán)輸出000~111。電路選擇4個8位計數(shù)器級聯(lián),一方面用計數(shù)器的輸出作為74138的輸入,另一方面將系統(tǒng)時鐘49.152 MHz分頻為大約1.5 Hz。選擇8count的使能信號GN(低電平有效)作為系統(tǒng)使能,當GN=0時,芯片能夠正常工作;當GN=1時,保持系統(tǒng)原來的狀態(tài)不變。原理圖中將disp_cs置為0,目的是在LED燈和七段數(shù)碼管、LED矩陣復(fù)合使用時選擇使用LED燈,buzz置為1,目的是想讓系統(tǒng)中喇叭不發(fā)聲,具體原理請參考文獻[1]。
用VerilogHDL實現(xiàn)跑馬燈如例程1所示。例程1:
可以看出,在Verilog HDL中,74138的功能由一個case語句實現(xiàn),分頻器的功能是由兩個計數(shù)器級聯(lián)實現(xiàn),其中一個計數(shù)器將系統(tǒng)時鐘49.152 MHz進行10 M分頻,另一個計數(shù)器將時鐘系統(tǒng)進行8分頻,這樣LED燈的流動頻率大概為0.6 Hz。系統(tǒng)另設(shè)一個使能信號en,當en=0時,74138正常工作;當en=1時,保持原來的狀態(tài)不變。而原理圖中對disp_cs=0和buzz=1的設(shè)定,在 Verilog HDL中用assign語句來實現(xiàn)。
在這個例子中,如果在例程1“endcase”后加上一句 “elsey<=8’ b11111111”,則實現(xiàn)的功能變?yōu)?當en=0時,74138正常工作;當en=1時,所有LED燈均熄滅。這個功能的改變?nèi)绾卧谠韴D中表現(xiàn)出來呢?可以將74138芯片的G1端口設(shè)為輸入端口en,這樣就可以實現(xiàn)與例程1相同的功能。
通過用原理圖和HDL兩種不同電路描述方式的對照設(shè)計,學生能夠?qū)τ肏DL描述的數(shù)字電路有更具體生動的認識;同時能夠理解對于一個數(shù)字電路,需要使用什么樣的語句描述,從而實現(xiàn)知識的融會貫通,增加學生的學習興趣和積極性。
借助 “數(shù)字邏輯及數(shù)字系統(tǒng)綜合實驗實訓平臺”,使得使用傳統(tǒng)試驗箱驗證芯片功能的實驗方法和基于FPGA的電路原理圖設(shè)計方法得以統(tǒng)一,基于FPGA的電路原理圖和HDL這兩種數(shù)字電路描述得以融合。至此,數(shù)字邏輯設(shè)計及應(yīng)用和EDA綜合實驗兩門課程真正實現(xiàn)了由基礎(chǔ)學習到深刻理解到實踐設(shè)計到創(chuàng)新的最終目標,學生對知識的理解和掌握才能融會貫通。這樣的學生是真正的應(yīng)用型人才,是社會歡迎的人才,也是學校的培養(yǎng)目標。
[1]王紅航,劉凱,鄧春健,等.提高綜合應(yīng)用能力的實驗教學方法探討[J].實驗科學與技術(shù),2016,14(3):121-124.
[2]倪德克,師亞莉,朱旭花,等.EDA技術(shù)在數(shù)字電路課程設(shè)計教學改革中的探索與實踐[J].大學教育,2016(4):118-119.
[3]杜世民,楊相生,楊潤萍,等.基于EDA技術(shù)的數(shù)字電路綜合實驗研究[J].實驗技術(shù)與管理,2012,29(10):93-96.
[4]葉佳卓,盧斌,程棟.基于EDA技術(shù)的數(shù)字電路實踐教學探討[J].實驗技術(shù)與管理,2010(11):249-252.
[5]王艷玲,全宏瑞,桂明輝.基于EDA技術(shù)的數(shù)字電路課程設(shè)計[J].桂林師范高等??茖W校學報,2009,23(2):177-181.
[6]呂燚,鄧春健,黃杰勇.利用EDA技術(shù)全面改進數(shù)字電路課程教學[J].福建電腦,2008,24(6):208-209.
[7]王玫,王桂珍,田麗鴻.基于EDA改革數(shù)電課程設(shè)計,培養(yǎng)學生創(chuàng)新能力[J].電氣電子教學學報,2006,28(4):18-21.
[8]林智慧,唐亮,何穎.EDA技術(shù)與數(shù)字電路的融合研究[J].電子測試,2016(23):32-33.
[9]高艷.淺談數(shù)字電路和EDA技術(shù)的教學整合[J].內(nèi)蒙古教育,2016(9):73.
[10]秦進平,劉海成,張凌志,等.電類專業(yè)數(shù)字系統(tǒng)綜合實驗平臺研制[J].實驗技術(shù)與管理,2012,29(6):75-78.
[11]任愛鋒,孫萬蓉,石光明.EDA實驗與數(shù)字電路相結(jié)合的教學模式的實踐[J].實驗技術(shù)與管理,2009(4):208-210.
[12]邵凱,梁燕.EDA技術(shù)與數(shù)字電路實驗教學的有機結(jié)合[J].重慶郵電大學學報 (自然科學版),2006(s1):109-110.