Modelsim完成4位二进制异步复位计数器

仅供参考

1.代码截图

2.测试代码截图

 

 


3.波形截图 

4.程序代码

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity jsq is
  port(clk,rst:in std_logic;
        co:out std_logic;
        cnt:out std_logic_vector(0 to 3));
end jsq;
architecture jgt of jsq is
  begin
    process(clk,rst)
      variable cnt_n:std_logic_vector(0 to 3):="0000";
      begin
        if(rst='1') then
        cnt_n:="0000";
        co<='0';
        cnt<="0000";
        elsif(clk'event and clk='1')then
          cnt_n:=cnt_n+"0001";
              co<='0';
          if cnt_n="1111" then
              cnt_n:="0000";
              co<='1';
            end if;
          end if;
            cnt<=cnt_n;
          end process;
        end jgt;


5.测试代码

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity jsq_t is
  end entity jsq_t;
architecture jgt_t of jsq_t is
  component jsq is
      port(clk,rst:in std_logic;
        co:out std_logic;
        cnt:out std_logic_vector(0 to 3));
    end component jsq;
    signal clk,rst:std_logic:='0';
    signal co:std_logic:='0';
    signal cnt:std_logic_vector(0 to 3);
  begin
    instant:jsq port map
      (
      clk=>clk,co=>co,cnt=>cnt,rst=>rst
    );
    process
      begin
      rst<='0';
      wait for 50 ns;
      rst<='1';
      wait for 50 ns;
      rst<='0';
      wait;
    end process;
    process
      begin
        clk<='0';
        wait for 20 ns;
        clk<='1';
        wait for 20 ns;
        clk<='0';
        wait for 20 ns;
        clk<='1';
        wait for 20 ns;
        end process;
end architecture jgt_t;


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重工Ai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值