代码如下:仿真波形有问题,出现了一个小小的毛刺,找不出问题所在,恼火啊。。。
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
USE IEEE.STD_LOGIC_UNSIGNED.ALL ;
ENtiTY CNT60 IS
PORT( DATA : IN STD_LOGIC_VECTOR( 3 DOWNTO 0 ) ;
ONELOAD ,TENLOAD : IN STD_LOGIC ;
TEN , ONE : OUT STD_LOGIC_VECTOR( 3 DOWNTO 0 ) ;
CLK , CLR ,EN : IN STD_LOGIC ;
CO : OUT STD_LOGIC ) ;
END CNT60 ;
ARCHITECTURE bhv OF CNT60 IS
BEGIN
PROCESS(CLK ,CLR,EN)
VARIABLE TENTEMP , ONETEMP : STD_LOGIC_VECTOR( 3 DOWNTO 0 ) ;
BEGIN
IF ( EN='1' ) THEN
IF (CLR='0') THEN ONETEMP :="0000" ; TENTEMP :="0000" ;
ELSIF (CLK'EVENT AND CLK='1') THEN
IF(CLK'EVENT AND CLK='1') THEN
IF ONELOAD ='0' THEN ONETEMP := DATA ;
ELSIF TENLOAD ='0' THEN TENTEMP := DATA ;
ELSIF AND TENTEMP ="0101" THEN TENTEMP :="0000" ;ONETEMP :="0000" ;
ELSIF AND TENTEMP < 6 THEN TENTEMP := TENTEMP + 1 ;ONETEMP := "0000";
ELSIF ONETEMP < 9 THEN ONETEMP := ONETEMP + 1;
ELSE ONETEMP :="0000";TENTEMP :="0000" ;
END IF ;
END IF ;
END IF ;
END IF ;
IF (ONETEMP = "1001" AND TENTEMP = "0101") THEN CO <='1';
ELSE CO <='0' ;
END IF ;
ONE <= ONETEMP ;TEN <= TENTEMP ;
END PROCESS ;
END bhv ;