朱 棟 馮成濤
(常州大學(xué) 微電子與控制工程學(xué)院, 常州 213159)
電子設(shè)計(jì)自動化(EDA)技術(shù)及其課程設(shè)計(jì)通常為電子類專業(yè)本科學(xué)生的必修專業(yè)課程,該課程旨在讓學(xué)生掌握基本的硬件描述語言(HDL)的編程和FPGA應(yīng)用技術(shù)。相比于C語言類的高級語言編程,對于學(xué)生來說HDL編程入門較為困難,要求學(xué)生有邏輯門電路的編程思維和波形時序的概念。
FPGA在通信領(lǐng)域應(yīng)用廣泛,引入通信類的應(yīng)用案例,有利于激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生快速掌握FPGA的開發(fā)方式,并使學(xué)生加深對“數(shù)字信號處理”和“通信原理”等其他課程中重要知識點(diǎn)的理解。包秀榮[1]提出將EDA技術(shù)應(yīng)用在“數(shù)字電路”課程設(shè)計(jì)中,引導(dǎo)學(xué)生利用EDA工具設(shè)計(jì)數(shù)字電路系統(tǒng)。倪德克等[2]將ModelSim仿真工具應(yīng)用于數(shù)字電路設(shè)計(jì)中。覃永新等[3]將QDPSK調(diào)制系統(tǒng)的設(shè)計(jì)作為實(shí)例引入“EDA技術(shù)”的教學(xué)中,使學(xué)生在掌握EDA技術(shù)的同時加深對通信系統(tǒng)工作原理的理解。朱棟等[4]將以FPGA為核心處理器的數(shù)字式超聲波發(fā)生器作為案例,改革電子技術(shù)課程設(shè)計(jì)的案例化教學(xué)方式。吳迪等[5]將問題驅(qū)動教學(xué)法引入“EDA技術(shù)”實(shí)驗(yàn),以綜合設(shè)計(jì)作為核心問題反向設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)。丁家峰[6]基于DE2-115口袋實(shí)驗(yàn)室構(gòu)建了全新的培養(yǎng)模式,驗(yàn)證了新培養(yǎng)模式的有效性。本文中設(shè)計(jì)的基于無線光通信的網(wǎng)絡(luò)數(shù)據(jù)透傳實(shí)驗(yàn)涵蓋了網(wǎng)絡(luò)通信、光通信、數(shù)字通信等多種通信技術(shù),是一個多課程綜合化的應(yīng)用案例。
基于無線光通信鏈路的網(wǎng)絡(luò)數(shù)據(jù)實(shí)時透傳實(shí)驗(yàn)系統(tǒng)主要由上位計(jì)算機(jī)、FPGA處理板、LED收發(fā)模塊、光鏈路等單元組成,實(shí)驗(yàn)系統(tǒng)框圖如圖1所示。其中,FPGA是實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)實(shí)時透傳的核心處理器,實(shí)驗(yàn)的主要內(nèi)容是在FPGA上實(shí)現(xiàn)相關(guān)功能。FPGA可選用Altera公司的Cyclone IV系列的EP4CE6E22C8低成本器件。FPGA接收來自PHY芯片MII接口的4-bit并行網(wǎng)絡(luò)數(shù)據(jù),該數(shù)據(jù)為上位計(jì)算機(jī)通過以太網(wǎng)口發(fā)送的包含底層協(xié)議包頭的16進(jìn)制數(shù)據(jù),FPGA首先將4-bit并行數(shù)據(jù)轉(zhuǎn)成1-bit串行數(shù)據(jù)。其次,串行數(shù)據(jù)作為調(diào)制碼元加以適當(dāng)?shù)臄?shù)字調(diào)制驅(qū)動LED發(fā)射模塊,實(shí)現(xiàn)光信號的發(fā)射。光信號經(jīng)過無線光鏈路傳播至LED接收模塊,LED接收端將光信號轉(zhuǎn)變成電信號并進(jìn)行放大、濾波、電平比較等處理,整形成TTL電平數(shù)字信號并送至對端FPGA。對端FPGA再對數(shù)字信號進(jìn)行調(diào)解、串轉(zhuǎn)并等處理后還原成MII接口的4-bit并行網(wǎng)絡(luò)數(shù)據(jù)并發(fā)送至PHY芯片,最終送至對端上位計(jì)算機(jī),從而實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的透傳。對端上位計(jì)算機(jī)以同樣方式發(fā)送網(wǎng)絡(luò)數(shù)據(jù)至本端上位計(jì)算機(jī),以實(shí)現(xiàn)全雙工的網(wǎng)絡(luò)數(shù)據(jù)透傳實(shí)驗(yàn)。
圖1 實(shí)驗(yàn)系統(tǒng)組成框圖
上位計(jì)算機(jī)通過以太網(wǎng)口與FPGA處理板進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交互,上位機(jī)使用網(wǎng)絡(luò)調(diào)試助手等工具軟件實(shí)現(xiàn)UDP數(shù)據(jù)包的收發(fā)。普通的以太網(wǎng)口有10 M、100 M、1000 M三種連接速度,千兆PHY芯片可實(shí)現(xiàn)10 M/100 M/1000 M自適應(yīng)連接。PHY芯片是模數(shù)混合芯片,當(dāng)網(wǎng)絡(luò)連接為10 M/100 M時,PHY芯片的模擬端通過兩對差分線TPTX+/ 和TPRX+/ 與網(wǎng)口連接,PHY芯片數(shù)字端(即MII接口)與FPGA的普通IO連接。MII接口包括一組用于接收數(shù)據(jù)的端口(RXCLK、RXD[3:0]、RXDV)和一組用于發(fā)送數(shù)據(jù)的端口(TXCLK、TXD[3:0]、TXEN),以及一組用于配置PHY芯片內(nèi)部寄存器的雙線同步串行總線(MDC和MDIO)。RXCLK和TXCLK分別是數(shù)據(jù)RXD和TXD的同步時鐘,RXDV是接收數(shù)據(jù)有效的標(biāo)志信號,TXEN是發(fā)送數(shù)據(jù)有效信號,兩者都必須在發(fā)送/接收數(shù)據(jù)期間的第一個時鐘前沿之前置為高電平,如圖2所示。
(a)PHY芯片數(shù)據(jù)接收時序圖
(b)PHY芯片數(shù)據(jù)發(fā)送時序圖圖2 PHY芯片數(shù)據(jù)收發(fā)時序圖
本實(shí)驗(yàn)使用10 M/100 M/1000 M自適應(yīng)連接且具有RGMII標(biāo)準(zhǔn)接口的PHY芯片,如REALTEK公司的RTL8211F。當(dāng)網(wǎng)絡(luò)連接為10 M時,網(wǎng)絡(luò)數(shù)據(jù)無需進(jìn)行緩存,而直接將當(dāng)前的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行調(diào)制和發(fā)射,發(fā)射數(shù)據(jù)的數(shù)據(jù)率也為10 M,與網(wǎng)絡(luò)連接速率保持一致,從而實(shí)現(xiàn)基于數(shù)字邏輯電路的實(shí)時數(shù)據(jù)透傳。當(dāng)網(wǎng)絡(luò)連接為100 M/1000 M時,數(shù)據(jù)速率較高,此時要實(shí)現(xiàn)數(shù)據(jù)透傳必須使用響應(yīng)速度更高的激光收發(fā)模塊以替換LED收發(fā)模塊。而考慮到激光對人眼的危害,保證實(shí)驗(yàn)的安全性,此實(shí)驗(yàn)的光鏈路使用LED收發(fā)模塊,網(wǎng)絡(luò)連接設(shè)定為10 M速率。
針對光通信鏈路,調(diào)制解調(diào)方式有開關(guān)鍵控(OOK)、脈沖位置調(diào)制(PPM)、數(shù)字脈沖間隔調(diào)制(DPIM)等開/關(guān)類方式可選,其中DPIM方式的數(shù)據(jù)幀時長與原始數(shù)據(jù)幀時長不同,需先對一整包網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行完整緩存后再調(diào)制發(fā)送,無法實(shí)現(xiàn)嚴(yán)格意義上的實(shí)時數(shù)據(jù)透傳。DPIM的實(shí)現(xiàn)難度也更大,推薦學(xué)生主要使用OOK和PPM兩種調(diào)制方式。LED發(fā)射和接收采用紅外850 nm或940 nm波段的二極管作為傳感器,實(shí)驗(yàn)時應(yīng)盡量減小周圍環(huán)境可見光干擾。
FPGA是實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)實(shí)時透傳的核心處理器,FPGA收發(fā)網(wǎng)絡(luò)數(shù)據(jù)并控制光鏈路發(fā)射/接收光信號的處理過程如圖3所示。FPGA接收來自PHY芯片RGMII接口的4位并行數(shù)據(jù)時,先對并行數(shù)據(jù)進(jìn)行并轉(zhuǎn)串處理,串行碼可實(shí)現(xiàn)對光模塊發(fā)射的控制。以10 M網(wǎng)絡(luò)連接為例,10 M的串行網(wǎng)絡(luò)數(shù)據(jù)利用LED光鏈路的通斷實(shí)現(xiàn)信號的傳輸。
圖3 FPGA處理PHY數(shù)據(jù)的邏輯框圖
對RXD數(shù)據(jù)進(jìn)行并轉(zhuǎn)串時需要10 MHz時鐘,而10 MHz必須與2.5 MHz的并行數(shù)據(jù)時鐘相參,因此,RXD數(shù)據(jù)進(jìn)入FPGA后首先要進(jìn)行數(shù)據(jù)時鐘轉(zhuǎn)換,將來自PHY的數(shù)據(jù)時鐘RXCLK轉(zhuǎn)換成FPGA內(nèi)部的2.5 MHz。時鐘轉(zhuǎn)換的方法是使用FPGA片上雙端口RAM,RAM寫入時鐘使用RXCLK,而讀出時鐘使用FPGA內(nèi)部的2.5 MHz時鐘。
時鐘轉(zhuǎn)換、并轉(zhuǎn)串、數(shù)字調(diào)制所需的不同頻率時鐘,均統(tǒng)一由時鐘模塊FPGA片上PLL產(chǎn)生,以此保持各時鐘之間嚴(yán)格相參。數(shù)字信號處理中經(jīng)常會遇到多時鐘域的問題,不同頻率的時鐘由同一時鐘源輸出才不會引起多時鐘域信號處理過程中的競爭與冒險。片上PLL的輸入?yún)⒖紩r鐘則一般由FPGA處理板上的50 MHz晶振提供,而不能采用2.5 MHz的TXCLK,因?yàn)橛糜赑LL內(nèi)部的鑒相時鐘至少為10 MHz頻率的時鐘。
數(shù)字調(diào)制部分需考慮用于同步的幀頭波形、幀結(jié)束(空閑)波形、數(shù)據(jù)段調(diào)制方式等三個階段。由于網(wǎng)絡(luò)數(shù)據(jù)具有空閑期間,而LED發(fā)射單元通常需在空閑期間也需發(fā)射脈沖以維持其穩(wěn)定狀態(tài)。針對LED收發(fā)模塊,可考慮的調(diào)制方式為OOK、PPM等開關(guān)鍵控類方式。OOK調(diào)制方式相對實(shí)現(xiàn)簡單,直接將0/1串行數(shù)據(jù)作為碼元即可,但OOK調(diào)制的幀頭波形可能會與數(shù)據(jù)波形完全相同,從而引起幀頭的誤檢。針對網(wǎng)絡(luò)數(shù)據(jù)而言,此問題可忽略,因?yàn)镻HY層的UDP數(shù)據(jù)包均以連續(xù)6個0x50作為起始標(biāo)志。但在信號信噪比較低時,解調(diào)時仍然有可能將OOK的數(shù)據(jù)段判斷為幀頭波形。而PPM調(diào)制則不會出現(xiàn)這樣的問題,但實(shí)現(xiàn)PPM調(diào)制有一定難度。PPM調(diào)制是在一個碼元周期內(nèi),前低后高代表碼元為0,前高后低代表碼元為1。因此,本實(shí)驗(yàn)在數(shù)字調(diào)制部分的難度分為高低兩檔:OOK為低難度,PPM為高難度。若采用PPM調(diào)制方式,幀頭設(shè)計(jì)為一長脈沖(如350 ns)用于解調(diào)時數(shù)據(jù)位同步,幀結(jié)束或空閑期間波形為一短脈沖(如脈寬50 ns),即可實(shí)現(xiàn)幀頭波形、數(shù)據(jù)段波形、幀結(jié)束波形無任何沖突。假定空閑期間短脈沖的重復(fù)周期為400 ns,發(fā)射波形三個階段信號脈沖占空比對比如下:①幀頭波形占空比為87.5%;②PPM數(shù)據(jù)段占空比恒定為50%;③幀結(jié)束波形占空比為12.5%。這樣設(shè)計(jì)波形,可使三種波形兩兩之間特征差別最大,幀頭誤檢率最低。
在Quartus II 13開發(fā)環(huán)境中創(chuàng)建工程并完成編譯,Cyclone IV器件的片上資源使用情況如下:①邏輯單元(LEs)使用1429個;②寄存器(registers)使用1092個;③引腳(pins)使用18個;④鎖相環(huán)(PLL)使用1個;⑤為調(diào)試方便,在SignalTap調(diào)試工具中添加了多個關(guān)鍵信號,使得片上存儲器使用量為221,440 b。在采樣時鐘80 MHz情況下,幾個關(guān)鍵信號的SignalTap采集波形如圖4所示。其中,發(fā)射波形(ppm_out)采用PPM調(diào)制。
圖4 SignalTap工具中關(guān)鍵信號采集波形
由于本實(shí)驗(yàn)涉及信號的發(fā)射與接收,以及光鏈路的調(diào)試等工作,實(shí)驗(yàn)工作量較大,需學(xué)生組隊(duì)協(xié)作完成。實(shí)驗(yàn)室為每個學(xué)生團(tuán)隊(duì)提供2臺計(jì)算機(jī)、2塊Altera的Cyclone IV FPGA實(shí)驗(yàn)板(含下載器)、2套LED收發(fā)模塊(含放大器)、以及電源等輔助設(shè)備。計(jì)算機(jī)安裝Quartus開發(fā)工具、ModelSim仿真工具、網(wǎng)絡(luò)調(diào)試助手等軟件。作為實(shí)驗(yàn)的必選項(xiàng),每個團(tuán)隊(duì)?wèi)?yīng)完成信號并串與串并轉(zhuǎn)換、信號的調(diào)制與發(fā)射、光信號的接收與解調(diào)、以及各模塊的ModelSim或Waveform Editor仿真、SignalTap在線調(diào)試等基礎(chǔ)工作。SignalTap在線調(diào)試時需對網(wǎng)絡(luò)數(shù)據(jù)包格式進(jìn)行解析,獲取UDP數(shù)據(jù)包中的幀頭標(biāo)志、目標(biāo)IP地址和MAC地址、源IP地址和MAC地址等。發(fā)揮部分為實(shí)現(xiàn)串行數(shù)據(jù)的PPM調(diào)制與解調(diào),作為加分項(xiàng)。實(shí)驗(yàn)演示時使用網(wǎng)絡(luò)調(diào)試助手循環(huán)發(fā)送UDP數(shù)據(jù)包,查看接收端是否完整接收到數(shù)據(jù)包并且檢查發(fā)/收數(shù)據(jù)包個數(shù)是否一致。每個團(tuán)隊(duì)由3~4名學(xué)生組成,每隊(duì)在規(guī)定時間內(nèi)完成并撰寫實(shí)驗(yàn)報告,指導(dǎo)教師根據(jù)實(shí)驗(yàn)完成項(xiàng)、完成質(zhì)量、實(shí)驗(yàn)報告質(zhì)量給學(xué)生團(tuán)隊(duì)打分,發(fā)揮部分占總成績的15%~20%。
利用本實(shí)驗(yàn)建立達(dá)成度評價標(biāo)準(zhǔn),分為系統(tǒng)構(gòu)建能力、數(shù)字邏輯電路設(shè)計(jì)能力、軟件開發(fā)能力、網(wǎng)絡(luò)分析能力、文檔報告制作能力等五大項(xiàng)目,每項(xiàng)各占總達(dá)成度的20%。每一大項(xiàng)又有很多分項(xiàng),如系統(tǒng)構(gòu)建能力大項(xiàng)包括系統(tǒng)完整性、系統(tǒng)可行性、調(diào)制原理、通信鏈路等4個子項(xiàng),每個子項(xiàng)各占5%;數(shù)字邏輯電路設(shè)計(jì)能力大項(xiàng)包括HDL編程、IP調(diào)用、時序約束、層次化設(shè)計(jì)等4個子項(xiàng),每個子項(xiàng)各占5%;軟件開發(fā)能力大項(xiàng)包括Quartus應(yīng)用、SignalTap應(yīng)用、ModelSim應(yīng)用、其他工具等4個子項(xiàng),每個子項(xiàng)各占5%;網(wǎng)絡(luò)分析能力大項(xiàng)包括網(wǎng)絡(luò)模型的理解、UDP數(shù)據(jù)包幀結(jié)構(gòu)、MAC地址解析、CRC校驗(yàn)位解析等4個子項(xiàng),每個子項(xiàng)各占5%;文檔報告制作大項(xiàng)包括文檔的完整性、文檔的規(guī)范性、匯報、現(xiàn)場質(zhì)疑應(yīng)變等4個子項(xiàng),每個子項(xiàng)各占5%。最終,根據(jù)各個子項(xiàng)的得分,累計(jì)得出總達(dá)成度。另外,制作調(diào)查問卷,從學(xué)生那里得到對于本課程新案例實(shí)施過程的反饋意見,做到持續(xù)改進(jìn),使整個課程不斷優(yōu)化。
為提高電子類本科學(xué)生的FPGA應(yīng)用能力,設(shè)計(jì)了一套基于無線光通信的網(wǎng)絡(luò)數(shù)據(jù)實(shí)時透傳實(shí)驗(yàn)系統(tǒng)。學(xué)生可以利用該實(shí)驗(yàn)平臺對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行調(diào)制與解調(diào),以實(shí)現(xiàn)在光鏈路上的實(shí)時數(shù)據(jù)收發(fā)。該實(shí)驗(yàn)可以作為EDA技術(shù)課程的實(shí)驗(yàn)或者EDA課程設(shè)計(jì)的課題,可供3~4名學(xué)生協(xié)作完成,主要任務(wù)是通過編寫HDL代碼或編輯原理圖實(shí)現(xiàn)基于FPGA的網(wǎng)絡(luò)數(shù)據(jù)透傳,并完成實(shí)驗(yàn)報告。通過該實(shí)驗(yàn)的實(shí)踐,可加深學(xué)生對于數(shù)字通信、網(wǎng)絡(luò)通信等課程中相關(guān)知識點(diǎn)的理解,同時極大地提高學(xué)生的FPGA應(yīng)用能力。