⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 counter.vhd

📁 本频率计具有测周、测频、测量占空比等基本功能
💻 VHD
字号:
library ieee;
use ieee.std_logic_1164.all;
 
entity Counter is
port
(clk1,clk2:in std_logic;     --clk1为待计数信号,clk2为计数时钟
 result1,result2,result3:out integer range 0 to 9;
 over,low:out std_logic
);
end;

architecture a of Counter is
signal en,en1:std_logic;
signal num1,num2,num3:integer range 0 to 9;
signal overmode:std_logic;

begin
  process(clk1)
  begin
    if rising_edge(clk1) then
      en<=not en;
    end if;
  end process;

  process(clk2)
  begin
    if rising_edge(clk2) then
      if en='1' then
        if en1='1' then
          en1<='0';
          if overmode='1' then
            low<='0';
            over<='1';
            overmode<='0';
          elsif num3=0 then
            low<='1';
            over<='0';
           else
            low<='0';
            over<='0';
            result1<=num1;
            result2<=num2;
            result3<=num3;
           end if;

           num1<=0;
           num2<=0;
           num3<=0;
         end if;
        else
          en1<='1';
          low<='0';
          over<='0';
          if num1=9 then
           if num2=9 then
            if num3=9 then
             overmode<='1';
            else 
             overmode<='0';
             num3<=num3+1;
             num2<=0;
             num1<=0;
            end if;
           else
             overmode<='0';
             num2<=num2+1;
             num1<=0;
           end if;
          else
             overmode<='0';
             num1<=num1+1;
          end if;
        end if;
      end if;
     end process;
   end a;
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -