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