信号D扩展宽度位20个脉宽

eeleader   2010-12-13 12:38 楼主
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';

                end if;
         end if;
end process;
q<=q3;

end rtl;
问题在哪儿,请高人出手!
一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!

回复评论 (1)

经过分析:

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
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复