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