library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all;
entity count5 is port(clk,d:in std_logic; qut std_logic); end;
architecture rtl of count5 is signal q1:std_logic_vector(4 downto 0); signal q2:std_logic; signal q3:std_logic; signal q4:std_logic; begin process(clk,q2,q3) begin if q2='1' then q1<="00000"; elsif clk'event and clk='1' then if q1="10100" then ; else q1<=not q1; end if; end if; end process;
process(clk,d) begin if clk'event and clk='1' then if d='1' then q2<='1'; q3<=not q3; else q2<='0';
经过分析:
process(clk,q2,q3)begin if q2='1' then q1<="00000"; elsif clk'event and clk='1' then if q1="10100" then ; else q1<=not q1; end if; end if;end process;
上面程序中的Q1="10100" 永远也满足不了,所以你的问题就解决不了!
详情回复
发表于 2010-12-29 09:59
process(clk,q2,q3) begin if q2='1' then q1<="00000"; elsif clk'event and clk='1' then if q1="10100" then ; else q1<=not q1; end if; end if; end process;