当前位置:编程学习 > wap >>

关于数控分频器的设计

谁给我点关于数控分频器的设计的资料或者指导下。。。有原理图和仿真图最好。用quartus 2实现的,没有的用其他软件实现也好。各位高手帮帮忙啊。。谢谢!!! --------------------编程问答-------------------- PROCESS(CLK,CNTER) IS   --计数溢出信号控制
    BEGIN
    IF CLK'EVENT AND CLK='1' THEN
      IF CNTER=10#19# THEN
        NEWCLK<='1';
      ELSE
        NEWCLK<='0';
      END IF;
    END IF;
  END PROCESS;
END ARCHITECTURE ART;
★  分频电路的设计
  所谓分频电路,就是将一个给定的频率较高的数字输入信号,经过适当的处理后,产生一个或数个频率较低的数字输出信号。分频电路本质上是加法计数器的变种,其计数值由分频常数N=fin/fout决定,其输出不是一般计数器的计数结果,而是根据分频常数对输出信号的高、低电平进行控制。 
  【例1.3.4】设计一个将1KHZ的方波信号变为正、负周不等的50HZ信号的分频电路的VHDL程序,并使用MAX+plus II进行仿真。
--FJYPF.VHD, 将1KHZ的信号变为50HZ
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FJYFP IS
   PORT(CLK:IN STD_LOGIC;      --1KHz信号输入
        NEWCLK: OUT STD_LOGIC);  --50Hz计时时钟信号输出
END ENTITY FJYFP;
ARCHITECTURE ART OF  FJYFP IS
  SIGNAL CNTER:INTEGER RANGE 0 TO 10#19#; --十进制计数预置数
  BEGIN
  PROCESS(CLK) IS   --分频计数器,由1KHz时钟产生50Hz信号
    BEGIN
    IF CLK'EVENT AND CLK='1' THEN
      IF CNTER=10#19# THEN 
        CNTER<=0;  --1KHz信号变为50Hz,计数常数为20
      ELSE 
        CNTER<=CNTER+1;
      END IF;
    END IF;
  END PROCESS;
  
  【例1.3.5】设计一个将1KHZ的方波信号变为为正、负周相等的50HZ方波信号的分频电路的VHDL程序,并使用MAX+plus II进行仿真。
--JYFP.VHD, 将1KHZ的信号变为50HZ
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY JYFP IS
   PORT( CLK_IN:IN  STD_LOGIC;
         RESET:IN  STD_LOGIC;
         CLK_OUT:OUT STD_LOGIC );
END ENTITY JYFP
ARCHITECTURE ART OF JYFP IS
   CONSTANT DIVIDE_PERIOD:integer :=20;
   --将1KHZ的信号变为50HZ,分频常数为1000/50=20
   BEGIN
 DIVIDE_CLK:PROCESS(CLK_IN,RESET) IS
     VARIABLE CNT:INTEGER RANGE 0 TO 19;
     BEGIN
     IF (RESET = '1') THEN
       CNT := 0;
       CLK_OUT <= '0';
     ELSIF RISING_EDGE(CLK_IN) THEN
       
IF (CNT < (DIVIDE_PERIOD/2)) THEN
         CLK_OUT <= '1'; -
  -前20/2个周期输出为高电平
         CNT := CNT + 1;
       ELSIF (CNT < (DIVIDE_PERIOD-1)) THEN
         CLK_OUT <= '0'; 
  --后20/2个周期输出为低电平
         CNT := CNT + 1;
       ELSE
         CNT := 0;
       END IF;
     END IF;
  END PROCESS  DIVIDE_CLK;
END ARCHITECTURE ART;
    【例1.3.6】设计一个通用的可输出输入信号的2分频信号、4分频信号、8分频信号、16分频信号、二位2分频信号序列、二位4分频信号序列的分频电路的VHDL程序,并使用MAX+plus II进行仿真。
--TYFP.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TYFP IS
   PORT( CLK_IN:IN  STD_LOGIC;
         CLK_OUT0,CLK_OUT1,CLK_OUT2,CLK_OUT3:OUT STD_LOGIC; 
         CLK_OUT21,CLK_OUT32:OUT STD_LOGIC_VECTOR( 1 DOWNTO 0));
END ENTITY TYFP; 

ARCHITECTURE ART OF TYFP IS
   SIGNAL Q:STD_LOGIC_VECTOR( 4 DOWNTO 0);
   BEGIN
   PROCESS (CLK_IN) IS        
     BEGIN
     IF CLK_IN'EVENT AND CLK_IN ='1' THEN
       Q <= Q+1;
     END IF;
   END PROCESS;
   CLK_OUT0<=Q(0) ; --输出2^(0+1)=2分频信号
   CLK_OUT1<=Q(1) ; --输出2^(1+1)=4分频信号
   CLK_OUT2<=Q(2) ; --输出2^(2+1)=8分频信号
   CLK_OUT3<=Q(3) ; --输出2^(3+1)=16分频信号  
   CLK_OUT21<=Q(2 DOWNTO 1) ; --输出2^(0+1)=2分频信号序列 
   CLK_OUT32<=Q(3 DOWNTO 2) ; --输出2^(1+1)=4分频信号序列
END ARCHITECTURE ART; 
--------------------编程问答-------------------- 用于数控的任意分频比小数分频器:输入频率5.5~1000MHz,CMOS输出,频率为150Hz~150MHz.
C语言写的PIC18F数控程序,键盘输入,液晶显示,共能产生120000000000000个频率,适用于机床数控.
每台2000元.有兴趣的请联系我:QQ8452998
补充:移动开发 ,  英特尔开源软件社区
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,