数控分频器的设计
一、
实验目的:
学习数控分频器的设计和测试方法。 二、实验原理:
数控分频器的功能为在不同输入信号时,对时钟信号进行不同的分频,在输出端输出不同频率的信号。该电路可以用具有并行预置功能的加法计数器实现,方法是对应不同的输入信号,预置数(初始计数值)设定不同的值,计数器以此预置数为初始状态进行不同模值的计数,当计数器的状态全为1时,计数器输出溢出信号。用计数器的溢出信号作为输出信号或输出信号的控制值,使输出信号的频率受控于输入的预置数。 电路输出波形图:
三、实验内容 :
1)根据实验原理画出电路框图,并计算在不同预置数时输出信号的频率与时钟频率的比值。
------------------------------------------------------------------------------------------------------------- 原理图:
数控分频器输出频率与输入时钟的关系:
当输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。
a任意小数都可以表示成n?形式,其中a
b脉冲数为P,则有以下关系:
a???nb?a?M??n???P????Pbb????
?n?b?a???n?1?a? ????Pb??上式表明分频器进行b次n分频时,设法多输入a个脉冲。或者说在b个脉冲输入周期中,进行b-a次n分频和a次n+1分频。这就是小数分频的基本原理。n和n+1也称为分频模式。利用上述小数分频的方法,同样也可以实现整数分频,即令a=0,就可以完成整数N分频
2)编写实现数控分频器的VHDL程序。要求输出信号的占空比尽量为50%。 --------------------------------------------------------------------------- 程序: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF IS PORT(CLK:IN STD_LOGIC;D:STD_LOGIC_VECTOR(3
STD_LOGIC); END;
ARCHITECTURE one OF DVF IS SIGNAL FULL:STD_LOGIC; BEGIN
P_REG:PROCESS(CLK)
VARIABLE CNT4:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
IF CLK'EVENT AND CLK='1' THEN IF CNT4=\CNT4:=D; FULL<='1';
ELSE CNT4:=CNT4+1; FULL<='0'; END IF; END IF;
END PROCESS P_REG; P_DIV:PROCESS(FULL) VARIABLE CNT2:STD_LOGIC; BEGIN
DOWNTO
0);FOUT:OUT
IF FULL'EVENT AND FULL='1' THEN CNT2:=NOT CNT2;
IF CNT2='1' THEN FOUT<='1'; ELSE FOUT<='0'; END IF; END IF;
END PROCESS P_DIV; END;
仿真波形:
管脚锁定: 信号 旧试验箱 管脚号 连接的器件 clk 43 Clk1 D(3) 30 SW1 D(2) 35 SW2 D(1) 36 SW3 D(0) 37 SW4 Fout 29 LED12
新试验箱No.5 管脚号 连接的器件 28 CLK0 233 SW1 234 SW2 235 SW3 236 SW4 12 LED8