李兆光
(中北大學(xué)信息與通信工程學(xué)院國(guó)家級(jí)電工電子實(shí)驗(yàn)教學(xué)示范中心,山西 太原 030051)
我校的通信工程專業(yè)是全國(guó)高等學(xué)校的特色專業(yè)。我校通信工程專業(yè)培養(yǎng)具備通信技術(shù)、通信系統(tǒng)和通信網(wǎng)等方面的知識(shí),具有較強(qiáng)的創(chuàng)新意識(shí)、自學(xué)能力和工程實(shí)踐能力,能在通信領(lǐng)域中從事研究、設(shè)計(jì)、制造、運(yùn)營(yíng)及在國(guó)民經(jīng)濟(jì)各部門和國(guó)防工業(yè)中從事開發(fā)、應(yīng)用通信技術(shù)與設(shè)備的高級(jí)工程技術(shù)人才。數(shù)字電子技術(shù)基礎(chǔ)課是一門對(duì)于通信專業(yè)學(xué)生很重要的技術(shù)基礎(chǔ)課,它對(duì)學(xué)生后續(xù)專業(yè)課的學(xué)習(xí)起到了直接的決定性作用。因此,數(shù)字電子技術(shù)的教學(xué)內(nèi)容的選擇在受課時(shí)限制的前提下,主要考慮為后續(xù)專業(yè)課程服務(wù),其次考慮學(xué)科的需要。
另外,信息技術(shù)的迅猛發(fā)展、應(yīng)用領(lǐng)域的不斷拓寬以及學(xué)科交叉的廣泛深入且綜合程度的不斷提高,都給教學(xué)帶來了前所未有的挑戰(zhàn)。而數(shù)字電子技術(shù)課的教學(xué)內(nèi)容應(yīng)該緊密聯(lián)系現(xiàn)代電子技術(shù)的發(fā)展,注重適應(yīng)市場(chǎng)經(jīng)濟(jì)的需求,且教學(xué)內(nèi)容和教學(xué)手段都應(yīng)為各專業(yè)服務(wù),而要實(shí)現(xiàn)這一目的就可以借助FPGA 技術(shù)這一工具。
通信工程專業(yè)的學(xué)生在學(xué)習(xí)專業(yè)課的時(shí)候,極少有機(jī)會(huì)參加實(shí)際工程設(shè)計(jì),往往感到學(xué)校學(xué)到的理論知識(shí)很難與實(shí)際工程產(chǎn)品聯(lián)系起來。教科書上多是講解原理性的內(nèi)容,在實(shí)際產(chǎn)品設(shè)計(jì)時(shí),如何將這些理論及公式用具體的電路或硬件平臺(tái)實(shí)現(xiàn)出來,仍然是一個(gè)巨大的難關(guān)。學(xué)生雖然可以采用MATLAB 等軟件對(duì)通信工程專業(yè)的基本理論和算法,進(jìn)行直觀地驗(yàn)證其正確性,并查看仿真結(jié)果,但這類軟件的仿真畢竟只停留在算法或模型的仿真上,與真正的工程設(shè)計(jì)及實(shí)現(xiàn)是兩個(gè)完全不同的概念,F(xiàn)PGA 技術(shù)很好地解決了這一問題。FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL 等可編程器件的基礎(chǔ)上發(fā)展起來的產(chǎn)物。FPGA 技術(shù)本身就是基于工程應(yīng)用的技術(shù),其仿真技術(shù)可以很好地仿真產(chǎn)品實(shí)際的工作情況,尤其是時(shí)序仿真技術(shù),在計(jì)算機(jī)上通過了時(shí)序仿真的程序設(shè)計(jì),幾乎不再需要修改就可以直接應(yīng)用到工程中。這種設(shè)計(jì)、驗(yàn)證、仿真的一體化方式可以極好地將理論與工程實(shí)際結(jié)合起來[1]。
首先對(duì)數(shù)字電子技術(shù)課程進(jìn)行教學(xué)內(nèi)容的改革。把數(shù)字電子技術(shù)課程分成兩門課(《數(shù)字邏輯電路》和《數(shù)字電子電路》)進(jìn)行學(xué)習(xí)。在《數(shù)字邏輯電路》這門課中仍主要討論組合電路和時(shí)序邏輯電路的分析和設(shè)計(jì),使學(xué)生學(xué)習(xí)數(shù)字電子技術(shù)方面的基本知識(shí)?!稊?shù)字電子電路》部分除了講解門電路的基本工作原理、脈沖信號(hào)的產(chǎn)生與整形、半導(dǎo)體存儲(chǔ)器及A/D、D/A 的基礎(chǔ),還加入10 個(gè)學(xué)時(shí)左右的FPGA 技術(shù)內(nèi)容的講解。在FPGA 技術(shù)的教學(xué)內(nèi)容上,簡(jiǎn)要介紹FPGA的基本概念、發(fā)展歷程、硬件描述語言和開發(fā)環(huán)境。這里面重點(diǎn)說一下硬件描述語言的講解的注意事項(xiàng)。
硬件描述語言HDL 是FPGA 技術(shù)的重要組成部分,硬件描述語言主要用于編寫設(shè)計(jì)文件,在可編程邏輯器件PLD中建立電路模型。VHDL 和Verilog HDL 是目前兩種最常用的硬件描述語言。這兩種硬件描述語言都采用了一般計(jì)算機(jī)高級(jí)語言的語言形式和描述風(fēng)格。由于大多數(shù)院校的學(xué)生在學(xué)習(xí)“數(shù)字電子技術(shù)”課程之前都開設(shè)了C 語言課程,學(xué)生具有一定的C 語言編程能力。所以,在理論課教學(xué)中,要強(qiáng)調(diào)的不是語言的規(guī)范和格式,而是它不同于其他高級(jí)編程語言的幾個(gè)重要特征,下面分別介紹。
指導(dǎo)學(xué)生用并行和延時(shí)的概念來編寫HDL 語句。硬件描述語言HDL 是用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,因而必然存在一些硬件特征如并行和延時(shí)等。以圖為例來說明,在圖1 中,三個(gè)傳輸門在電路傳輸過程中具有同時(shí)傳輸?shù)奶攸c(diǎn),我們把這稱之為并行傳輸電路;同時(shí)在實(shí)際中,所有的門電路都有傳輸延時(shí)。因而,在描述圖1 所示的電路時(shí),用VHDL 語言中的并行賦值語句來體現(xiàn)各個(gè)門電路的并行特點(diǎn),用信號(hào)賦值語句來體現(xiàn)傳輸延時(shí),如圖2 所示[3]。
圖1 并行傳輸電路圖
圖2 并行傳輸語言描述
指導(dǎo)學(xué)生編寫具有記憶功能的程序。時(shí)序電路具有記憶功能,可以保存歷史數(shù)據(jù),因而硬件描述語言也有相應(yīng)的語句,即用進(jìn)程語句來表示記憶功能,僅以下面這段程序加以說明。從這段程序可以看出,它執(zhí)行的功能是在時(shí)鐘脈沖CLK 上升沿的作用下,電路可以記住y(t)、y(t-1)和y(t-2)時(shí)刻的值。其仿真圖如圖3 所示。從圖3 中可以得到,e 表示y 當(dāng)前時(shí)刻的值,即y(t),如14;e1 表示y 前一時(shí)刻的值,即y(t-1),如13;e2 表示y 再前時(shí)刻的值,即y(t-2),如12,這樣在電路的輸出端通過取得e、e1 和e2 三個(gè)值就可以獲得y(t)、y(t-1)和y(t-2)的值。
圖3 用進(jìn)程語句來表示記憶的功能仿真圖
指導(dǎo)學(xué)生用硬件電路的思想來編寫HDL,不要編寫出在實(shí)際中是不存在的電路。如果編寫出這樣的電路,程序在編譯過程中是不可綜合的。舉例說明,實(shí)際中,邊沿觸發(fā)器僅僅在時(shí)鐘脈沖沿的時(shí)候發(fā)生變化,在其他時(shí)刻保持不變。如果編寫出如下所示的程序,在進(jìn)行編譯的過程中是無法通過的。除了以上幾點(diǎn)需要注重外,還應(yīng)該對(duì)重點(diǎn)句型如進(jìn)程、信號(hào)和狀態(tài)機(jī)等進(jìn)行講解。
在實(shí)踐教學(xué)過程中利用多媒體教學(xué)環(huán)境,以具體實(shí)例詳細(xì)介紹了一款可編程邏輯器件的開發(fā)軟件及開發(fā)過程,包括設(shè)計(jì)文件的輸入、編譯、仿真及下載測(cè)試,使學(xué)生了解FPGA技術(shù)開發(fā)的過程。QuartusⅡ軟件是Altera 公司為開發(fā)其可編程邏輯器件而推出的專業(yè)軟件,是一款驗(yàn)證兼創(chuàng)新性軟
件[2]。
在實(shí)踐教學(xué)中,教師可以以QuartusⅡ軟件為例來講解FPGA 的設(shè)計(jì)過程。例如,在講解時(shí)序邏輯電路設(shè)計(jì)的時(shí)候,可以給出以下設(shè)計(jì)題目。
試設(shè)計(jì)一個(gè)兩臺(tái)電機(jī)控制電路,要求在按鈕k 按下后,第1 臺(tái)電機(jī)運(yùn)行6s 后,第2 臺(tái)電機(jī)開始運(yùn)行,當(dāng)?shù)? 臺(tái)電機(jī)運(yùn)行8 s 后,兩臺(tái)電機(jī)同時(shí)停止運(yùn)行[3]。該電機(jī)控制電路的原理框圖如圖4 所示。其中k 為啟動(dòng)按鈕、M1 為電機(jī)1 控制信號(hào)、M2 為電機(jī)2 控制信號(hào)、D[7..0]為定時(shí)器預(yù)置時(shí)間信號(hào)、td 為定時(shí)器時(shí)間到信號(hào)、t 為預(yù)置/定時(shí)控制信號(hào)[2]。
圖4 電機(jī)控制電路的原理框圖
根據(jù)題意,可以引導(dǎo)學(xué)生抽象得到該題目的狀態(tài)及狀態(tài)轉(zhuǎn)換圖。s 0 為初始狀態(tài),定時(shí)器預(yù)置時(shí)間為6 s,電機(jī)M1、M2 停止運(yùn)行,當(dāng)按鈕k=0 時(shí),轉(zhuǎn)移到狀態(tài)s1;s1 狀態(tài)時(shí),電機(jī)1 運(yùn)行,電機(jī)2 停止,定時(shí)器定時(shí)到6 s 后,轉(zhuǎn)移到狀態(tài)s2;s2 狀態(tài)時(shí),電機(jī)1 運(yùn)行,電機(jī)2 停止,定時(shí)器預(yù)置時(shí)間8 s,轉(zhuǎn)移到狀態(tài)s3;s3 時(shí),電機(jī)1 運(yùn)行,電機(jī)2 運(yùn)行,定時(shí)器定時(shí)到8 s 后,轉(zhuǎn)移到狀態(tài)s0。引導(dǎo)學(xué)生設(shè)計(jì)完?duì)顟B(tài)及狀態(tài)轉(zhuǎn)換圖后,可以直接在軟件上創(chuàng)建工程、創(chuàng)建文件、文本輸入及編譯和仿真。在軟件上得到該控制電路的時(shí)序仿真圖如圖5 所示。由仿真圖5 可以看出,該電機(jī)控制電路實(shí)現(xiàn)題目要求的邏輯功能。為了進(jìn)一步驗(yàn)證其正確性,通過下載測(cè)試可以觀察其運(yùn)行工程。
圖5 電機(jī)控制電路的仿真圖
從以上的例子可以看出,通過仿真波形可以直觀觀察到電路內(nèi)部的工作時(shí)序和競(jìng)爭(zhēng)冒險(xiǎn)等現(xiàn)象。選用具有可編程器件PLD 作為下載設(shè)計(jì)目標(biāo)文件的硬件平臺(tái),便于學(xué)生進(jìn)行下載調(diào)試和直觀觀察,達(dá)到了驗(yàn)證其設(shè)計(jì)的正確性的目的。
引入FPGA 技術(shù)要和本專業(yè)相聯(lián)系,更好地實(shí)現(xiàn)為專業(yè)服務(wù)的目的。
數(shù)字電子技術(shù)作為一門專業(yè)基礎(chǔ)課,其基礎(chǔ)理論知識(shí)以及分析方法和設(shè)計(jì)將為后續(xù)的專業(yè)課奠定一個(gè)良好的理論基礎(chǔ)。在引入FPGA 技術(shù)時(shí),通過引入與本專業(yè)相關(guān)的實(shí)例,更好地實(shí)現(xiàn)專業(yè)基礎(chǔ)課為專業(yè)服務(wù)的目的。
2011 年全國(guó)電子設(shè)計(jì)大賽E 題,要求設(shè)計(jì)一個(gè)簡(jiǎn)易數(shù)字信號(hào)傳輸性能分析儀,該題目中有一部分要求設(shè)計(jì)一個(gè)偽隨機(jī)信號(hào)發(fā)生器用來模擬信道噪聲,偽隨機(jī)序列是如同式1所示的M 序列。
M 序列是目前廣泛應(yīng)用的一種偽隨機(jī)序列,其在通信領(lǐng)域有著廣泛的應(yīng)用,如擴(kuò)頻通信、衛(wèi)星通信的碼分多址、數(shù)字?jǐn)?shù)據(jù)的加密、同步、誤碼率測(cè)量等領(lǐng)域。教師給出這個(gè)題目后,引導(dǎo)學(xué)生查閱M 序列相關(guān)的理論知識(shí),然后根據(jù)M 序列的原理編寫如下代碼,然后在軟件上得到該M 序列的時(shí)序仿真圖如圖6 所示。
圖6 M 序列的時(shí)序仿真圖
實(shí)踐表明,通過講解和本專業(yè)相結(jié)合的設(shè)計(jì)實(shí)例,可以使學(xué)生通過設(shè)計(jì)對(duì)專業(yè)知識(shí)有深入的理解。另外,該設(shè)計(jì)題目整體難度適中,具有一定的趣味性,可以進(jìn)行硬件的驗(yàn)證,加深學(xué)生對(duì)FPGA 技術(shù)和專業(yè)課程的理解和認(rèn)識(shí)。
數(shù)字電子技術(shù)基礎(chǔ)課是一門對(duì)于通信工程專業(yè)很重要的技術(shù)基礎(chǔ)課。通過把FPGA 技術(shù)引入到數(shù)字電子技術(shù)課程中,為學(xué)生提供了實(shí)踐創(chuàng)新平臺(tái),有利于激發(fā)學(xué)生的創(chuàng)新意識(shí),提高學(xué)生的工程能力,也更好地實(shí)現(xiàn)了數(shù)字電子技術(shù)課為專業(yè)課服務(wù)的目的。
[1]艾明晶.基于自動(dòng)設(shè)計(jì)方法的數(shù)字邏輯課程改革研究與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2012,28(2):151-155.
[2]夏路易.基于EDA 的電子技術(shù)課程設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.
[3]張丕狀,李兆光.基于VHDL 的CPLD/FPGA 開發(fā)與應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2009.