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

vhdl语言编写计数器但仿真时输出的计数值不连续,请教高手帮助

vhdl语言编写计数器但仿真时输出的计数值不连续,请教高手帮助

程序如下:编译没错,但仿真时输出的计数值顺序是:0-1-3-2-7-6-4-5-F-E-C-D-B-9-A-0
什么原因?计数值不连续?
LIBRARY ieee;
USE ieee.STD_LOGIC_1164.ALL;
USE ieee.STD_LOGIC_UNSIGNED.ALL;
ENTITY scan20051 IS
PORT(
  CLK, reset                            : IN STD_LOGIC;
   ST            : OUT STD_LOGIC);      
END scan20051;
ARCHITECTURE BEHAVE  OF scan20051  IS
SIGNAL   CNT_END        :STD_LOGIC ;
SIGNAL  CNT_ADD_SRAM         :STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
  
PROCESS(CLK,RESET)
BEGIN
IF RESET='1'  THEN CNT_ADD_SRAM<="0000";
     ELSIF CLK'EVENT AND CLK='1' THEN  
            IF CNT_ADD_SRAM="1111"THEN
             CNT_ADD_SRAM<="0000";
              CNT_END<='1';
            ELSE CNT_ADD_SRAM<=CNT_ADD_SRAM+1;
                 CNT_END<='0';
            END IF;
         END IF;
          -- END IF;  
END PROCESS;
   ST<=CNT_END;
---------------
END BEHAVE;
这个代码应该没问题,可能是其它什么问题吧

那是因为传输延时,造成在多位同时改变时插入非法数据,比如01-->10,中间会出现11,但比其他正常数据相比误码很短暂!

这个问题也困扰我很久,希望高手给出解决办法啊
你的输出结果好象是格雷码!!!
你的输出结果好象是格雷码!!!
lil370 发表于 2009-6-20 00:49
胡说八道
返回列表