数控分频器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控分频器的设计
一、实验目的:
学习数控分频器的设计和测试方法。
二、实验原理:
数控分频器的功能为在不同输入信号时,对时钟信号进行不同的分频,在输出端输出不同频率的信号。该电路可以用具有并行预置功能的加法计数器实现,方法是对应不同的输入信号,预置数(初始计数值)设定不同的值,计数器以此预置数为初始状态进行不同模值的计数,当计数器的状态全为1时,计数器输出溢出信号。用计数器的溢出信号作为输出信号或输出信号的控制值,使输出信号的频率受控于输入的预置数。
电路输出波形图:
三、实验内容:
1)根据实验原理画出电路框图,并计算在不同预置数时输出信号的频率与时钟频率的比值。
-------------------------------------------------------------------------------------------------------------
原理图:
数控分频器输出频率与输入时钟的关系:
当输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。 任意小数都可以表示成a n b
+形式,其中a
()()1 a nb a M n P P b b n b a n a P b +⎛⎫⎛⎫=+= ⎪ ⎪⎝⎭⎝⎭-++⎛⎫= ⎪⎝⎭
上式表明分频器进行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 DOWNTO 0);FOUT:OUT 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="1111" THEN
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
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;
仿真波形:
管脚锁定:
信号旧试验箱新试验箱No.5
管脚号连接的器件管脚号连接的器件clk 43 Clk1 28 CLK0
D(3) 30 SW1233 SW1
D(2) 35 SW2234 SW2
D(1) 36 SW3235 SW3
D(0) 37 SW4236 SW4
Fout 29 LED1212 LED8