版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
精品文檔-下載后可編輯基于FPGA的任意波形發(fā)生器設(shè)計(jì)和實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用
波形發(fā)生器是一種數(shù)據(jù)信號發(fā)生器,在調(diào)試硬件時,常常需要加入一些信號,以觀察電路工作是否正常。用一般的信號發(fā)生器,不但笨重,而且只發(fā)一些簡單的波形,不能滿足需要。例如用戶要調(diào)試串口通信程序時,就要在計(jì)算機(jī)上寫好一段程序,再用線連接計(jì)算機(jī)和用戶實(shí)驗(yàn)板,如果不正常,不知道是通訊線有問題還是程序有問題。用E2000/L的波形發(fā)生器功能,就可以定義串口數(shù)據(jù)。通過邏輯探勾輸出,調(diào)試起來簡單快捷。任意波形發(fā)生器是目前電子測量儀器中發(fā)展為快速的產(chǎn)品之一。它既可輸出標(biāo)準(zhǔn)函數(shù)信號,也可以產(chǎn)生由用戶定義的非標(biāo)準(zhǔn)函數(shù)波形(任意波形)信號,并且有豐富的模擬調(diào)制(AM,FM,PM)和數(shù)字調(diào)制(FSK,PSK)功能,能為不同的應(yīng)用領(lǐng)域提供各種標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)信號,尤其在水下聲納、通信、雷達(dá)導(dǎo)航、電子對抗等裝備的研制、生產(chǎn)、維修中,是必不可少的信號發(fā)生器。
1任意波形發(fā)生器的FPGA實(shí)現(xiàn)
FPGA(Field-ProgrammableGateArray),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA.因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。
系統(tǒng)框架如圖1所示,上位機(jī)產(chǎn)生任意波形數(shù)據(jù),經(jīng)USB2.0控制器CY7C68013A與FPGA(現(xiàn)場可編程門陣列)相連。將數(shù)據(jù)到FPGA的RAM當(dāng)中,再通過硬件電路依次從波形存儲器中讀取出來,經(jīng)D/A轉(zhuǎn)換及濾波后得到所需信號波形輸出。
關(guān)于DDS的基本原理與結(jié)構(gòu)在這里就不再加以闡述,用FPGA按照DDS的基本原理和結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)一個任意波形發(fā)生器,所以DDS的幾個基本部分都是應(yīng)當(dāng)具備的。實(shí)現(xiàn)任意波形發(fā)生的關(guān)鍵在于把存放波形量化表的ROM換成了可以改寫的RAM,這樣通過與RAM的接口可以改變存放在波形RAM中的數(shù)據(jù)從而實(shí)現(xiàn)任意波形發(fā)生。這里主要介紹控制部分、相位累加器、波形RAM幾個模塊來敘述任意波形發(fā)生器的實(shí)現(xiàn)。
1.1控制部分
這個部分主要是要解決DDS模塊與單片機(jī)的接口問題。在FPGA的實(shí)現(xiàn)中,主要設(shè)計(jì)了2個模塊,一個是輸入寄存器模塊,為了接收單片機(jī)寫入的頻率控制字。另外一個是地址分配模塊,這樣單片機(jī)就可以通過不同的地址來選通FPGA各個模塊工作。設(shè)計(jì)中DDS采用了32位的相位累加器。這樣對于一個頻率控制字,單片機(jī)要分4次分別寫入4個字節(jié);基于這樣的要求,設(shè)計(jì)了輸入寄存器模塊如圖2,這個部分主要是要解決DDS模塊與單片機(jī)的接口問題。
din[70]是該模塊與單片機(jī)數(shù)據(jù)線的接口,clr是低電平異步清零,en是高電平使能,elk為數(shù)據(jù)寫入時鐘,dout[31O]是寄存器輸出的32位頻率控制字。該模塊工作過程為:當(dāng)en為高電平,clr也為高電平時,elk的上升沿將輸入的8位數(shù)據(jù)鎖存進(jìn)該模塊中,當(dāng)鎖存完4個字節(jié)的數(shù)據(jù)后,自動將該4個字節(jié)的數(shù)據(jù)按照先寫入的在高位的順序組合成一個32bit的數(shù)據(jù)輸出到dout[310].
該模塊的功能仿真圖如圖3所示,看到當(dāng)clr='1'并且en='1'時,經(jīng)過4個時鐘,dout上將前4個時鐘的值'00'、'01'、'02'、'03'組成32位的'00010203'數(shù)值輸出在dout上。
地址分配模塊采用一個3/8譯碼器來實(shí)現(xiàn)地址選通的功能,如圖4所示。
由于累加器的清零是當(dāng)"clr"=1的時候,所以在與門后加一個反相器,而頻率寄存器清零的條件是"clr"=0,所以,就可以直接與門后相連即可。3/8譯碼器的使能端接VCC,G2AN和G2BN連起來接CS,作為整個任意波形發(fā)生器模塊的片選信號,當(dāng)?shù)碗娖降臅r候選中,各模塊才開始工作。
地址鎖存模塊主要解決單片機(jī)P0口的分時復(fù)用問題。本設(shè)計(jì)選用的單片機(jī)為51系列單片機(jī),其PO口既作為數(shù)據(jù)口,又作為地址總線的低8位,因此在使用時,需要將地址信號從分時復(fù)用的地址/數(shù)據(jù)總線中分離出來。本設(shè)計(jì)選用8D鎖存器7415373來作為地址鎖存器。當(dāng)74LS373用作為地址鎖存器時,應(yīng)使OEN為低電平導(dǎo)通輸出,此時,鎖存使能端G為高電平時,輸出Q1~Q8狀態(tài)與輸入D1~D8狀態(tài)相同;當(dāng)G發(fā)生負(fù)跳變時,輸入端數(shù)據(jù)D1~D8鎖入Q1~Q8.因此在使用74LS373時,51單片機(jī)的ALE信號可以直接與74LS373的G相連。
1.2相位累加器設(shè)計(jì)
在運(yùn)算器中,累加器是專門存放算術(shù)或邏輯運(yùn)算的一個操作數(shù)和運(yùn)算結(jié)果的寄存器。能進(jìn)行加、減、讀出、移位、循環(huán)移位和求補(bǔ)等操作。是運(yùn)算器的主要部分。在中央處理器CPU中,累加器(accumulator)是一種暫存器,它用來儲存計(jì)算所產(chǎn)生的中間結(jié)果。如果沒有像累加器這樣的暫存器,那么在每次計(jì)算(加法,乘法,移位等等)后就必須要把結(jié)果寫回到內(nèi)存,然后再讀回來。然而存取主內(nèi)存的速度是比從數(shù)學(xué)邏輯單元(ALU)到有直接路徑的累加器存取更慢。
相位累加器用于對輸入頻率控制字進(jìn)行累加運(yùn)算,輸入頻率控制字決定輸出信號的頻率和頻率分辨率。因此相位累加器是整個DDS性能的關(guān)鍵部分。傳統(tǒng)的相位累加器是用1個加法器加1個D觸發(fā)器組成,調(diào)用其中的1個宏模塊設(shè)置成32位數(shù)據(jù)相加,再加另一個32位的宏模塊,就可以組成相位累加器。它在QuartusII軟件中的編譯頻率只有262.12MHz,顯然不能滿足設(shè)計(jì)要求。其時序仿真如圖5所示。
通過仿真,當(dāng)直接采用32bit累加器的時候系統(tǒng)時鐘只能達(dá)到大約25MHz,顯然是達(dá)不到要求的。從設(shè)計(jì)上看,它實(shí)質(zhì)上是一個帶反饋的32位加法器,把輸出數(shù)據(jù)作為另一路輸入數(shù)據(jù)和從單片機(jī)傳來的頻率控制連續(xù)相加,產(chǎn)生有規(guī)律的32位相位地址碼。一般位數(shù)小的累加器可以通過FPGA中的進(jìn)位鏈得到快速高效的電路,但是進(jìn)位鏈必須位于臨近的LE(邏輯單元)或LAB(邏輯陣列塊)中,長的進(jìn)位鏈會減少供其他邏輯使用的布線資源,同時過長的進(jìn)位鏈也會制約系統(tǒng)頻率的提高,所以進(jìn)位鏈不能太長。因此,在相位累加器的設(shè)計(jì)中,要解決的難題是設(shè)法提高工作速度。為了解決速度難題,需從兩個方面進(jìn)行改進(jìn)。
1.2.1改進(jìn)的流水線結(jié)構(gòu)
在時序電路設(shè)計(jì)中為了提高速度,流水線結(jié)構(gòu)是一種常用的設(shè)計(jì)方法。對于累加器來講,流水線結(jié)構(gòu)就是把一個位數(shù)很長的加法拆分成N個位數(shù)較短的加法,在N個時鐘周期內(nèi)做完然后輸出運(yùn)算結(jié)果,N就是流水線的級數(shù)。采用流水結(jié)構(gòu)以后由于加法器的字長變短了,對于FPGA來講加法器字長變短對工作頻率的提高是相當(dāng)可觀的。當(dāng)然,流水結(jié)構(gòu)的使用并不能無限制地提高電路的工作速度。因此對于不同的器件來說,采用多少級流水對性能的提升比較大這個要經(jīng)過仿真實(shí)驗(yàn)才能得到一個比較肯定的值。
本文運(yùn)用流水線結(jié)構(gòu)對相位累加器進(jìn)行設(shè)計(jì),當(dāng)m=8、n=4的情況下,相位累加器的工作頻率是的,達(dá)到了約70MHz.但是為了進(jìn)一步提高工作頻率,還需要結(jié)合下面的并行進(jìn)位方法。
1.2.2并行進(jìn)位加法器
加法器是產(chǎn)生數(shù)的和的裝置。加數(shù)和被加數(shù)為輸入,和數(shù)與進(jìn)位為輸出的裝置為半加器。若加數(shù)、被加數(shù)與低位的進(jìn)位數(shù)為輸入,而和數(shù)與進(jìn)位為輸出則為全加器。常用作計(jì)算機(jī)算術(shù)邏輯部件,執(zhí)行邏輯操作、移位與指令調(diào)用。在電子學(xué)中,加法器是一種數(shù)位電路,其可進(jìn)行數(shù)字的加法計(jì)算。在現(xiàn)代的電腦中,加法器存在于算術(shù)邏輯單元(ALU)之中。加法器可以用來表示各種數(shù)值,如:BCD、加三碼,主要的加法器是以二進(jìn)制作運(yùn)算。由于負(fù)數(shù)可用二的補(bǔ)數(shù)來表示,所以加減器也就不那么必要。
DDS累加器電路的設(shè)計(jì)采用了流水線結(jié)構(gòu),由8級4位加法器完成對32位控制字的累加。32位累加器的結(jié)果在送入相位幅度變化電路時,進(jìn)行了高位截斷,只取高12位數(shù)據(jù)進(jìn)行查表。因而,在8級的流水線結(jié)構(gòu)中,前5級4位加法器實(shí)際上只貢獻(xiàn)了進(jìn)位,在設(shè)計(jì)時,前4級加法器采用了超前進(jìn)位鏈,而高位加法器不僅要給出進(jìn)位值,還要獲得加法的結(jié)果,因此采用了QuartusII自帶的宏模塊結(jié)構(gòu)。通過每一位的Pi、Gi和Ci-1值很容易求得該位進(jìn)位值Ci.再與該位的和(Ai+Bi)相異或就得到的結(jié)果Si.即
采用上述結(jié)構(gòu),極大地提高了累加器的工作速度,其功能仿真圖如圖6所示,從圖中可以看出,此4bit超前進(jìn)位加法器完全滿足4位全加器的邏輯功能。
下面就將前5級采用超前進(jìn)位加法器的32位累加器和宏模塊中調(diào)用的4位全加器組成的32位相位累加器性能進(jìn)行比較。
普通流水線累加器的模塊是由4位D觸發(fā)器,5位D觸發(fā)器和4位全加器作為基本元件,采用原理圖輸入的方法設(shè)計(jì)FPGA的流水線累加器。該模塊的設(shè)計(jì)參照流水線累加器結(jié)構(gòu)進(jìn)行,不同之處在于:由于相位累加器只用高位尋址,所以低位上為了和高位結(jié)果同時輸出而做延時作用的D觸發(fā)器件均被去掉了。這樣做的結(jié)果是,相位累加器輸出的低20位會因?yàn)樘崆拜敵龆靵y,但是由于高12位的輸出一定是正確的,這樣做既節(jié)省了資源,對結(jié)果又沒有任何影響。仿真結(jié)果證明假如不用流水線結(jié)構(gòu),32bit相位累加器工作頻率達(dá)到約25MHz.消耗的資源是82個LEs,而用了8級流水線結(jié)構(gòu)后,編譯工作頻率達(dá)到了約317.79MHz,資源消耗為186個LEs.可見在資源上的消耗換來了在性能上的極大提高。
流水線累加器的時序仿真如圖7所示:可以看出當(dāng)輸入數(shù)據(jù)確定后,輸出結(jié)果要經(jīng)過8個時鐘周期的延時后輸出,這是因?yàn)椴捎昧?級流水結(jié)構(gòu)。采用多少級流水結(jié)構(gòu),輸出就會延時多少個周期。同時也說明,對于輸入數(shù)據(jù)切換來說,該系統(tǒng)會有8個時鐘周期的延時,這是累加器采用流水線結(jié)構(gòu)所不可避免的后果。事實(shí)上目前許多DDS專用芯片由于也采用流水線結(jié)構(gòu),所以本身也存在這樣的問題。由于8個時鐘周期的延時與系統(tǒng)時鐘相比,實(shí)際上還是很小的,在一般的應(yīng)用場合下也是可以接受的。由于輸出的低20位未用,被省略了,只用了輸出的高12位,所以仿真波形中只有高12位的輸出結(jié)果。從輸出結(jié)果來看,高12位的輸出值是沒有錯誤的,與設(shè)計(jì)思想吻合。
下面介紹超進(jìn)位流水線累加器的構(gòu)成,比較流水線累加器內(nèi)部結(jié)構(gòu)圖和超前進(jìn)位加法器的32位相位累加器的結(jié)構(gòu)圖,可以看出兩個圖的區(qū)別,經(jīng)過編譯以后的如圖8所示,可以看出經(jīng)過改進(jìn)后,編譯的工作頻率提高到了336.7MHz.比單純的流水線累加器提高了將近20MHz.
圖9是其時序仿真圖,從圖上可以看出,其值完全和功能仿真一致。
1.3雙口RAM設(shè)計(jì)
雙口RAM是在一個SRAM存儲器上具有兩套完全獨(dú)立的數(shù)據(jù)線、地址線和讀寫控制線,并允許兩個獨(dú)立的系統(tǒng)同時對該存儲器進(jìn)行隨機(jī)性的訪問。即共享式多端口存儲器。雙口RAM的特點(diǎn)是存儲數(shù)據(jù)共享。一個存儲器配備兩套獨(dú)立的地址、數(shù)據(jù)和控制線,允許兩個獨(dú)立的CPU或控制器同時異步地訪問存儲單元。因?yàn)閿?shù)據(jù)共享,就必須存在訪問仲裁控制。內(nèi)部仲裁邏輯控制提供以下功能:對同一地址單元訪問的時序控制;存儲單元數(shù)據(jù)塊的訪問權(quán)限分配;信令交換邏輯(例如中斷信號)等。雙口RAM可用于提高RAM的吞吐率,適用于作于實(shí)時的數(shù)據(jù)緩存。
在設(shè)計(jì)波形存取電路時,首先應(yīng)確定波形RAM的深度和字長。波形RAM的深度和字長與很多因素有關(guān)系。存儲器內(nèi)部存儲的是一個或N個整周期的標(biāo)準(zhǔn)波形數(shù)據(jù),存儲器容量越大,存儲的被采樣波形點(diǎn)數(shù)就越多,采樣效果就越好。存儲器的讀取速度是產(chǎn)生高頻波形的重要保證,讀取速度必須滿足相位累加器的累加速度,這樣才能保證直接數(shù)字合成過程的正常進(jìn)行。同時,為了保證整個速度的同步性,選用一種同步RAM也是很必要的。
首先要確定波形RAM的深度和字長,由于任意波形發(fā)生器設(shè)計(jì)中選擇的DAC的字長是12位,很明顯波形RAM的字長也應(yīng)該是12位;由于選擇的地址線位數(shù)為12位(即相位累加器輸出的高12位),尋址空間為4K(4096)個單元,即RAM存儲空間應(yīng)為4096x12bit=49152bits,由于本設(shè)計(jì)所選擇的FPGA內(nèi)部RAM可配置為119808bits,完全可以滿足49152bits的RAM空間設(shè)計(jì)。所以波形RAM設(shè)計(jì)為字長12位,地址線12位。針對任意波形發(fā)生器與普通DDS的不同,波形RAM的設(shè)計(jì)主要要求RAM具有讀寫兩個端口,這樣可以通過兩套地址系統(tǒng),方便地進(jìn)行RAM內(nèi)容更新,即對RAM的寫操作;波形幅度量化數(shù)據(jù)的輸出,即對RAM的讀操作。結(jié)合ALTERA公司FPGA的特點(diǎn),選擇了EP2C5F256C6這個芯片內(nèi)部的雙口RAM來實(shí)現(xiàn)這個功能,如圖lO所示。
芯片內(nèi)部的雙口RAM具有讀地址和寫地址兩組地址線,數(shù)據(jù)線也分成了讀數(shù)據(jù)線和寫數(shù)據(jù)線兩組。這樣波形RAM的設(shè)計(jì)就非常簡單了,將寫數(shù)據(jù)線、寫地址線和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)紅人合作模式-洞察分析
- 音樂教育的創(chuàng)新與實(shí)踐-洞察分析
- 2025年冀少新版八年級數(shù)學(xué)上冊月考試卷含答案
- 2025年滬科版九年級生物下冊階段測試試卷
- 2025年新世紀(jì)版七年級地理下冊月考試卷含答案
- 偽影技術(shù)在無損檢測-洞察分析
- 脫硫系統(tǒng)自動化改造-洞察分析
- 2025年滬科版七年級生物上冊月考試卷
- 二零二五年度貨物及服務(wù)采購合同3篇
- 2025年度鋁合金電梯部件加工與安裝服務(wù)合同4篇
- 副廠長競聘演講稿
- 高二物理題庫及答案
- 2024年河北省廊坊市廣陽區(qū)中考一模道德與法治試題
- 電影項(xiàng)目策劃書
- 產(chǎn)業(yè)園區(qū)金融綜合服務(wù)創(chuàng)新藍(lán)皮書(2024.1)
- 高一數(shù)學(xué)單元練習(xí)卷
- 國際標(biāo)準(zhǔn)IQ測試題及答案樣本
- 美容院管理制度章程
- 職業(yè)發(fā)展展示園林
- 統(tǒng)編版六年級下冊語文1-6單元習(xí)作課件
- 社會安全風(fēng)險評估模型的研究
評論
0/150
提交評論