DDS的優(yōu)化設計介紹
本文引用地址:http://www.butianyuan.cn/article/185570.htm
當MSB-1為‘0’(一,三象限)時,對查找地址phase(5...0)不做任何處理;當其為‘1’(二,四象限)時,對phase(5...0)取反。ROM的輸出為10位數(shù)據(jù),其中最高位為符號位。當MSB為‘0’(一,二象限)時,輸出信號符號位為‘0’,低9為ROM中的幅度數(shù)據(jù);當其為‘1’(三,四象限)時,輸出信號符號位為‘1’,低9位為ROM中的幅度數(shù)據(jù)的相反數(shù)的補碼。ROM的VHDL實現(xiàn)的主要部分如下:
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來完成,其以數(shù)據(jù)總線及寫時鐘信號的方式與FPGA內的DDS實體進行通訊,同時DDS在FPGA內部又是在本地時鐘fc驅動下運行。由于MCU的寫時鐘和FPGA內的本地時鐘異步,兩者之間進行通訊難免存在數(shù)據(jù)不穩(wěn)等問題,特別是在通訊速度較高時,這一異步接口問題會更加突出。為了實現(xiàn)異步接口的同步化,本文提出了如圖3所示的接口同步電路。

3 硬件實現(xiàn)及仿真結果
本文使用VHDL 語言對各個模塊及DDS系統(tǒng)進行描述。頂層文件如下所示:
Entity dds is
Port(reset:in std_logic;--全局復位信號
fre:in std_logic_vector(7 downto 0);
--頻率控制字輸入
clk:in std_logic;
--系統(tǒng)時鐘
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公司的開發(fā)軟件中進行了設計及優(yōu)化,目標器件為其最新的90nm工藝器件Spartan3E中最小器件XC3S100E-4VQ100C,該設計所占用的FPGA資源如表2所示。

由表2可以看出,本文給出的DDS設計占用資源很少,由于XC3S100E的市場價格在2美金左右,故本設計所占的硬件成本可以縮減到0.2美金左右。同時在ISE8.2中該設計的系統(tǒng)時鐘最大達到159.6MHz。以上的設計性能幾乎和現(xiàn)有的專用芯片相當,但成本下降很多。
為了進一步驗證本文給出的DDS設計系統(tǒng)在功能和時序上的正確性,對其進行了時序仿真,使用的仿真軟件為Modelsim6.1。仿真結果表明,該DDS系統(tǒng)可以運行在較高的工作頻率下。
本文在對DDS的基本原理進行深入理解的基礎上,通過采用三種優(yōu)化與設計技術:(1)使用流水線累加器在不過多增加門數(shù)的條件下,大幅提高了芯片的工作速度;(2)壓縮成正弦查找表,在保證芯片使用精度的情況下減少了近3/4面積,大大節(jié)約了ROM的容量。(3)采用同步接口電路設計方案,消除了系統(tǒng)的接口不穩(wěn)定性。同時使用VHDL語言實現(xiàn)了優(yōu)化,并把該設計適配到Xilinx公司的最新90nm工藝的Spartan3E系列的FPGA中,實際結果表明了本文給出的DDS設計方案在硬件開銷方面的優(yōu)勢。
評論