sy师院科技.pptVIP

  • 3
  • 0
  • 约 23页
  • 2016-12-31 发布于天津
  • 举报
sy师院科技

Sy师院科技 9.1 直接数字合成器(DDS)设计 正弦信号发生器,它的输出可以用下式来描述: 9-1 用基准时钟clk进行抽样,令正弦信号的相位: 9-2 在一个clk周期Tclk,相位的变化量为: 9-3 9.1 直接数字合成器(DDS)设计 为了对进行数字量化,把切割成2N份,由此每个clk周期的相位增量用量化值来表述: 且 为整数 与10-3式联立,可得: 9-4 9.1 直接数字合成器(DDS)设计 信号发生器的输出可描述为: 9-5 其中 指前一个clk周期的相位值,同样得出 9-6 9.1 直接数字合成器(DDS)设计 图9-1 基本DDS结构 【例9-1】 -- DDSC: DDS主模块 library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; use ieee.std_logic_arith.all; library lpm; -- Altera LPM use lpm.lpm_components.all; entity ddsc is -- DDS主模块 generic( freq_width : integer := 32; -- 输入频率字位宽 phase_width : integer := 12; -- 输入相位字位宽 adder_width : integer := 32; -- 累加器位宽 romad_width : integer := 10; -- 正弦ROM表地址位宽 rom_d_width : integer := 10); -- 正弦ROM表数据位宽 port( clk : in std_logic; -- DDS合成时钟 freqin : in std_logic_vector (freq_width-1 downto 0); -- 频率字输入 phasein : in std_logic_vector(phase_width-1 downto 0); -- 相位字输入 ddsout : out std_logic_vector(rom_d_width-1 downto 0)); -- DDS输出 end entity ddsc; 接下页 architecture behave of ddsc is signal acc : std_logic_vector(adder_width-1 downto 0); signal phaseadd: std_logic_vector(phase_width-1 downto 0); signal romaddr : std_logic_vector(romad_width-1 downto 0); signal freqw : std_logic_vector(freq_width-1 downto 0); signal phasew : std_logic_vector(phase_width-1 downto 0); begin process (clk) begin if(clkevent and clk = 1) then freqw = freqin; -- 频率字输入同步 phasew = phasein; -- 相位字输入同步 acc = acc + freqw; -- 相位累加器 end if; end process; phaseadd = acc(adder_width-1 downto adder_width-phase_width) + phasew; romaddr = phaseadd(phase_width-1 downto phase_width-rom

文档评论(0)

1亿VIP精品文档

相关文档