求VHDL高手:设计含有异步清零和技术功能的16位二进制加减可控计数器

设计含有异步清零和技术功能的16位二进制加减可控计数器
2024-10-28 06:39:28
推荐回答(1个)
回答1:

代码如下。clr为1异步清零。k为1时执行加法计数器,为0时执行减法计数器。仿真图形也给上。不过楼主自己还应该好好学习啊。

library IEEE;use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity cnt_16 is

    port (

        clk: in STD_LOGIC;

        k: in STD_LOGIC;

        clr: in STD_LOGIC;

        q: out STD_LOGIC_VECTOR (15 downto 0)

    );

end cnt_16;

architecture cnt_16_arch of cnt_16 is

signal qq:std_logic_vector(15 downto 0);

begin

process(clk,clr,k)

begin

 if clr='1' then

  qq<="0000000000000000";

 elsif clk'event and clk='1' then

  if k='1' then

     qq<=qq+'1';

  else

     qq<=qq-'1';

   end if;

 end if;

end process;

process(qq)

begin

 q<=qq;

end process;

end cnt_16_arch;