首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助:简单的10进制加法器都出现问题了。

求助:简单的10进制加法器都出现问题了。

今天装了QII6.0,弄了个10进制的加法器,没有想到佳果与理想严重不一样,请求高手帮忙看看。谢谢!


library ieee ;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity CNT10 is
   port (clk,rst,en : in std_logic;
         CQ : out std_logic_vector(3 downto 0);
         cout : out std_logic );
end CNT10;
architecture behav of CNT10 is
begin
   process (clk,rst,en)
     variable CQI : std_logic_vector(3 downto 0);
   begin
     if rst='1' then CQI := (others => '0'); -- 计数器异步复位
      elsif clk 'event and clk ='1' then --检测时钟上升沿
        if en = '1' then                 -- 检测是否允许计数(同步使能)
           if CQI < 9 then CQI := CQI + 1; --允许计数,检测是否小于9
             else CQI := (others =>'0'); --大于9,计数器清零
           end if ;
        end if;
     end if;
      if CQI = 9 then cout <= '1';   --计数大于9,输出进位信号
         else cout <= '0';
      end if;
    CQ <= CQI; --将计数值向端口输出
  end process;
end behav;


没有什么问题啊
美梦成真-->噩梦降临!
谢谢斑竹的关注与回复。
我看了那个仿真结果
问什么CQ的波形间隔不一样?
比如0101与0111的时间间隔就不一样。
还有并不是在CLK的上升沿变化
延迟好多
请问是怎么回事?
谢谢
你用什么工具仿真的啊?

无可能会是这样的波形

应该是每来一个时钟+1的
╔☆→────────────────←☆╗
┊寻觅在电子中, , , 寻求适合自己的一席┊┊┊┊
┊也许生活本忙碌,  想享受安逸只能是心态了吧┊
╚☆→────────────────←☆╝      &
我没有用Modelsim 用的是QII6.0自带的
CQ <= CQI这句用时钟控制来完成,也就是输出前锁存一下
美梦成真-->噩梦降临!
返回列表