根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.假设cnt10实根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 08:42:35

根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.假设cnt10实根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.
根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.假设cnt10实
根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.
假设cnt10实体定义为
ENTITY cnt10 IS
PORT(clr,en,clk::IN STD_LOGIC;
cout :out std_logic;
q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END cnt10;

根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.假设cnt10实根据下面的实体描述,画出电路的结构框图,并用VHDL语言设计异步复位的十进制计数器cnt10.

结构框图如下:

程序如下:根据我的理解cout为计数器的进位值,q为计数值,根据时钟的变化进行计数!library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

 ENTITY  cnt10  IS

      PORT(clr,en,clk: IN STD_LOGIC;

      cout : out std_logic;

      q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

      END cnt10;

  

  architecture arc of cnt10 is

signal cout_tem: std_logic;

signal q_tem: std_logic_vector(3 downto 0);

  begin 

  process(clr,en,clk)

  begin

  if clr='1' then 

     q_tem<="0000";

     cout_tem<='0';

     elsif en='0' then

      if clk'event and clk='1' then 

          if q_tem="1001" then 

               q_tem<="0000";

               cout_tem<='1';

               else q_tem<=q_tem+'1';

          end if;

      end if;

  end if; 

  end process;

  cout<=cout_tem;

  q<=q_tem;

  

  end arc;