易 藝,郝建衛(wèi)
(桂林電子科技大學(xué) 信息科技學(xué)院 電子工程系, 廣西 桂林 541004)
?
FPGA在數(shù)字邏輯電路教學(xué)中的應(yīng)用
易藝,郝建衛(wèi)
(桂林電子科技大學(xué)信息科技學(xué)院 電子工程系, 廣西桂林541004)
摘要從獨立學(xué)院培養(yǎng)應(yīng)用服務(wù)型人才的目標(biāo)出發(fā),以組合邏輯電路和時序邏輯電路的設(shè)計為例,提出將FPGA、Quartus II和Verilog HDL等知識融入數(shù)字邏輯電路教學(xué)。實踐表明,該教學(xué)方法可以激發(fā)學(xué)生的學(xué)習(xí)興趣,對培養(yǎng)學(xué)生的實踐動手能力和創(chuàng)新意識起到了積極的促進(jìn)作用,提高了教學(xué)質(zhì)量。
關(guān)鍵詞獨立學(xué)院;數(shù)字邏輯電路;現(xiàn)場可編程門陣列;組合邏輯電路;時序邏輯電路;教學(xué)改革
數(shù)字邏輯電路是通信工程、電子信息工程、計算機(jī)科學(xué)與技術(shù)、自動化等電子類專業(yè)的基礎(chǔ)必修課[1-2],是一門理論性和實踐性很強(qiáng)的課程[3]。通過對該課程的學(xué)習(xí),使學(xué)生熟悉數(shù)字邏輯電路基本器件的功能和使用方法,掌握數(shù)字邏輯電路的分析方法和設(shè)計方法,培養(yǎng)學(xué)生對數(shù)字邏輯電路的應(yīng)用能力和動手實踐能力,為學(xué)生學(xué)習(xí)后續(xù)專業(yè)課程準(zhǔn)備必要的基礎(chǔ)理論知識和實驗技能。
傳統(tǒng)的數(shù)字邏輯電路教學(xué)模式采用黑板板書和PPT的形式進(jìn)行,以教師講授傳統(tǒng)的教學(xué)內(nèi)容為主,學(xué)生聽講為輔的灌輸式教學(xué),學(xué)生處于被動學(xué)習(xí)的狀態(tài),學(xué)習(xí)興趣匱乏,課堂學(xué)習(xí)效率和教學(xué)效果很不理想[4-6]。針對存在的這些問題,從獨立學(xué)院培養(yǎng)應(yīng)用服務(wù)型人才的目標(biāo)出發(fā),根據(jù)獨立學(xué)院學(xué)生的學(xué)習(xí)接受能力,在數(shù)字邏輯電路的教學(xué)中適當(dāng)引入FPGA、Quartus II和Verilog HDL等知識,將傳統(tǒng)數(shù)字電子技術(shù)與現(xiàn)代數(shù)字電子技術(shù)的知識有機(jī)融合為一體,在Quartus II開發(fā)環(huán)境下根據(jù)任務(wù)的要求,利用Verilog HDL描述出滿足設(shè)計需要的數(shù)字電路,并進(jìn)行仿真驗證,最后下載到FPGA實驗箱上進(jìn)行硬件驗證。在設(shè)計過程中,學(xué)生可以直觀、形象地感受到教學(xué)內(nèi)容,進(jìn)而提高學(xué)習(xí)的積極性和學(xué)習(xí)興趣,實現(xiàn)在有限的課堂時間內(nèi)將知識和技術(shù)高效率地傳授給學(xué)生,幫助學(xué)生理解數(shù)字邏輯電路中的理論知識,一定程度地提高學(xué)生在數(shù)字邏輯電路方面的實際動手能力和創(chuàng)新能力,取得了良好的教學(xué)效果[7]。
下面以組合邏輯電路和時序邏輯電路的設(shè)計為例,介紹FPGA 在數(shù)字邏輯電路課程教學(xué)中的應(yīng)用。
1FPGA在組合邏輯電路設(shè)計中的應(yīng)用
組合邏輯電路是數(shù)字邏輯電路的重要組成部分,是學(xué)生重點掌握的知識點之一。傳統(tǒng)組合邏輯電路的設(shè)計方法和步驟[8]如下:
1)分析設(shè)計要求,確定輸入、輸出信號及其因果關(guān)系,并列出真值表;
2)根據(jù)真值表寫出邏輯函數(shù)式;
3)選定器件的類型和數(shù)目,并將邏輯函數(shù)式進(jìn)行化簡或作適當(dāng)?shù)淖儞Q;
4)根據(jù)化簡后的邏輯函數(shù)式畫出邏輯電路圖。
整個設(shè)計過程非常復(fù)雜,特別是邏輯函數(shù)式的化簡,當(dāng)組合邏輯電路的輸入變量較多時,常使學(xué)生對邏輯函數(shù)式的化簡望而生畏。為此,將FPGA、Quartus II和Verilog HDL等知識引入到組合邏輯電路設(shè)計中,采用現(xiàn)代的數(shù)字電路設(shè)計方法來設(shè)計組合邏輯電路。現(xiàn)代的設(shè)計方法和步驟[8]如下:
1)分析設(shè)計要求,確定輸入、輸出信號及其因果關(guān)系;
2)根據(jù)輸入信號與輸出信號的關(guān)系用Verilog HDL語言描述組合邏輯電路;
3)用Quartus II開發(fā)環(huán)境對用Verilog HDL語言描述的組合邏輯電路進(jìn)行編輯、編譯、綜合和仿真;
4)將Quartus II開發(fā)環(huán)境綜合后的網(wǎng)表文件下載到FPGA實驗箱進(jìn)行硬件驗證。
下面以設(shè)計一個控制水泵的組合邏輯電路為例詳細(xì)講解組合邏輯電路傳統(tǒng)和現(xiàn)代的設(shè)計方法。如圖1所示,由大水泵ML和小水泵MS供水,當(dāng)水面超過C點,大小兩臺水泵都不工作;當(dāng)水位低于C點高于B點時,小水泵MS工作;水位低于B點高于A點時,大水泵ML工作;水位低于A點時,大小兩臺水泵同時工作[9]。
圖1 水箱
1.1采用傳統(tǒng)的設(shè)計方法進(jìn)行設(shè)計
1)分析設(shè)計要求,確定輸入信號為檢測元件A、B、C,輸出信號為水泵ML和MS,依題意得到真值表如表1所示。在真值表中,水面低于檢測元件用“1”表示;否則用“0”表示。水泵供水用“1” 表示;否則用“0”表示。
2)根據(jù)真值表寫出邏輯函數(shù)式,選定器件的類型,并進(jìn)行化簡。由真值表分別得到MS的卡諾圖,如圖2(a)所示;ML的卡諾圖,如圖2(b)所示。
表1 水泵控制電路真值表
圖2 MS和ML卡諾圖
由卡諾圖化簡后得到的ML和MS邏輯函數(shù)式分別為:
(1)
ML=B
(2)
3)由邏輯函數(shù)式和選定的器件畫出控制水泵的組合邏輯電路圖,如圖3所示。
圖3 控制水泵的組合邏輯電路圖
1.2采用現(xiàn)代的設(shè)計方法進(jìn)行設(shè)計
1)分析設(shè)計要求,確定輸入信號為檢測元件A、B、C,輸出信號為水泵ML和MS。
2)用Verilog HDL語言描述輸入與輸出信號之間的邏輯電路關(guān)系。
module waterctrl(A,B,C,MS,ML);
inputA,B,C;
output regMS,ML;
always @(A,B,C)
begin
if((A==1)&&(B==1)&&(C==1))
beginMS=1;ML=1; end
else if((A==0)&&(B==1)&&(C==1))
beginMS=0;ML=1; end
else if((A==0)&&(B==0)&&(C==1))
beginMS=1;ML=0; end
else
beginMS=0;ML=0; end
end
endmodule
3)用Quartus II開發(fā)環(huán)境對用Verilog HDL語言描述的組合邏輯電路進(jìn)行編輯、編譯、綜合和仿真[10],得到的仿真波形如圖4所示。
圖4 水泵控制電路仿真圖
從圖4可看出,當(dāng)ABC=001時,MS工作,ML停止;當(dāng)ABC=011時,ML工作,MS停止;當(dāng)ABC=111時,ML和MS都工作;當(dāng)ABC為其他情況時,ML和MS都不工作,滿足題目的要求。
4)將Quartus II軟件綜合后的waterctrl.sof文件下載到FPGA實驗箱進(jìn)行硬件的驗證。
基于上述兩種設(shè)計方法分析可知:采用現(xiàn)代的數(shù)字電路設(shè)計方法,不要求學(xué)生必須推導(dǎo)出邏輯函數(shù)式,也不需要人工化簡邏輯函數(shù)式,這些都可以通過使用Quartus II軟件,交給計算機(jī)處理[11],還可通過仿真來驗證設(shè)計的電路是否滿足題目的要求。使一些看不見、摸不著的抽象理論知識,可以通過仿真和硬件驗證,直觀、形象地呈現(xiàn)在學(xué)生的面前,從而提高學(xué)生學(xué)習(xí)的興趣。
2FPGA在時序邏輯電路設(shè)計中的應(yīng)用
時序邏輯電路的設(shè)計是數(shù)字邏輯電路課程中重要的教學(xué)內(nèi)容,也是要求學(xué)生重點掌握的知識點之一。同步時序邏輯電路傳統(tǒng)的設(shè)計方法很復(fù)雜,設(shè)計方法和具體步驟[8]如下:
1)建立原始狀態(tài)轉(zhuǎn)換圖,并進(jìn)行狀態(tài)編碼;
2)畫出狀態(tài)卡諾圖并化簡,求出各級觸發(fā)器的狀態(tài)方程和電路的輸出方程;
3)檢查電路的自啟動能力;
4)選定觸發(fā)器類型并求出驅(qū)動方程;
5)根據(jù)驅(qū)動和輸出方程畫出電路的邏輯圖。
現(xiàn)代的設(shè)計方法比傳統(tǒng)的設(shè)計方法簡單易行,更具有優(yōu)越性?,F(xiàn)代的設(shè)計方法和具體步驟[8]如下:
1)分析設(shè)計要求,進(jìn)行邏輯抽象,確定輸入、輸出端口;
2)根據(jù)設(shè)計要求,用Verilog HDL語言來描述時序邏輯電路的功能;
3)用Quartus II軟件對用Verilog HDL語言描述的時序邏輯電路編輯、編譯、綜合和仿真;
4)將Quartus II軟件綜合后的網(wǎng)表文件下載到FPGA實驗箱進(jìn)行硬件驗證。
下面以設(shè)計一個序列信號檢測器為例詳細(xì)講解時序邏輯電路傳統(tǒng)和現(xiàn)代的設(shè)計方法。要求設(shè)計一個序列信號檢測器,X為序列信號輸入端,CP為時鐘脈沖輸入端,當(dāng)檢測到正確序列信號“1011”時,輸出端Y=1,其他情況下Y=0。
2.1采用傳統(tǒng)的設(shè)計方法進(jìn)行設(shè)計
1)建立原始狀態(tài)轉(zhuǎn)換圖[8],并確定觸發(fā)器的級數(shù),然后進(jìn)行狀態(tài)編碼,如圖5(a)所示。
2)畫出狀態(tài)卡諾圖,如圖5(b)所示,化簡后求得各級觸發(fā)器的狀態(tài)方程和電路的輸出方程為:
(3)
(4)
(5)
3)經(jīng)過分析得到電路具有自啟動的能力,選定觸發(fā)器類型為JK觸發(fā)器,根據(jù)JK觸發(fā)器的特性方程求出電路的驅(qū)動方程為:
(6)
(7)
J2=X
(8)
(9)
4)根據(jù)驅(qū)動方程和輸出方程畫出序列信號檢測器的邏輯電路圖,如圖5(c)所示。
圖5 檢測器的狀態(tài)轉(zhuǎn)換圖、卡諾圖和邏輯電路圖
2.2采用現(xiàn)代的設(shè)計方法進(jìn)行設(shè)計
1)分析設(shè)計要求,確定輸入信號為X、CP,輸出信號為Y。
2)用Verilog HDL來描述電路的功能。
module xljcq(X,CP,Y);
inputX,CP;
outputY;
reg[2:0]temp;
reg temp1;
always @(negedge CP)
begin
temp=temp<<1;
temp[0]=X;
end
always @(temp)
begin
if(temp==’b101)temp1=’b1;
elsetemp1=’b0;
end
assignY=temp1&X;
endmodule
3)用Quartus II軟件對用Verilog HDL語言描述的時序邏輯電路進(jìn)行編輯、編譯、綜合和仿真[12],得到的仿真波形如圖6所示。
圖6 序列檢測電路仿真圖
從圖6可看出,當(dāng)輸入端X接收到連續(xù)的1011序列信號時,輸出端Y=1;否則Y=0。滿足題目的要求。
4)將Quartus II軟件綜合后xljcq.sof下載到FPGA實驗箱進(jìn)行硬件驗證。
基于上述兩種設(shè)計方法分析可知:傳統(tǒng)的時序邏輯電路設(shè)計方法比較繁瑣,設(shè)計速度慢,不易掌握;現(xiàn)代的設(shè)計方法設(shè)計速度快,可以很好地將授課內(nèi)容進(jìn)行實驗驗證,加深了學(xué)生對理論知識的理解,可取得很好的教學(xué)效果。因此,在數(shù)字邏輯電路的教學(xué)過程中,我院采用先教師簡要講授傳統(tǒng)的設(shè)計方法,使學(xué)生了解組合邏輯電路和時序邏輯電路傳統(tǒng)的設(shè)計方法和步驟;然后引入現(xiàn)代的設(shè)計方
法,使學(xué)生感受到使用現(xiàn)代設(shè)計方法的優(yōu)勢,并要求學(xué)生重點掌握現(xiàn)代的設(shè)計方法和步驟。同時,教師還要注意對學(xué)生應(yīng)用能力和創(chuàng)新意識的培養(yǎng),鼓勵學(xué)生對設(shè)計題目進(jìn)行拓展;提倡學(xué)生從多方面、多角度去考慮問題;加強(qiáng)與學(xué)生的互動,增強(qiáng)學(xué)生的自信心[13]。
3結(jié)束語
根據(jù)當(dāng)前社會對人才的需求以及獨立學(xué)院培養(yǎng)應(yīng)用服務(wù)型人才的方針,對數(shù)字邏輯電路課程教學(xué)進(jìn)行了教學(xué)改革與實踐,在講解傳統(tǒng)的知識和技術(shù)時,引入一些新穎的、實用的知識和技術(shù),意在激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生的應(yīng)用能力以及勇于探索、不斷創(chuàng)新的能力。近年來,我院學(xué)生在全國各類大學(xué)生電子設(shè)計競賽中連獲佳績,得益于運用FPGA來設(shè)計數(shù)字電路,這與將FPGA技術(shù)應(yīng)用于數(shù)字邏輯電路課程的教學(xué)是分不開的。為了進(jìn)一步提高數(shù)字邏輯電路課程的教學(xué)質(zhì)量,我院將繼續(xù)深化數(shù)字邏輯電路課程的教學(xué)改革,積極探索提高理論教學(xué)與實踐教學(xué)質(zhì)量的新方法和新途徑,為培養(yǎng)出設(shè)計能力強(qiáng)、應(yīng)用能力強(qiáng)和創(chuàng)新意識強(qiáng)的大學(xué)生而努力[13]。
參 考 文 獻(xiàn)
[1]任愛鋒,孫萬蓉,石光明.EDA 實驗與數(shù)字電路相結(jié)合的教學(xué)模式的實踐[J].實驗技術(shù)與管理,2009,26(4):200-202.
[2]王美玲,陶濤鑫君,江澤民,等.基于PSoC 的數(shù)字電子技術(shù)教學(xué)改革探索[J].實驗室研究與探索,2014,33(8):163-165.
[3]葉佳卓,盧斌,程棟.基于EDA 技術(shù)的數(shù)字電路實踐教學(xué)探討[J].實驗技術(shù)與管理,2010,27(11):249-252.
[4]崔國瑋,李文濤.基于EDA技術(shù)的數(shù)電課程設(shè)計新模式的探索與實踐[J].實驗技術(shù)與管理,2008,25(1):123-125.
[5]魏堅華,賈熹濱.基于EDA技術(shù)推進(jìn)數(shù)字邏輯課程改革和精品課程建設(shè)[J].計算機(jī)教育,2011(16):41-43.
[6]任風(fēng)華,熊鳳,許勇.基于Quartus II 9.0 的《數(shù)字電路》教學(xué)研究[J].現(xiàn)代計算機(jī),2012,10(中):57-59.
[7]方天紅,張升義.Proteus在《數(shù)字邏輯電路》課程項目驅(qū)動教學(xué)中的應(yīng)用[J].實驗室研究與探索,2014,33(4):195-197.
[8]江國強(qiáng).新編數(shù)字邏輯電路[M].2版.北京:北京郵電大學(xué)出版社,2013.
[9]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].5版.北京:高等教育出版社,2006.
[10]潘明,潘松.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:科學(xué)出版社,2008.
[11]艾明晶.基于自動設(shè)計方法的數(shù)字邏輯課程改革研究與實踐[J].實驗技術(shù)與管理,2012,29(9):151-155.
[12]王忠林,韓敬偉.EDA技術(shù)在時序邏輯電路實驗中的應(yīng)用[J].濱州學(xué)院學(xué)報,2013,29(6):84-87.
[13]易藝,齊慶堃,郝建衛(wèi).獨立學(xué)院《模擬電子技術(shù)》實驗教學(xué)改革與實踐[J].科技資訊,2011(1):169-171.
Application of FPGA in Digital Logic Circuit Teaching
YI Yi,HAO Jianwei
(Department of Electronic Engineering,Institute of Information Technology,Guilin University of Electronic Technology,Guilin 541004,China)
AbstractAccording to the goal of independent college to cultivate application service-oriented talents.The paper presents the field programmable gate array(FPGA),Quartus II and Verilog HDL knowledge to the teaching method in the teaching of digital logic circuit using the combinational logic circuits and sequential logic circuits as a design example.The teaching practice shows that this teaching method can motivate students’ interest in learning.It plays a positive role in promoting students’ practice ability and innovation consciousness,thus enhance the teaching quality.
Key wordsindependent college; digital logic circuit; FPGA; combinational logic circuit; sequential logic circuit;teaching reform
收稿日期:2015-06-30;修改日期: 2015-07-30
作者簡介:易藝(1983-),男,講師,實驗師, 主要從事數(shù)字邏輯電路和EDA技術(shù)的教學(xué)和科研工作。 郝建衛(wèi)(1956-),男,高級實驗師,主要從事電子技術(shù)、電視技術(shù)和電源技術(shù)的教學(xué)和科研工作。
中圖分類號TP 331.2; TP 319
文獻(xiàn)標(biāo)志碼A
doi:10.3969/j.issn.1672-4550.2016.02.004