- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* Sy师院科技 * 第9章 电子系统设计实践 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 downt
文档评论(0)