《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種基于Spartan3E的DDS優化設計
一種基于Spartan3E的DDS優化設計
藍 天,張金林
摘要: 在高可靠應用領域,如果設計得當,將不會存在類似于MCU的復位不可靠和PC可能跑飛等問題。CPLD/FPGA的高可靠性還表現在,幾乎可將整個系統下載于同一芯片中,實現所謂片上系統,從而大大縮小了體積,易于管理和屏蔽。所以,本文將在對DDS的基本原理進行深入理解的基礎上,采用多級流水線控制技術對DDS的VHDL語言實現進行優化,同時考慮到系統設計中的異步接口的同步化設計問題,把該設計適配到Xilinx公司的最新90nm工藝的Spartan3E系列的FPGA中。
關鍵詞: FPGA DDS Spartan3E
Abstract:
Key words :

在高可靠應用領域,如果設計得當,將不會存在類似于MCU的復位不可靠和PC可能跑飛等問題。CPLD/FPGA的高可靠性還表現在,幾乎可將整個系統下載于同一芯片中,實現所謂片上系統,從而大大縮小了體積,易于管理和屏蔽。所以,本文將在對DDS的基本原理進行深入理解的基礎上,采用多級流水線控制技術對DDS的VHDL語言實現進行優化,同時考慮到系統設計中的異步接口的同步化設計問題,把該設計適配到Xilinx公司的最新90nm工藝的Spartan3E系列的FPGA中。

  1 DDS基本原理及工作過程

  一個基本的DDS由相位累加器、波形存儲器ROM、D/A轉換器和低通濾波器組成,如圖1所示。

  

DDS基本組成模塊

 

  在圖1中,fc為時鐘頻率,K為頻率控制字(N位),m為ROM地址線位數,n為ROM數據線寬度(一般也為D/A轉換器的位數),f0為輸出頻率。DDS的基本工作過程如下:每來一個時鐘脈沖fc,加法器將頻率控制字K與累加寄存器輸出的累加相位數據相加,把相加后的結果送至累加寄存器的數據輸入端。其中相位累加器由N位加法器與N位累加寄存器級聯構成,累加寄存器將加法器在上一個時鐘脈沖作用后所產生的新相位數據反饋到加法器的輸入端,以使加法器在下一個時鐘脈沖的作用下繼續與頻率控制字相加。這樣,相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加。由此可見,相位累加器在每一個時鐘脈沖輸入時,把頻率控制字累加一次,相位累加器輸出的數據就是合成信號的相位,相位累加器的溢出頻率就是DDS輸出的信號頻率。用相位累加器輸出的數據作為波形存儲器ROM的相位取樣地址,可把存儲在波形存儲器內的波形抽樣值(二進制編碼)經查找表查出,完成相位到幅值轉換。波形存儲器的輸出送到D/A轉換器,D/A轉換器將數字量形式的波形幅值轉換成所要求合成頻率的模擬量形式信號,由低通濾波器濾除雜散波和諧波以后,輸出一個頻率為f0的正弦波。輸出頻率f0與時鐘頻率fc之間的關系滿足下式:

  

 

  由式(1)可見,輸出頻率f0由fc和K共同決定,保持時鐘頻率一定,改變一次K值,即可合成一個新頻率的正弦波。DDS的最小輸出頻率(頻率分辨率)△f可由方程△f=f0/2N確定。可見,頻率分辨率在fc固定時,取決于相位累加器的位數N。只要N足夠大,理論上就可以獲得足夠高的頻率分辨精度。另外,由采樣定理,合成信號的頻率不能超過時鐘頻率的一半,即f0≤f0/2,因此頻率控制值的最大值Kmax應滿足Kmax≤2N-1。

  2 DDS的優化設計與實現

  采用VHDL硬件描述語言實現整個電路,不僅利于設計文檔的管理,而且方便了設計的修改和擴充,還可以實現在不同FPGA器件[4]之間的移植。以下采用VHDL語言,探討對FPGA實現DDS電路的三點優化方法。

  2.1 流水線累加器

  在用FPGA設計DDS電路時,相位累加器是決定DDS電路性能的一個關鍵部分。為使輸出波形具有較高的分辨率,本系統采用32位累加器。但若直接用32位加法器構成累加器,則加法器的延時會大大限制累加器的操作速度。因此,這里引入了流水線算法,即采用4個8位累加器級聯結構,每級用一個8位累加器實現該部分相位相加,然后將進位值傳給下一級做進一步累加。這樣可大幅提高系統的工作速度。但由于累加器是一個閉環反饋電路,因此必須使用寄存器,以保證系統的同步、準確運行。具體實現如圖2所示。

  

