近年來,隨著經(jīng)濟(jì)的高速增長,無線通信得到了飛速地發(fā)展。由于擴(kuò)展頻譜信號具有抗干擾、保密、抗偵破和抗衰落等特點,擴(kuò)頻通信在軍事無線通信領(lǐng)域(如測控通信)中被廣泛應(yīng)用;隨著技術(shù)的成熟及成本的降低,其在民用通信市場上具有更廣大的發(fā)展前景。
本文首先介紹了FPGA的設(shè)計思想及流程,然后以一種擴(kuò)頻通信調(diào)制器為例,描述了如何實現(xiàn)自頂向下的設(shè)計:包括調(diào)制器的頂層設(shè)計、劃分的下一層基本單元的設(shè)計等,并重點分析了基本單元之一的PN碼產(chǎn)生器的設(shè)計實現(xiàn)及仿真驗證過程。
FPGA設(shè)計方法簡介
FPGA技術(shù)的飛速發(fā)展,對國內(nèi)的電子設(shè)計工程師提出了嚴(yán)峻的挑戰(zhàn),以往傳統(tǒng)的設(shè)計方法,如單純的原理圖輸入方法,已很難滿足目前的要求。設(shè)計人員必須采用高水準(zhǔn)的設(shè)計工具,如硬件描述語言(Verilog HDL)或語言與原理圖結(jié)合來進(jìn)行設(shè)計。
1 FPGA的設(shè)計思想
FPGA的設(shè)計思想一般采用自頂向下(Top-down)的設(shè)計,自頂向下的設(shè)計是從系統(tǒng)級開始的,把系統(tǒng)化分為基本單元,然后再把每個單元劃分為下一層次的基本單元,一直這樣做下去,直到可以直接用EDA元件庫里的元件來實現(xiàn)為止。
2 FPGA的設(shè)計流程
FPGA器件的設(shè)計一般可分為設(shè)計輸入、設(shè)計實現(xiàn)和編程三個設(shè)計步驟及相應(yīng)的功能仿真、時序仿真和器件測試三個設(shè)計驗證過程。
設(shè)計輸入:設(shè)計輸入有多種方式,目前最常用的有電路圖和硬件描述語言兩種。對于簡單的設(shè)計,可采用原理圖或ABEL語言設(shè)計。對于復(fù)雜的設(shè)計,可采用原理圖或行為描述語言(如VHDL語言),或者兩者混用,采用層次化設(shè)計方法,分模塊、分層次的進(jìn)行描述。軟件在設(shè)計輸入時,會檢查語法錯誤,生成網(wǎng)表文件,供設(shè)計實現(xiàn)和設(shè)計校驗用。
設(shè)計實現(xiàn):設(shè)計實現(xiàn)是指從設(shè)計輸入文件到位流文件的編譯過程。在該過程中,編譯軟件自動地對設(shè)計文件進(jìn)行綜合、優(yōu)化,并針對所選中的器件進(jìn)行映射、布局、布線,產(chǎn)生相應(yīng)的位流數(shù)據(jù)文件。
器件編程:器件編程就是將位流數(shù)據(jù)文件配置到相應(yīng)的FPGA器件中。
設(shè)計校驗:對應(yīng)于設(shè)計輸入、設(shè)計實現(xiàn)和器件編程的功能仿真、時序仿真、器件測試組成設(shè)計驗證的三個部分。功能仿真驗證設(shè)計的功能邏輯,在設(shè)計輸入過程中,對部分功能或整個設(shè)計均可進(jìn)行仿真。完成設(shè)計實現(xiàn)后進(jìn)行時序仿真,針對器件的布局、布線方案進(jìn)行時延仿真,分析定時關(guān)系。器件測試是在器件編程完成后進(jìn)行,通過實驗或借助于測試工具,測試器件最終功能和性能指標(biāo)。
擴(kuò)頻調(diào)制器的FPGA設(shè)計
本文介紹的一種擴(kuò)頻調(diào)制器,常應(yīng)用于測控通信領(lǐng)域。其信號形式是I、Q兩路正交信道上分別傳送擴(kuò)頻指令和測距碼,采用UQPSK調(diào)制,I、Q兩路的功率比為10:1,其信號的數(shù)學(xué)表達(dá)式如下:
式中:ω為載波頻率; PT為信號總功率;c(t)為指令碼;PNI為指令信道PN碼;PNQ為測距信道PN碼。PNI是碼長為210-1=1023的Gold碼,短碼;PNQ是碼長為218-28=261 888的18級截短碼,長碼;長短碼長之比為256。要求兩種碼起始同步,即當(dāng)長碼發(fā)生器經(jīng)過全“1”狀態(tài)時,短碼發(fā)生器也經(jīng)過它的全“1”狀態(tài)。
1 擴(kuò)頻調(diào)制器的頂層設(shè)計
擴(kuò)頻調(diào)制器的實現(xiàn)如圖1所示。FPGA的頂層設(shè)計見圖1的虛框部分,包括信息碼產(chǎn)生器及寄存器、碼鐘及PN碼產(chǎn)生器、載波產(chǎn)生器、0/π調(diào)制模塊等基本單元。下面以PN碼產(chǎn)生器為例介紹基本單元的設(shè)計。
圖1 擴(kuò)頻調(diào)制器實現(xiàn)框圖
2 基本單元的設(shè)計
PN碼產(chǎn)生器包括兩種:碼長分別為1023位的碼產(chǎn)生器及261 888位的截短碼產(chǎn)生器,初步的設(shè)計如圖2所示,PNMZ為碼鐘,產(chǎn)生RESET信號同時復(fù)位長、短碼產(chǎn)生器。
圖2 兩路PN碼的初步設(shè)計圖
Gold碼由兩路小M序列異或組成,下面介紹210-1位碼產(chǎn)生器的設(shè)計:
PN碼的本原多項式為:
初相 A:0010011100 B:1001001000
210-1位PN碼產(chǎn)生器的FPGA設(shè)計如圖3所示。pnmz為碼鐘輸入端;pnm_reset為PN碼的復(fù)位端;pnm為碼輸出端;q1為碼全“1”信號輸出端。當(dāng)復(fù)位脈沖信號來到后,移位寄存器在碼鐘推動下從設(shè)定的初值開始左移,左移移位寄存器的高位先出,產(chǎn)生小M序列。兩路小M序列異或產(chǎn)生PN碼。兩路比較器產(chǎn)生的信號相與后輸出全“1”信號。PN碼產(chǎn)生器劃分成的下一級基本單元,包括移位寄存器、比較器、與門、異或門,都可以直接用EDA元件庫里的元件。
圖3 210-1位PN碼發(fā)生器的FPGA設(shè)計圖
擴(kuò)頻調(diào)制器的FPGA仿真
工程上,F(xiàn)PGA的仿真類型可分為功能仿真和時序仿真(或稱前仿真和后仿真)。功能仿真是未經(jīng)布線和適配之前,使用原始設(shè)計綜合之后的文件進(jìn)行仿真。時序仿真,即將FPGA設(shè)計綜合之后,再由FPGA適配器(完成芯片內(nèi)自動布線等功能)映射于具體芯片后得到的文件進(jìn)行仿真。
本文選用QuartusII3.0集成的仿真工具進(jìn)行波形仿真。對設(shè)計的主要模塊在通過綜合之后,首先進(jìn)行功能仿真,驗證原始設(shè)計的正確性,驗證設(shè)計結(jié)果的邏輯功能是否符合原始規(guī)定的邏輯功能。通過功能仿真之后,在設(shè)計中考慮器件延時后,再進(jìn)行布局布線后的仿真,通過觀察波形和數(shù)據(jù),可驗證是否能滿足時序要求,是否能得到預(yù)期的值。
在設(shè)計過程中,作者針對主要的電路模塊進(jìn)行了仿真,包括:PN碼產(chǎn)生器、信息注入電路、并/串轉(zhuǎn)換電路等。下面介紹擴(kuò)頻調(diào)制器兩路PN碼產(chǎn)生器的仿真及設(shè)計改進(jìn)過程。
1 PN碼產(chǎn)生器的功能仿真
擴(kuò)頻調(diào)制器的兩路PN碼產(chǎn)生器,I路短碼的初相是“10,1101,0100”,Q路長碼的初相“00,0010,0000,1010,0100”(碼初相指兩路小M序列初相異或后的初值)。初始的設(shè)計見圖3。對設(shè)計綜合過后,進(jìn)行功能仿真。仿真結(jié)果說明:兩路PN碼起始同步,PNI起始相位:10,1101,0100;PNQ起始相位:00,0010,0000,1010,0100。原始設(shè)計符合要求。仿真結(jié)果如圖4所示。(PNMZ為碼鐘;RESET為復(fù)位信號;PNI、PNQ為I、Q兩路PN碼;QUANI、QIANQ為I、Q兩路PN碼全“1”信號。)
圖4 兩路PN碼的功能仿真圖
2 PN碼產(chǎn)生器的時序仿真
通過功能仿真之后,對設(shè)計進(jìn)行布局布線編譯,然后進(jìn)行時序仿真。發(fā)現(xiàn)可能會在PN碼序列中產(chǎn)生毛刺信號,并通過多次仿真發(fā)現(xiàn)復(fù)位信號也可能產(chǎn)生毛刺信號,導(dǎo)致I、Q兩路信號起始不同步,如圖5所示。
圖5 兩路PN碼的時序仿真圖
對電路進(jìn)行改進(jìn),將復(fù)位信號、PN碼信號、全“1”信號上加上D觸發(fā)器,用碼鐘打一次,消除電路毛刺。改進(jìn)后的電路如圖6所示。
圖6 改進(jìn)后的兩路PN碼設(shè)計圖
再次進(jìn)行時序仿真,發(fā)現(xiàn)毛刺消除,PN碼產(chǎn)生正常,說明兩路PN碼電路設(shè)計正確,可以作為經(jīng)驗證的基本單元加入擴(kuò)頻調(diào)制器的FPGA設(shè)計。
圖7 改進(jìn)后的PN碼時序仿真圖
結(jié)束語
本文介紹了一種擴(kuò)頻通信調(diào)制器的FPGA設(shè)計實現(xiàn)方法,著重說明了PN碼產(chǎn)生器的設(shè)計仿真過程,形象地闡述了FPGA自頂向下的設(shè)計思想及詳盡的設(shè)計流程。FPGA在無線通信工程領(lǐng)域的應(yīng)用已非常普遍,掌握一種好的設(shè)計方法對電子設(shè)計師們很重要,希望本文對讀者有所幫助。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602986 -
通信
+關(guān)注
關(guān)注
18文章
6024瀏覽量
135950 -
調(diào)制器
+關(guān)注
關(guān)注
3文章
840瀏覽量
45142
發(fā)布評論請先 登錄
相關(guān)推薦
評論