LIBRARY IEEE;<br />USE IEEE.STD_LOGIC_1164.ALL;<br />USE IEEE.STD_LOGIC_UNSIGNED.ALL;<br />ENTITY COUNTER IS<br /> PORT( CLK:IN STD_LOGIC;<br /> EN: IN STD_LOGIC;<br /> S: IN STD_LOGIC;<br /> LOAD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);<br /> C: OUT STD_LOGIC;<br /> JISHU: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)<br /> );<br />END ENTITY;<br /> ARCHITECTURE BHV OF COUNTER IS<br /> SIGNAL TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);<br />BEGIN<br /> PROCESS(EN,CLK,S,LOAD)<br /> BEGIN<br /> IF CLK'EVENT AND CLK='1' THEN<br /> IF(EN='1') <br /> THEN IF(S='1') THEN TEMP<=LOAD;<br /> ELSIF(TEMP<10) THEN TEMP<=TEMP+1; C<='0';<br /> ELSE TEMP<="0000";<br /> C<='1';<br /> END IF;<br /> END IF;<br /> END IF;<br /> <br /> <br /> <br /> END PROCESS;<br /> JISHU<=TEMP;<br />END BHV;<br />其中EN是使能端,如果是1的话就计数,否则就不计,<br />S是置位端,如果是1的话就把LOAD的值赋给TEMP<br />但是编译通不过,不知错在哪?<br /> <br /> |
|