流水累加器原理

 

  2.2 相位/幅度轉換電路

  相位/幅度轉換電路是DDS電路中的另一個關鍵部分,設計中面臨的主要問題就是資源的開銷。該電路通常采用ROM結構,相位累加器的輸出是一種數字式鋸齒波,通過取它的若干位作為ROM的地址輸入,而后通過查表和運算,ROM就能輸出所需波形的量化數據。考慮到正弦函數的對稱性:在[0,2π]內,正弦函數關于x=π成奇對稱,在[0,π]內,關于x=π/2成軸對稱。因此,在正弦查找表中只須存儲相位在[0,π/2]的函數值。這樣,通過一個正弦碼表的前1/4周期就可以變換得到整個周期碼表,節省了近3/4的資源,非常可觀。具體實現如表1所示,為節省ROM資源,取相位累加器輸出的高8位做為ROM的輸入地址,其中最高位(MSB)控制對輸出信號符號的處理,次高位(MSB-1)控制對輸入地址的處理。

  

當MSB-1為‘0’(一,三象限)時,對查找地址phase(5...0)不做任何處理;當其為‘1’(二,四象限)時,對phase(5...0)取反。ROM的輸出為10位數據,其中最高位為符號位。當MSB為‘0’(一,二象限)時,輸出信號符號位為‘0’,低9為ROM中的幅度數據;當其為‘1’(三,四象限)時,輸出信號符號位為‘1’,低9位為ROM中的幅度數據的相反數的補碼。ROM的VHDL實現的主要部分如下:

 

  architecture Behavioral of rom is

  signal sin:STD_LOGIC_VECTOR(8 downto 0);

  signal temp:STD_LOGIC_VECTOR(5 downto 0);

  begin

  temp<=phase when MSB-1=′0′ else

  not phase;

  process(temp)

  begin

  case temp is

  when ″000000″=>

  sin<=″000000000″;

  …… --正弦查找表由MATLAB生成

  end case;

  end process;

  data_out<=″0″ & sin when MSB=′0′ else

  ″1″ & not sin+″000000001″;

  end Behavioral;

  2.3 同步接口電路設計

  在使用DDS時,需要為其提供頻率控制字K的值,一般通過中央控制單元MCU來完成,其以數據總線及寫時鐘信號的方式與FPGA內的DDS實體進行通訊,同時DDS在FPGA內部又是在本地時鐘fc驅動下運行。由于MCU的寫時鐘和FPGA內的本地時鐘異步,兩者之間進行通訊難免存在數據不穩等問題,特別是在通訊速度較高時,這一異步接口問題會更加突出。為了實現異步接口的同步化,本文提出了如圖3所示的接口同步電路。

  

異步接口同步處理電路

