原创 1Hz—64MHz数字频率计设计(2)

2012-6-14 15:35 1498 16 16 分类: 测试测量

3、设计代码

LIBRARY IEEE;

 USE IEEE.STD_LOGIC_1164.ALL;

 USE IEEE.STD_LOGIC_UNSIGNED.ALL;

 USE IEEE.STD_LOGIC_ARITH.ALL;

 ENTITY fre IS           ---------实体名为fre

 PORT(

     F0: IN STD_LOGIC;               -----高频信号输入端

     FX:IN STD_LOGIC;               -----低频信号输入端

     RESET:IN BIT;                   -----复位端口

     O_FRE:OUT STD_LOGIC_VECTOR(23 DOWNTO 0));-----测频结果输出端

 END ENTITY fre;

 ARCHITECTURE ART OF fre IS

  SIGNAL EN : BIT;          ------高频计数使能信号

  SIGNAL N0 :INTEGER RANGE 0 TO 64000000:=0;-----高频计数结果传递信号

  SHARED VARIABLE N00:INTEGER RANGE 0 TO 64000000; ---高频计数信号

  SHARED VARIABLE NXX:INTEGER  RANGE 0 TO 20;   ---低频计数信号

  BEGIN

  FXX:PROCESS(FX,RESET)IS             --------低频计数进程

   BEGIN

     IF(RESET='1')THEN                     ---------复位信号,高电平使能

       NXX:=0;

     ELSIF(FX'EVENT AND FX='1')THEN    -------上升沿触发

       IF(NXX=20)THEN                 -------低频计到20个脉冲周期

          NXX:=0;

        ELSE

          NXX:=NXX+1;

       END IF;

     END IF;

  END PROCESS FXX;

 F00:PROCESS(F0,RESET)IS              ------------高频计数进程

  BEGIN

    IF(RESET='1')THEN

     N00:=0;

     EN<='0';

    ELSIF(NXX=20)THEN   -------当低频率计到20个脉冲时,高频率计数清零

         N00:=0;

         EN<='0';

     ELSIF(F0'EVENT AND F0='1')THEN

       IF(NXX=11)THEN            ----当低频率计数十个脉冲时间到时将高 - ------频率计数结果送出,并使计数停止。     

          N0<=N00;

           EN<='1';

      ELSIF(EN='0')THEN   -------EN0时高频计数

          IF(NXX=0)THEN   ------两者同时计数,减少计数不同步产生的误差

            N00:=0;

              ELSE

            N00:=N00+1;

           END IF;

        END IF;

     END IF;

  END PROCESS F00;

 SHOW:PROCESS(F0,EN)IS          --------计算频率进程

 VARIABLE N:INTEGER  RANGE 0 TO 64000000:=0;

 BEGIN

  IF(RESET='1')THEN

 N:=0;

ELSIF(EN='1')THEN

  N:=640000000/N0;

 END IF;

          O_FRE<=CONV_STD_LOGIC_VECTOR(N,24);-----INTEGER转换为      -----STD_LOGIC_VECTOR类型,并且与O_FRE长度相同

 END PROCESS SHOW;

 END ARCHITECTURE ART;     

 

 

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
16
关闭 站长推荐上一条 /2 下一条