4.3.1 D型触发器的设计
本设计采用的是边沿触发的D触发器,电平触发的主从触发器工作时,必须在正跳沿前加入输入信号。如果在CP高电平期间输入端出现干扰信号,那么就有可能使触发器的状态发生错误。而边沿触发器允许在CP触发沿来临前的一瞬间加入输入信号,这样,输入端受干扰的时间大大缩短,受干扰的可能性就降低了。
D型触发器在设计中的作用十分重大,它是等精度的核心。当输入D置1时,输出Q不是马上置1,而是时钟脉冲上升沿到来时才跳变,这时计数器才开始计数。当然,在输入D置0是,输出Q不是马上置0,而是时钟脉冲上升沿到来时才置0。这里的时钟脉冲就是被测信号,因而,就可以保证计数器对被测信号周期的测量是被测信号周期的整数倍,大大减小了误差。
在使用EDA技术对FPGA内部数字电路进行设计中,最大的优点就是可以根据设计的需要,定制相应的器件,对于某些不用的引脚可以不用设计。例如,对于D型触发器而言,一般都有清零和置数端,但在本设计中,清零和置数端是没用的,所以我们便可不用将它设计出来。因此D型触发器的VHDL程序如下。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY d IS
PORT(
d :in std_logic;
clk :in std_logic;
q,qn :out std_logic
);
END d;
ARCHITECTURE rt3 of d IS
BEGIN
PROCESS(clk)
BEGIN
IF(clk'event and clk='1') THEN
q<=d;
qn<=NOT d;
END IF;
END PROCESS;