当前位置:文档之家› 实验五 数控分频器

实验五 数控分频器

实验五数控分频器
一、实验目的
1、学会数控分频器的设计、分析和测试方法;
2、根据仿真结果分析设计的优缺点。

二、实验原理
数控分频器的功能就是当输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DIV IS
PORT(CLK:IN STD_LOGIC;
K_OR:OUT STD_LOGIC);
END ENTITY DIV;
ARCHITECTURE BHV OF DIV IS
SIGNAL C1,C2:STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL M1,M2:STD_LOGIC;
BEGIN
PROCESS(CLK,C1) BEGIN
IF RISING_EDGE(CLK) THEN
IF (C1="100") THEN C1<="000";ELSE C1<=C1+1;END IF;
IF (C1="001") THEN M1<=NOT M1;ELSIF C1="011" THEN M1<=NOT M1;
END IF;
END IF;
END PROCESS ;
PROCESS(CLK,C2) BEGIN
IF FALLING_EDGE(CLK) THEN
IF (C2="100") THEN C2<="000";ELSE C2<=C2+1;END IF;
IF (C2="001") THEN M2<=NOT M2;ELSIF C2="011" THEN M2<=NOT M2;
END IF;
END IF;
END PROCESS ;
K_OR<=M1 OR M2;
END ARCHITECTURE BHV;
CLK:20NS 实验为5分频
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DIV IS
PORT(CLK:IN STD_LOGIC;
K_OR:OUT STD_LOGIC);
END ENTITY DIV;
ARCHITECTURE BHV OF DIV IS
SIGNAL C1:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL M1:STD_LOGIC;
BEGIN
PROCESS(CLK,C1) BEGIN
IF RISING_EDGE(CLK) THEN
IF (C1="01") THEN C1<="00";
M1<=NOT M1;ELSE C1<=C1+1;END IF;
END IF;
END PROCESS ;
K_OR<=M1;
END ARCHITECTURE BHV;
CLK:10NS 实验为4分频
三、实验步骤
1.对文件进行建立,是txt
2.添加相关程序,保存文件位vhd
3.设置工程为底层
4.对程序进行编译
5.没有错后对波形图进行新建
6.设置输入得出输出波形,与真值表进行对照
四、实验小结:
本次实验针对数控分频器设计与仿真感觉挺难的,对于预置值不知道这么添加,只能比较笨拙在源程序进行修改,完成奇数次和偶数次分频的完成,对于参考程序进行修改,总体来说奇数次分频应该更加复杂,但是偶数次分频相对来说又比较简单,在奇数次分频的基础上就可以很容易的进行修改完成,因此经此次实验以及对相关知识的回顾,对于VHDL设计更加明了,思路更加清晰。

相关主题