3 硬件實現及仿真結果

 

  本文使用VHDL 語言對各個模塊及DDS系統進行描述。頂層文件如下所示:

  Entity dds is

  Port(reset:in std_logic;--全局復位信號

  fre:in std_logic_vector(7 downto 0);

  --頻率控制字輸入

  clk:in std_logic;

  --系統時鐘

  fwwrn:in std_logic;      --頻率控制字寫信號

  gen:in std_logic_vector(0 downto 0);--波形控制字

  amp_out:out std_logic_vector(9 downto 0));

  --正弦波幅度輸出

  end dds;

  architecture Behavioral of dds is

  component fcwld--接口同步模塊

  Port(reset:in std_logic;

  clk:in std_logic;

  fre:in std_logic_vector(7 downto 0);

  fwwrn:in std_logic;

  syncfreq:out std_logic_vector(31 downto 0));

  --合成頻率控制字

  end component;

  component accumulator        --流水線累加器塊

  Port(reset:in STD_LOGIC;

  clk:in STD_LOGIC;

  syncfreq:in STD_LOGIC_VECTOR(31 downto 0);

  phase:out STD_LOGIC_VECTOR(7 downto 0));

  --相位高八位輸出

  end component;

  component rom--波形存儲器模塊

  Port(phase:in STD_LOGIC_VECTOR(7 downto 0);

  gen:in STD_LOGIC_VECTOR(0 downto 0);

  amp_out:out STD_LOGIC_VECTOR(9 downto 0));

  end component;

  為了對DDS進行評估,將以上設計在Xilinx公司的開發軟件中進行了設計及優化,目標器件為其最新的90nm工藝器件Spartan3E中最小器件XC3S100E-4VQ100C,該設計所占用的FPGA資源如表2所示。

  

 

  由表2可以看出,本文給出的DDS設計占用資源很少,由于XC3S100E的市場價格在2美金左右,故本設計所占的硬件成本可以縮減到0.2美金左右。同時在ISE8.2中該設計的系統時鐘最大達到159.6MHz。以上的設計性能幾乎和現有的專用芯片相當,但成本下降很多。

  為了進一步驗證本文給出的DDS設計系統在功能和時序上的正確性,對其進行了時序仿真,使用的仿真軟件為Modelsim6.1。仿真結果表明,該DDS系統可以運行在較高的工作頻率下。

  本文在對DDS的基本原理進行深入理解的基礎上,通過采用三種優化與設計技術:(1)使用流水線累加器在不過多增加門數的條件下,大幅提高了芯片的工作速度;(2)壓縮成正弦查找表,在保證芯片使用精度的情況下減少了近3/4面積,大大節約了ROM的容量。(3)采用同步接口電路設計方案,消除了系統的接口不穩定性。同時使用VHDL語言實現了優化,并把該設計適配到Xilinx公司的最新90nm工藝的Spartan3E系列的FPGA中,實際結果表明了本文給出的DDS設計方案在硬件開銷方面的優勢。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久99在线观看| 欧美一区网站| 欧美视频中文字幕| 美女精品在线观看| 欧美一级专区免费大片| 亚洲精品在线免费| 久久精品av麻豆的观看方式| 亚洲无线一线二线三线区别av| 亚洲国产精品久久人人爱蜜臀| 国产亚洲欧美aaaa| 国产精品一区二区久久精品| 欧美日韩一区二区三区高清| 欧美成人中文字幕| 久久一区欧美| 久久久亚洲国产天美传媒修理工| 亚洲影视中文字幕| 在线视频精品一区| 亚洲电影在线| 久久av一区| 欧美资源在线| 欧美一区二区三区四区夜夜大片| 亚洲一区二区三区欧美| 一区二区高清在线观看| 亚洲精选一区二区| 亚洲精品乱码久久久久久日本蜜臀| 在线日韩视频| 伊人精品在线| 亚洲丁香婷深爱综合| 黄色成人av| 尤妮丝一区二区裸体视频| 国产在线精品一区二区中文| 国产亚洲免费的视频看| 国产一区二区三区日韩| 国产在线观看一区| 国内精品免费在线观看| 黑人极品videos精品欧美裸| 国产自产精品| 伊人一区二区三区久久精品| 亚洲国产视频直播| 亚洲精品一区二区三区av| 亚洲日产国产精品| 日韩一级视频免费观看在线| 99亚洲精品| 在线亚洲欧美视频| 亚洲天堂av图片| 午夜精品一区二区三区电影天堂 | 亚洲一区二区综合| 亚洲欧美日韩天堂一区二区| 欧美怡红院视频| 久久精品免费播放| 亚洲精品美女在线| 亚洲一区黄色| 久久激情网站| 男女av一区三区二区色多| 欧美金8天国| 国产精品捆绑调教| 国产一区二区三区最好精华液| 在线观看日韩www视频免费| 亚洲欧洲视频| 亚洲视频网在线直播| 午夜视黄欧洲亚洲| 亚洲欧洲精品一区二区三区波多野1战4| 日韩一级精品| 午夜精品理论片| 老鸭窝毛片一区二区三区| 欧美剧在线免费观看网站| 欧美午夜a级限制福利片| 国产日韩欧美在线一区| 亚洲国产精品ⅴa在线观看| 亚洲免费观看高清完整版在线观看熊| 亚洲一区视频| 亚洲老司机av| 欧美在线free| 欧美顶级少妇做爰| 欧美另类69精品久久久久9999| 国产精品久久久久秋霞鲁丝| 狠狠色2019综合网| 日韩一级免费观看| 欧美中文字幕第一页| 一区二区久久| 久久精品水蜜桃av综合天堂| 欧美久久综合| 国语自产偷拍精品视频偷| 亚洲理伦在线| 久久国产精品久久国产精品| 亚洲桃色在线一区| 久久一区二区三区av| 国产精品久久国产三级国电话系列| 国内激情久久| 亚洲视频高清| 亚洲精品视频在线播放| 欧美一级视频| 欧美日韩国产一区| 国产主播精品在线| 亚洲手机视频| 亚洲免费激情| 久久久中精品2020中文| 欧美午夜片在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文 | 夜夜夜久久久| 亚洲欧美日韩国产中文| 日韩视频免费在线| 久久精品国产成人| 国产精品成人一区二区三区吃奶| 1000部国产精品成人观看 | 亚洲手机成人高清视频| 99国产精品自拍| 乱中年女人伦av一区二区| 国产伦精品免费视频| 99精品欧美一区二区三区综合在线| 久久精品国产亚洲精品 | 欧美一区2区三区4区公司二百| 欧美乱妇高清无乱码| 激情综合激情| 性欧美xxxx视频在线观看| 亚洲网站在线观看| 欧美国产日韩视频| 一区在线免费| 久久精品一级爱片| 久久精品国产清自在天天线| 国产精品欧美久久| 99av国产精品欲麻豆| 亚洲精品欧洲| 欧美成人日本| 在线观看日韩av先锋影音电影院| 久久国产精品72免费观看| 久久成人人人人精品欧| 国产精品久久久久三级| 在线视频精品一| 亚洲婷婷综合色高清在线| 欧美精品一区二区三区久久久竹菊| 在线看片欧美| 亚洲国产欧美不卡在线观看| 久久久青草婷婷精品综合日韩 | 亚洲午夜久久久久久久久电影院 | 午夜精品久久久久久久久| 久久国产精彩视频| 国产视频亚洲| 久久国产精品高清| 免费成人高清视频| 亚洲国产高潮在线观看| 亚洲看片一区| 欧美日韩在线综合| 国产精品99久久久久久宅男 | 国产精品久久久久aaaa樱花| 亚洲午夜激情免费视频| 亚洲欧美另类久久久精品2019| 国产精品入口日韩视频大尺度| 午夜精品亚洲一区二区三区嫩草| 久久久xxx| 亚洲第一中文字幕| 亚洲精品一区在线观看| 欧美国产一区在线| 亚洲精品欧洲| 亚洲午夜一区| 欧美精品福利在线| 亚洲深夜福利| 性色av香蕉一区二区| 国产综合第一页| 亚洲国产成人久久综合一区| 免费永久网站黄欧美| 亚洲高清成人| 日韩视频国产视频| 欧美a级大片| 亚洲电影观看| 日韩小视频在线观看专区| 欧美国产1区2区| 日韩小视频在线观看| 中国成人黄色视屏| 欧美视频中文字幕在线| 亚洲一区二区在线免费观看| 久久综合99re88久久爱| 影音先锋亚洲精品| 91久久在线观看| 欧美精品免费在线| 亚洲久久一区二区| 欧美在线亚洲| 狠狠色丁香久久综合频道| 亚洲国内在线| 欧美精品在线视频观看| 午夜亚洲激情| 美女主播精品视频一二三四| 亚洲黄色三级| 亚洲性xxxx| 国产女精品视频网站免费| 欧美一区二区黄色| 美女久久网站| 日韩一区二区高清| 亚洲中无吗在线| 在线日韩中文字幕| 一本色道久久综合亚洲精品不卡| 国产精品美女主播| 欧美一区激情| 欧美看片网站| 亚洲国产婷婷香蕉久久久久久99| 亚洲一区二区久久| 国产一区二区三区奇米久涩| 亚洲精品一区二区三区樱花| 欧美日韩亚洲一区二区| 亚洲欧美精品在线观看|