Board logo

标题: vhdl语言编写计数器但仿真时输出的计数值不连续,请教高手帮助 [打印本页]

作者: svcgl    时间: 2005-11-23 11:37     标题: 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;
作者: bob007    时间: 2005-11-28 15:52

这个代码应该没问题,可能是其它什么问题吧
作者: panqy    时间: 2008-11-7 10:04

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


作者: s040102065    时间: 2008-11-22 14:10

这个问题也困扰我很久,希望高手给出解决办法啊
作者: lil370    时间: 2009-6-20 00:49

你的输出结果好象是格雷码!!!
作者: KelvinZ    时间: 2009-9-14 17:47

你的输出结果好象是格雷码!!!
lil370 发表于 2009-6-20 00:49
胡说八道




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0