張承暢, 龔昱文, 羅 元, 何 豐
(重慶郵電大學(xué) 重慶市電工電子實驗教學(xué)示范中心, 重慶 400065)
“數(shù)字電子技術(shù)基礎(chǔ)”是國內(nèi)高等學(xué)校電子信息類專業(yè)的基礎(chǔ)核心課程,具有較強的實踐性和工程性,對培養(yǎng)學(xué)生實踐和創(chuàng)新意識、打造一批適應(yīng)國際分工與合作的中國工程師有著十分重要的作用[1-3]。目前,數(shù)字電子技術(shù)基礎(chǔ)實驗的設(shè)置主要分基礎(chǔ)類、綜合類和課程設(shè)計類[4-6],基礎(chǔ)類實驗驗證課程章節(jié)內(nèi)容,帶有一定的設(shè)計性,所依托的實驗器材以中規(guī)模集成芯片為主,如74系列芯片[7]。綜合類實驗在內(nèi)容上包含跨章節(jié)的知識,若使用中規(guī)模芯片實現(xiàn),則需要多片配合使用,隨著現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)的普及應(yīng)用,綜合類實驗和課程設(shè)計類實驗往往均使用FPGA實現(xiàn)[8,9],所采用的實驗平臺為由FPGA實驗箱或開發(fā)板[10,11],在使用過程中,學(xué)生只需要弄清楚FPGA的管腳分配和FPGA程序配置流程,實驗設(shè)計的重點集中在FPGA的軟件設(shè)計與實現(xiàn),對于由FPGA芯片到系統(tǒng)實現(xiàn)的完整硬件、軟件一體化設(shè)計則很少涉及到。
近年來,以學(xué)校工程教育專業(yè)認證為契機,圍繞電子信息技術(shù)專業(yè)人才的培養(yǎng),持續(xù)、深入地進行實驗教學(xué)改革與創(chuàng)新[12-14]。在數(shù)字電子技術(shù)基礎(chǔ)實驗案例設(shè)計中,引導(dǎo)學(xué)生關(guān)注工程實際,以工程實現(xiàn)為目標,強調(diào)軟、硬件一體化設(shè)計和優(yōu)化。本設(shè)計屬課程設(shè)計類實驗,由FPGA芯片到FPGA系統(tǒng)開發(fā)板的硬件系統(tǒng)實現(xiàn)、所開發(fā)的FPGA系統(tǒng)實現(xiàn)序列信號發(fā)生器自啟動特性驗證為設(shè)計任務(wù),將學(xué)生軟、硬件設(shè)計能力培養(yǎng)與課程知識重、難點融合對接,突出實踐教學(xué),激發(fā)學(xué)生學(xué)習(xí)興趣,發(fā)掘?qū)W生實驗探究意識,提升課程建設(shè)和人才培養(yǎng)質(zhì)量[15]。
1.1.1實驗?zāi)康?/p>
這是一個數(shù)字電子技術(shù)中用FPGA設(shè)計通信領(lǐng)域常用的序列信號發(fā)生器的實驗案例,要求學(xué)生掌握數(shù)字設(shè)計中的軟、硬件設(shè)計及系統(tǒng)調(diào)試。需要綜合運用數(shù)字技術(shù)中的時序邏輯電路設(shè)計的基本方法、Verilog HDL/VHDL設(shè)計語言、Altium Designer原理圖和PCB圖設(shè)計、電子器件的選型、電路的測試等相關(guān)知識和方法。強調(diào)平時學(xué)習(xí)與工程實際相結(jié)合。
1.1.2實驗原理
(向上取整),由此確定2n個狀態(tài),其中N個狀態(tài)的循環(huán)構(gòu)成電路的有效循環(huán)。由于可編程邏輯芯片F(xiàn)PGA開機啟動時內(nèi)部觸發(fā)器的初始狀態(tài)均為0,即使序列中沒有出現(xiàn)n個全0的片段,電路的工作也從全0的狀態(tài)開始進入主循環(huán),因此,僅將2n-N個剩余狀態(tài)中的2n-N-1個非全0狀態(tài)作為偏離態(tài)。序列信號發(fā)生器的正常工作表現(xiàn)為N個有效狀態(tài)的循環(huán),一旦出現(xiàn)干擾,狀態(tài)脫離主循環(huán)進入偏離態(tài),其工作狀態(tài)分為:① 偏離態(tài)的自循環(huán),即系統(tǒng)不能自啟動;② 偏離態(tài)回到主循環(huán),即系統(tǒng)能夠自啟動。自啟動所需的時鐘周期數(shù)為m,則1≤m≤2n-N-1,定義m=2n-N-1為慢速自啟動,m=1為快速自啟動,其余1 (1) 設(shè)計FPGA硬件開發(fā)板。 (2) 結(jié)合原理圖和硬件描述語言在FPGA中設(shè)計給定序列信號發(fā)生器,給定序列111100010,用發(fā)光二極管直觀顯示狀態(tài)的循環(huán)過程。 (3) 能夠脫機演示序列信號發(fā)生器不能自啟動、慢速自啟動、中速自啟動、快速自啟動過程。 軟硬件一體化設(shè)計架構(gòu)如圖1所示。 圖1 軟硬件一體化設(shè)計框圖 硬件和軟件的設(shè)計是分開進行的,硬件設(shè)計通過分析FPGA的電源方案、管腳分布、配置及外圍接口等,形成設(shè)計電路,通過Altium designer軟件開發(fā)硬件原理圖和PCB圖,由PCB圖制作成PCB,完成電子元器件的焊接和調(diào)試,形成FPGA硬件電路板。軟件設(shè)計通過分析序列信號發(fā)生器功能,形成組合邏輯電路和時序邏輯電路實現(xiàn)的功能電路,該電路在ISE開發(fā)軟件環(huán)境中的實現(xiàn)方式可以是原理圖或者是硬件描述語言,開發(fā)好的程序經(jīng)過編譯和仿真生成可配置的文件。最后是程序文件的編程下載、軟硬件聯(lián)合測試和功能演示。 硬件系統(tǒng)結(jié)構(gòu)如圖2所示。 實驗選用XCV100TQ144作為序列信號發(fā)生器的邏輯器件,選擇其配置PROM芯片系列中的XCF32P,利用該芯片的多版本特性,可同時存儲4個配置文件,分別存儲不能自啟動、慢速自啟動、中速自啟動、快速自啟動等四種自啟動方案。用綠燈和紅燈分別指示有效循環(huán)狀態(tài)和偏離狀態(tài)。 選用Altium Designer軟件設(shè)計開發(fā)板電路原理圖和PCB圖,采用自頂向下的設(shè)計方法設(shè)計原理圖,PCB圖的設(shè)計通過手工布線完成。硬件系統(tǒng)包括電源、時鐘、FPGA、配置PROM、JTAG、顯示部分(紅、綠燈)和控制接口(含配置復(fù)位、狀態(tài)置位、狀態(tài)初值設(shè)置、版本選擇)等幾部分。 圖2 硬件結(jié)構(gòu)圖 完成設(shè)計、元件貼裝后的電路板如圖3所示。 電源選擇常用集成芯片1117-3.3/2.5/1.8,時鐘用有源晶體振蕩器,考慮有源晶體振蕩器的頻率都較高,F(xiàn)PGA內(nèi)部分頻后送給序列發(fā)生器作為工作時鐘,分頻后的頻率以使紅、綠燈的交替顯示能為人觀察到為原則,如1 Hz。 XCF32P設(shè)置為可存儲4個設(shè)計的多版本方案,其存儲結(jié)構(gòu)如圖4所示,4個版本的文件通過版本選擇控制信號sel1和sel0的取值組合選擇,其值00、01、10、11分別對應(yīng)REV0、REV1、REV2、REV3。 設(shè)計要求產(chǎn)生序列111100010,并脫機演示4種不同自啟動方案。給定序列長度為9,需用4個D觸發(fā)器構(gòu)成移位寄存器,4種自啟動方案狀態(tài)轉(zhuǎn)移關(guān)系如圖5~8所示,圖中用紅色代表偏離狀態(tài),綠色代表有效循環(huán)狀態(tài),全0狀態(tài)為系統(tǒng)上電/復(fù)位時初始狀態(tài),作為單獨狀態(tài)看待,程序設(shè)計采用原理圖/VHDL語言實現(xiàn)。 圖5 不能自啟動狀態(tài)轉(zhuǎn)移圖 圖6 慢速自啟動狀態(tài)轉(zhuǎn)移圖 圖7 中速自啟動狀態(tài)轉(zhuǎn)移圖 圖8 快速自啟動狀態(tài)轉(zhuǎn)移圖 (1) 不能自啟動。此種情況下,若出現(xiàn)偏離態(tài),則6種偏離狀態(tài)形成循環(huán),狀態(tài)無法回到主循環(huán)中,系統(tǒng)不能自啟動。 (2) 慢速自啟動。慢速自啟動情況下,系統(tǒng)能由偏離態(tài)回到主循環(huán)中,所需的最大時鐘周期數(shù)為6。 (3) 中速自啟動。中速自啟動情況下,系統(tǒng)能由偏離態(tài)回到主循環(huán)中,所需的最大時鐘周期數(shù)小于6。 (4) 快速自啟動??焖僮詥忧闆r下,無論出現(xiàn)哪一種偏離狀態(tài),系統(tǒng)由偏離態(tài)回到主循環(huán)中所需時鐘周期數(shù)均為1。 序列信號發(fā)生器程序設(shè)計流程如圖9所示。 程序設(shè)計的任務(wù)是用設(shè)計工具實現(xiàn)圖5~8的4種狀態(tài)轉(zhuǎn)移方案,采用原理圖/VHDL語言作為設(shè)計輸入,先后經(jīng)過編譯與綜合、功能仿真、布局布線、時序仿真等過程,生成配置文件。 圖9 程序設(shè)計流程 設(shè)計好的程序從上位機經(jīng)JTAG接口寫入XCF32P的4個存儲版本中,當系統(tǒng)復(fù)位時,通過判斷版本選擇控制信號sel1和sel0的不同邏輯組合值(見表1),將設(shè)計程序配置到FPGA中,通過LED燈觀察狀態(tài)的循環(huán)情況。 表1 配置程序?qū)?yīng)表 (1) 選用FPGA XCV100TQ144芯片,通過軟、硬件一體化的完整設(shè)計,實現(xiàn)較大程度的設(shè)計綜合和工程能力提升,所開發(fā)的FPGA硬件系統(tǒng),可用于其他實驗項目的設(shè)計,成為學(xué)生自己開發(fā)完成的FPGA口袋實驗室。 (2) 充分利用了XCF32P芯片的多版本特點,4個不同配置文件由上位機下載到XCF32P不同版本中,可不再依賴上位機完成重配置,方便課堂演示、同學(xué)交流。另外,通過4種不同自啟動方案的設(shè)計,觀察實驗現(xiàn)象,引導(dǎo)學(xué)生按照設(shè)計要求,優(yōu)化設(shè)計方案,如在最終實現(xiàn)方案選擇上,考慮項目背景的工程性,強調(diào)序列信號發(fā)生器的快速自啟動,即工程實現(xiàn)上的效率原則。1.2 實驗的內(nèi)容、任務(wù)
1.3 軟硬件一體化設(shè)計
2 FPGA硬件系統(tǒng)設(shè)計
3 軟件設(shè)計方案
3.1 自啟動方案設(shè)計
3.2 程序設(shè)計
3.3 程序配置
4 結(jié) 語