王巧蘭
[摘 要]Multisim提供了強大的學習功能和實驗室硬件集成,可幫助學生在整個工程和理論課程中輕松學習電子電路的基本概念和應用知識。FPGA技術更新快,從芯片、軟件到各類參考書籍都層出不窮。因此在教學中強調形成電子自動化設計的思路,在教學中要求熟悉FPGA器件的開發(fā)環(huán)境Quartus軟件、硬件編程語言(VHDL或Verilog HDL)基本語法和圖形化編輯方式,在FPGA開發(fā)板上完成基本運算邏輯、組合邏輯設計、時序邏輯設計和狀態(tài)機等。所完成的設計內容貼近教學內容且循序漸進,使初學FPGA技術的學生能快速上手,激發(fā)學生的學習興趣并提高科創(chuàng)能力。
[關鍵詞]EDA技術;數字電子技術;案例
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 2095-3437(2016)11-0167-04
一、引言
“數字電子技術”課程是自動化、電氣、電子信息等相關電類專業(yè)的核心專業(yè)基礎課之一,該課程由理論教學和實踐教學兩部分有機組合。其中實踐教學對學生掌握電子技術基礎知識,培養(yǎng)學生的實踐操作、團隊合作精神、分析并解決問題、創(chuàng)新等能力起到關鍵作用。因此,如何加強數字電子技術實驗課程教學,以更好地鞏固理論知識并提高實踐能力,是理工科大學生培養(yǎng)的重要環(huán)節(jié)之一。
隨著電子技術的快速發(fā)展,EDA(Electronic Design Automation電子設計自動化)技術在現代電子設計領域的地位使其成為電子技術課程中必不可少的教學內容。在許多優(yōu)秀教材中都增加可編程邏輯器件和硬件描述語言等EDA內容。傳統(tǒng)的電子技術實驗雖然能讓學生更好地理解掌握器件性能及具體應用,但受實驗箱端口、芯片數量及連線限制,傳統(tǒng)實驗只能完成驗證性實驗和較簡單的電路設計及實現。引入EDA技術能很好地補充傳統(tǒng)實驗的不足,同時也為后續(xù)的數字系統(tǒng)設計提供很好的基礎。因此如何利用EDA技術更好地輔助教學是順應發(fā)展趨勢。眾多學者給出了許多教改方案,如實驗內容與實驗體系、實驗教學方法、EDA設計仿真技術、項目教學法等,這些教學方案也取得一定的效果。而本文主要是從案例的方面探討EDA技術在數字電子技術教學中的應用,既有利于學生理解理論知識,又培養(yǎng)學生一定的綜合分析能力、開發(fā)和創(chuàng)新能力。
知識的膨脹與學時有限的矛盾也是日益突出,因此如何在不額外增加學生學習壓力的前提下,盡可能地提高教學有效性也是需要進行探索的方面。
二、總體方案
利用NI的Multisim軟件虛擬電子元件和電路輔助理論教學。該軟件的可視化仿真實現“軟件即元件”、“軟件即儀器”,能形象、生動、快速地設計、測試和演示各種數字電路。在掌握數字電路分析和設計的基礎上,再結合可編程邏輯器件FPGA開發(fā)板推進綜合數字系統(tǒng)設計。通過這也是本文主要闡述的內容。
因為教學課時有限,因此可將Multisim仿真和可編程器件的知識通過短視頻講解的方式放在教學群共享里。引導學生利用零碎的時間學習并完成相應的任務,將理論分析設計知識應用到具體的仿真和系統(tǒng)設計中。在課堂教學中挑選幾個典型案例進行分析、講評,以便學生更好地理解合理設計、修改錯誤、避免同類錯誤等,最終達到有效教學的目的。
(一)Multisim在教學中的輔助應用
Multisim廣泛地用于模擬電路和分析、數字邏輯電路、微控制器、電力電子與系統(tǒng)、學生設計和科研項目中,它已受到國內外教師、科研人員和工程師的廣泛認可,稱為先進SPICE仿真標準環(huán)境。
為了讓學生能更好地理解器件功能及電路分析設計的能力,引入Multisim能有效促進學生的知識理解,提高創(chuàng)新思維能力和學習主動性。以常見的中規(guī)模器件譯碼器設計為例。
設計一個交通燈故障檢測電路,要求紅、黃、綠三個燈有且只有一個燈亮,則正常;無燈亮或有兩燈以上亮均為故障,則輸出故障信號。要求使用譯碼器和少量門電路設計。
1.將文字的設計要求轉換為數字邏輯表達形式,即邏輯抽象和列真值表,如表1所示。
輸入變量:紅(R)、黃(Y)、綠(G);亮為1,滅為0。
輸出變量:故障信號(Z);故障為1,正常為0。
2.列出符合目標器件的邏輯表達式。
根據真值表寫出表達式:Z=R′Y′G′+R′YG+RY′G+RYG′+RYG。由于譯碼器的輸出是m的形式,所以需要轉換表達式。轉換后的結果為:
Z=Σm(03567)-Σ(m′m′m′m′m′)′。
如果直接按該式則譯碼器輸出端的連線會比較多,因此采用圈0取反的形式則更簡潔。
3.畫出邏輯電路圖,如圖1所示。
在許多理論書上,到這一步可能就結束了。學生對器件的認識和邏輯電路應該怎么實現設計要求可能還是覺得比較抽象。而實驗操作課的課時又有限,不能每個器件或電路都進行搭建并觀察現象。因此利用Mulitisim的可視化功能能有效地提高學習效率。
4.在Multisim中搭建實現電路,并觀察分析現象。
利用發(fā)光二極管來模擬紅、黃、綠三個交通燈,在輸出端用發(fā)光二極管來指示是否故障。根據邏輯門的技術參數可知:對TTL器件而言高電平時輸出電流較小,低電平時輸出電流較大;而發(fā)光二極管流過電流至少要幾個毫安才能發(fā)光,因此可以選擇在原有邏輯電路圖的輸出端增加非門。為了滿足盡可能少的器件,可將邏輯電路圖的與門轉換為與非門。具體的仿真電路如圖2所示。
圖中顯示紅燈和綠燈都亮時,故障指示燈ALARM亮。通過仿真學生能直觀地掌握設計到電路實現的整個流程,而不僅僅停留在設計階段,同時舉一反三地仿真其他電路。對譯碼器和邏輯門的功能有較深刻的認識,對發(fā)光二極管的導通壓降和流經的電流值有更確切的理解,并根據發(fā)光二極管的電流要求選擇合適的限流電阻值。
(二)可編程邏輯器件在綜合數字系統(tǒng)中的應用
傳統(tǒng)的電子技術實驗和Multisim仿真雖在電子電路分析設計中有較大的優(yōu)勢,但對于綜合數字系統(tǒng)設計則具有一定的局限性。目前,在綜合數字系統(tǒng)設計方面,基于可編程邏輯器件的設計是電子自動化設計的發(fā)展趨勢,它更注重層次化設計思想。以FPGA為代表的可編程邏輯器件的設計受到學校和企業(yè)的普遍重視,掌握FPGA技術也是新技術發(fā)展的熱點之一。
這里以99s數字秒表設計為例。要求:誤差小于0.1s;設置外部操作開關,控制計時器啟動計數、暫停/連續(xù)計數。
根據設計要求可知,該電路由秒脈沖發(fā)生器、計數器、譯碼顯示電路和輔助時序控制電路等五部分組成。具體原理框圖如圖3所示。秒脈沖發(fā)生器由555多諧振蕩器或石英晶體通過分頻實現;計數器采用加法計數器,能暫停、清零、設置計數范圍;數碼顯示需用到譯碼驅動,根據所用數碼管是共陰型或共陽型來選擇相應的譯碼驅動器??刂齐娐纺軐崿F暫停/啟動計數、開關去抖動等功能。這樣通過這個小系統(tǒng)的電路設計,將組合邏輯、時序邏輯、脈沖產生等電路知識有機結合起來。具體Multisim仿真如圖4所示,圖中的脈沖產生采用555多諧振蕩器。通過設計、仿真、電路焊接和調試,能很好地掌握MSI邏輯電路的分析設計、元器件參數值的計算和選擇、測量調試等。
通過99s數字秒表電路,學生能很好地掌握555、邏輯門、計數器、譯碼顯示器、數碼管等器件原理和應用;硬件制作過程也較順利。但是一旦設計要求提高,電路復雜度也隨之增加,再用這種設計方法則存在較大的限制,且硬件制作時出錯的概率也會大幅提高。在掌握數字邏輯基礎的前提下,利用可編程邏輯器件來提高數字系統(tǒng)設計的能力。
制作數字系統(tǒng)設計相關知識的短視頻,并上傳到教學群共享;根據數字邏輯課程進度要求學生完成短視頻的觀看并完成相關的練習。學生通過時間碎片的學習掌握硬件編程語言基本語法,使學生逐步掌握一些基本的組合和時序邏輯電路實現方法。這樣就能設計一些簡單的邏輯電路和系統(tǒng),進而過渡到后續(xù)的復雜數字系統(tǒng)設計。以前面99s數字秒表為例。
根據圖3中99s數字秒表原理框圖可知數字秒表需要產生秒脈沖、計數、譯碼顯示等模塊。
1.秒脈沖
由于FPGA開發(fā)板使用的晶振為50MHz,所以要得到1Hz的信號,需經過50 000 000次分頻,通過分頻程序即可實現。
2.計數
99進制計數程序如下所示,通過少量的語句就可以實現99進制計數。計數模塊使用率高,因此可將計數模值設置為parameter參數值,每次使用只需修改parameter值即可。
always @(posedge clk or negedge rstn)
if(!rstn)
begin rcount_h<=4′d0;rcount_l<=4′d0;end
else if(rcount_h==4′b1001 && rcount_l==4b1001)
begin rcount_h<=4′d0;rcount_l<=4′d0;end
else if(rcount_l==4′b1001)
begin rcount_h<=rcount_h+1;rcount_l<=4′d0;end
else
rcount_l=rcount_l+1;
assign count_num[7∶4]=rcount_h;
assign count_num[3∶0]=rcount_l;
3.顯示譯碼
由于計數時采用的8421BCD碼,因此要將8421BCD計數值譯碼轉換為七段數碼管顯示所需的段驅動。這里以共陽極數碼管為例給出顯示譯碼的部分程序,設置好參數后,只需采用case選擇語句就能完成顯示譯碼。相應地,程序編寫也能有助于學生理解譯碼器件的功能表。
parameter_0=8b1100_0000,_1=8b1111_1001,_2=8b1010_0100,_3=8b1011_0000,
_4=8b1001_1001,_5=8b1001_0010,_6=8b1000_0010,_7=8b1111_1000,
_8=8b1000_0000,_9=8b1001_0000;
4.動態(tài)顯示和掃描
如果采用靜態(tài)顯示的方式會耗費較多的I / O口,因此通常采用動態(tài)顯示的方式。通過分頻得到1ms的掃描時鐘信號。在第一周期將計數值count_num[7∶4]送往第一個數碼管并掃描第一個數碼管(使能),在第二個周期將計數值count_num[3∶0]送往第二個數碼管并掃描第二個數碼管(使能)。動態(tài)顯示和掃描都可以通過簡單的case語句來完成,這里就不再列出。
5.頂層原理圖
各子模塊都分別實現并通過測試后,就可以在頂層組合成主模塊進行功能仿真和時序仿真,根據硬件資源分配管腳,最后下載到開發(fā)板進行驗證。頂層用圖形化編輯方式能更加直觀地顯示各模塊的位置及數據流的方向。具體頂層圖如圖5所示。頂層原理圖仿真調試通過后就可以下載到開發(fā)板驗證。
該設計方法可以快速地擴展為電子時鐘的設計、頻率計設計等,許多模塊的程序可以復用,因此增加的工作量很少。
(三)不同EDA技術在數字電子技術實驗應用中的比較
通過前面的具體案例分析可知:Multisim仿真能夠很好地輔助教學,促使學生更好地掌握分立元件和中規(guī)模器件的功能和具體使用,能直觀地觀察節(jié)點測量值和運行結果。但對于系統(tǒng)的擴展或者較復雜的電路則存在一定的限制??删幊踢壿嬈骷t特別適合于復雜的數字系統(tǒng)開發(fā)設計,也順應電子系統(tǒng)設計的發(fā)展趨勢。因此在實驗中將兩者有機結合能更好地提高學習效率并奠定一定的復雜系統(tǒng)設計基礎。
三、結論
本文通過案例分析的方式討論EDA技術在數字電子技術實驗中的應用。Multisim提供了強大的學習功能和實驗室硬件集成,可幫助學生在整個工程和理論課程中輕松學習電子電路的基本概念和應用知識。FPGA技術更新快,從芯片、軟件到各類參考書籍都層出不窮。因此在教學中強調形成電子自動化設計的思路,在教學中要求熟悉FPGA器件的開發(fā)環(huán)境Quartus軟件、硬件編程語言(VHDL或Verilog HDL)基本語法和圖形化編輯方式,在FPGA開發(fā)板上完成基本運算邏輯、組合邏輯設計、時序邏輯設計和狀態(tài)機等。所完成的設計內容貼近教學內容且循序漸進,使初學FPGA技術的學生能快速上手,激發(fā)學生的學習興趣并提高科創(chuàng)能力。
強調EDA技術在數字電子技術教學中的應用,希望學生能獨立思考,尋找最適合自己學習、實踐的方式方法。在后續(xù)學習中能結合傳感器等相關課程完成相應的課程設計、科創(chuàng)項目、電子競賽、畢業(yè)設計等,盡可能地達到有效教學的目的。教學經驗結果表明,大多數同學能更好地掌握知識點并較快速地將EDA技術用于電子競賽和大學生創(chuàng)新項目中。
[ 參 考 文 獻 ]
[1] 姚福安,徐向華,高寧.“電子技術基礎”實踐教學體系的建設與探索[J].實驗室研究與探索,2014(10).
[2] 王波,張巖,王美玲.“數字電子技術實驗”課程的改革[J].實驗室研究與探索,2012(9).
[3] 閻石.數字電子技術基礎(第5版)[M].北京:高等教育出版社,2006.
[4] 夏宇聞.Verilog數字系統(tǒng)設計教程(第3版)[M].北京:北京航空航天大學出版社,2015(6).
[5] Mark Zwolinski.System Verilog數字系統(tǒng)設計[M].北京:電子工業(yè)出版社,2011.
[6] 楊春玲,朱敏,張巖.數字電子技術基礎研究性教學方法的探索與實踐[J].中國大學教學,2014(2).
[責任編輯:張 雷]