高手们帮帮忙吧,谢谢

By: panzer

<p>我写的一个vhdl程序,用simulator查看,发现输出没有变化</p>

<p>大虾看看哪里有问题?我是个新手</p>

4?d5jf0q:tr<p>library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;</p>

<p>entity el16 is</p>

<p>      port(vid_in:in std_logic_vector(3 downto 0);
           clk:in std_logic;
           vs,hs,selftest:out std_logic;
           vid_out:out std_logic_vector(3 downto 0));
end el16;</p>

0iq/{e-k@y d<p>architecture rtl of el16 is</p>

<p>            type states is (st0,st1,st2,st3,st4);
            signal current_state,next_state:states:=st0;
            signal vid_temp:std_logic_vector(3 downto 0);</p>

<p>begin</p>

<p>         com:process(current_state)</p>

<p>begin</p>

klx{%ta<p>         case current_state is</p>

<p>         when st0=&gt;next_state&lt;=st1;
                               vs&lt;='1';
                               hs&lt;='0';
                               selftest&lt;='0';
         when st1=&gt;next_state&lt;=st2;
                               vs&lt;='1';
                               hs&lt;='0';
                               selftest&lt;='0';
         when st2=&gt;next_state&lt;=st3;
                               vs&lt;='1';
                               hs&lt;='1';
                               selftest&lt;='0';
         when st3=&gt;next_state&lt;=st4;
                               vs&lt;='1';
                               hs&lt;='0';
                               selftest&lt;='0';
                               vid_temp&lt;=vid_in;
          when st4=&gt;vs&lt;='0';
                                hs&lt;='0';
                                selftest&lt;='0';
                                vid_temp&lt;=vid_in;
           
         end case;
end process;</p>

b7[y2q*v$momtu<p>     clock:process(clk,current_state)
     variable cnt:integer range 0 to 3;
</p>

(]-d'f#|o!v)gqix o<p>begin</p>

<p>         if clk'event and clk='1' then
           if current_state=st4 then
               if cnt=3 then
                cnt:=0;
               current_state&lt;=st1;
               else
                cnt:=cnt+1;
               end if;
            else
             current_state&lt;=next_state;
           end if;
         end if;
end process;
         vid_out&lt;=vid_temp;
end rtl;</p>
本文来自:设计互动 (www.ccflash.org),详细参考以上网站.

Username