毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

基于SOC技术的等精度频率计设计+源码+流程图(7)

时间:2016-11-28 22:26来源:毕业论文
END rt3; 经过编译后生成模块文件,其D型触发器的模块文件如图4-3所示。 图4-3 D型触发器的模块文件 4.3.2 计数器的设计 计数是一种简单基本的运算,计数器


  END rt3;
 经过编译后生成模块文件,其D型触发器的模块文件如图4-3所示。

                         
                    图4-3 D型触发器的模块文件       
4.3.2 计数器的设计
    计数是一种简单基本的运算,计数器是实现这种逻辑运算的电路。计数器在电子设计中的主要作用是对脉冲个数进行计数,来实现对所求参数的测量、计数和控制功能。计数器的组成主要有计数单元和一些控制门。计数单元是由一系列有存储功能的各种触发器构成的,这些触发器有D触发器、RS触发器、JK触发器以及D触发器等。计数器在现代电子设计系统中具有广泛的应用,如在电子计算机的控制中对指令地址进行计数,以便顺序取出一条指令。在运算中作乘法、除法运算剑法、减法次数,又如在数字仪器中对脉冲的计数等等。计数器可以用来显示产品的工作状态,一般来说,常见的有3为和4位的。很显然,3位的最大能显示到999,4位的最大可以显示到9999。本设计对计数要求比较高,因为要对200MHz的信号进行计数,故采用32位的计数器,器计数值最大为4294967296,足以达到设计要求。
     在Quartus II中使用文本输入的方法,定制一个满足要求的32位计数器。新建一个工程,然后新建一个VHDL文本,输入程序进行调试仿真。本设计需要两个32位计数器,分别对标准信号和被测信号进行计数。
    标准信号的VHDL程序如下:
    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    USE IEEE.STD_UNSIGNED_1164.ALL;
    USE IEEE.STD_LOGIC_ARITH.ALL;
    ENTITY c_counter IS
    PORT(
      clk   :in std_logic;
      clr   :in std_logic;
      c_en  :in std_logic;
      c_cnt :buffer std_logic_vector(31 downto0)
       );
     END c_counter;
    ARCHITECTURE rt1 OF c_counter IS
     BEGIN
    PROCESS(clr,clk)
        BEGIN
         IF clr='1' THEN
           c_cnt<=(OTHERS=>'0');
        ELSIF rising_edge(clk) then
         IF c_en='1'THEN
             c_cnt<=c_cnt+'1';
            END IF;
          END IF;
       END PROCESS;
      END ARCHITECTURE;
在计数器完成计数后,需要将计数结果送入锁存器进行锁存,故在设计被测信号计数器时,将锁存器的使能控制信号over添加了进来,被测信号计数器的输出端over与锁存器的使能端相连,这样就能很好的完成计数和锁存功能了。被测信号计数器的VHDL程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY s_counter IS
 PROT(
      s_en  :in std_logic; 基于SOC技术的等精度频率计设计+源码+流程图(7):http://www.751com.cn/tongxin/lunwen_507.html
------分隔线----------------------------
推荐内容