3.2 产生三角波的各部分电路设计
3.2.1 频率预置与调节电路
(1) 相位累计器
相位累计器包括加法器和累加寄存器。在时钟的作用下,相位累计器不断对频率控制字进行线性相位累计。相位累计器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累计器输出的数据就是合成信号的相位,相位累计器的溢出频率就是DDS输出的信号频率。
用相位累计器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在ROM中的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。
累加寄存器设计程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY leijiajicun IS
PORT(D:IN STD_LOGIC_VECTOR(11 DOWNTO 0);
CLK:IN STD_LOGIC;
Q:OUT STD_LOGIC_VECTOR(11 DOWNTO 0));
END leijiajicun;
ARCHITECTURE ART OF leijiajicun IS
BEGIN
PROCESS(CLK)IS
BEGIN
IF(CLK'EVENT AND CLK='1')THEN
Q<=D;
END IF;
END PROCESS;
END ARCHITECTURE ART;
仿真结果如图3.2.1.1所示:
图3.2.1.3 累加寄存器仿真结果
从上图可以发现,虽然有一定的时延,但是该模块能实现寄存功能。
(2) 加法器
用Verilog编写累加器的程序如下,完成两路12位数据的相加:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY jiafa IS
PORT( A1: IN STD_LOGIC_VECTOR(11 DOWNTO 0);
B1: IN STD_LOGIC_VECTOR(11 DOWNTO 0);
S1: OUT STD_LOGIC_VECTOR(11 DOWNTO 0));
END jiafa;
ARCHITECTURE BEHAV OF jiafa IS
BEGIN
S1 <= A1+B1;
END BEHAV;
在Quartus II软件中仿真后,结果如图3.2.1.4示: