zoukankan      html  css  js  c++  java
  • CPLD的分频语言

    分频器在FPGA/CPLD设计中是不可缺少的一部分,这就包括分频系数是奇数和偶数的(我们称为奇分频和偶分频),而对于偶分频来说还有不同的分频方法,下面将给出具体的方法:

    1、占空比不为50%的偶分频

    占空比:指在一个周期内高低电平持续的时间不等。

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all; --定义库文件
    entity ofp is         --定义实体名为ofp
    port(
         clk:in std_logic;
         clk_fp:out std_logic);
    end entity;
    architecture miao of ofp is
    signal n:integer range 0 to 3;--4分频 注意:要想得到别的偶数分频

                                 --可以将3替换为 fp_num-1 (fp_num为分频系数)
    begin
    process(clk)
    begin
    if clk'event and clk='1' then    --时钟上升沿触发
       if n<3 then             --当计数器n<3时进行+1运算,当n=3时n返回0
          n<=n+1;clk_fp<='0';
       else
       n<=0;clk_fp<='1';
       end if;
    end if;
    end process;
    end miao;

    2、占空比为50%的偶分频

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;--定义库文件
    entity ofp1 is --定义实体名为ofp1
    port(
         clk:in std_logic;
         clk_fp:out std_logic);
    end entity;
    architecture miao of ofp1 is
    signal n:integer range 0 to 1;--注意:同样是四分频,这里n只是0-1

    -- 注意:要想得到别的偶数分频

    --可以将1替换为 fp_num/2 -1 (fp_num为分频系数)

    signal cp:std_logic;   --定义一个中间变量,因为port内的输出信号不能放在-                      ---赋值号的右边
    begin
    process(clk)
    begin
    if clk'event and clk='1'then --思想:当计数器n计数到1的时候就将信号

                                 --cp进行翻转
       if n<1 then
          n<=n+1;
       else
       n<=0;cp<=not cp;
       end if;
    end if;
    end process;
    clk_fp<=cp;
    end miao;

    3、占空比不为50%的奇分频

        下面这个程序是3分频的程序,要是大家想改为别的,就尝试一下吧,我就不明说了,要是真的不知道,可以留言

    library IEEE;
    use IEEE.STD_LOGIC_1164.all;
    use IEEE.STD_LOGIC_UNSIGNED.all;
    entity thirdfreq is
    port(
       clkin : in STD_LOGIC;
       rst : in STD_LOGIC;
       thirdfreq : out STD_LOGIC;    -- three freq output, 50%
       threecountp : out STD_LOGIC_VECTOR(1 downto 0); --not 50%
       threecountn : out STD_LOGIC_VECTOR(1 downto 0) --not 50%
          );
    end thirdfreq;
    architecture thirdfreq of thirdfreq is
    signal threecntp   : std_logic_vector(1 downto 0);
    signal threecntn   : std_logic_vector(1 downto 0);
    signal thirdfreq_p : std_logic;
    signal thirdfreq_n : std_logic;
    begin
    thirdfreq <= thirdfreq_p and thirdfreq_n;
    u0: process(clkin,rst)
    begin
    if rst = '0' then
       threecntp <= "00";
    else
       if clkin'event and clkin = '1' then
        if threecntp = "10" then
         threecntp <= "00";
        else
         threecntp <= threecntp + '1';
        end if;
       end if;
    end if;
    end process u0;  
    threecountp <= threecntp;

    u1: process(clkin,rst)
    begin
    if rst = '0' then
       threecntn <= "00";
    else
       if clkin'event and clkin = '0' then
        if threecntn = "10" then
         threecntn <= "00";
        else
         threecntn <= threecntn + '1';
        end if;
       end if;
    end if;
    end process u1;
    threecountn <= threecntn;

    u2: process(clkin,rst)
    begin
    if rst = '0' then
       thirdfreq_p <= '0';
    else
       if clkin'event and clkin = '1' then
        if threecntp < "01" then
         thirdfreq_p <= '0';
        else
         thirdfreq_p <= '1';
        end if;
       end if;
    end if;
    end process u2;  

    u3: process(clkin,rst)
    begin
    if rst = '0' then
       thirdfreq_n <= '0';
    else
       if clkin'event and clkin = '0' then
        if threecntn < "01" then
         thirdfreq_n <= '0';
        else
         thirdfreq_n <= '1';
        end if;
       end if;
    end if;
    end process u3;
    end thirdfreq;

    转自:http://www.3mdianzi.cn/web/viewarticle.asp?userid=893633&lanmuid=6048701&contentID=1526842

  • 相关阅读:
    Java使用AES算法
    Python中使用AES算法(解决Python2.x和3.x下运行不兼容问题)
    关于递归
    zabbix文档3.4
    CentOS-7.3.1611编译安装 Nginx-1.12.1+mysql-5.7.19+PHP-7.1.8+zabbix-3.4.1
    搭建zabbix服务器监控
    php编译安装过程中遇到问题
    springboot 获取控制器参数的几种方式
    spring boot 全局异常处理及自定义异常类
    Java 中的异常和处理详解
  • 原文地址:https://www.cnblogs.com/itxiaocaiyidie/p/2424856.html
Copyright © 2011-2022 走看看