[求助] 关于用FPGA语言实现VGA显示彩条仿真老是出不来..求助.内有源程序和仿真截图

lxbbd   2011-3-17 10:59 楼主

library ieee;
use ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity vga is
       port(
              reset                                   :      in     std_logic;
              clk                              :      in  std_logic;
              vga_hs_control                    :      out std_logic;
              vga_vs_control                    :      out std_logic;
              vga_read_dispaly          :      out std_logic;
              vga_green_dispaly         :      out std_logic;
              vga_blue_dispaly           :      out std_logic         
       );
end vga;  
ARCHITECTURE a OF vga IS
       SIGNAL hs: STD_LOGIC;
       SIGNAL vs: STD_LOGIC:='1';
    SIGNAL GRB: STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
PROCESS (clk) --clk = 24MHZ  hs = 30 Khz vs = 57hz
       VARIABLE i    :      integer range 0 to 799:=0;
       VARIABLE j    :      integer range 0 to 79:=0;
BEGIN
if reset = '1' then
   GRB <= "000"; i:=96; j:=0;  hs <= '1';
       elsif clk'event and clk = '1'  then
         if i < 96 then
            hs <= '0';
         elsif i = 799 then
            i:=0;
         else
            hs <= '1';
         end if;
         if j = 79 then
            GRB(1) <= not GRB(1);
            j:=0;
         end if;
         i:=i+1;
         j:=j+1;               
       end if;
       vga_hs_control <= hs;  
END PROCESS ;
PROCESS (hs)
VARIABLE k   :      integer range 0 to 524:=0;
BEGIN
if reset = '1' then
   k:=2; vs <= '1';
       elsif hs'event and hs = '1' then
           if k < 2 then
              vs <= '0';
           elsif k = 524 then
              k:=0;
           else
              vs <= '1';
           end if;
           k:=k+1;
         end if;
  vga_vs_control <= vs;  
END PROCESS ;

PROCESS (clk)
BEGIN
       if clk'event and clk = '1' and vs = '1' and hs ='1' then
              vga_green_dispaly <= GRB(2);
              vga_read_dispaly  <= GRB(1);
              vga_blue_dispaly  <= GRB(0);               
          end if;
END PROCESS ;
       END a;
11030715512a114dc80ad11b64.jpg

我设计的VGA是输入25MHZ的脉冲波

求解什么地方错了

回复评论 (7)

这个得了解你的应用了

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-3-17 13:25
就是在CRT显示器上显示彩条,是毕业设计,但是仿真老仿不出...
点赞  2011-3-17 14:16
我看你仿真的波形上怎么行同步信号和场同步信号怎么都是跟DCLOCK一样的。如果真是一样那当然无法正常显示了,时序不对啊
点赞  2011-3-19 07:43
是时序问题 但是我一直看不出 所以想请教下大家·
点赞  2011-3-21 09:36
这个我在公司做过,而且是更复杂的,同是做FPGA的,又见你在做毕业设计,我可以帮帮你看看程序或者给你参考。我校内空间也有。白天在公司上班,晚上下班有时间,你可以把你源程序发给我帮你看看。QQ
:452800870
点赞  2011-3-21 09:48
你用的什么板子呢  黑金?
点赞  2011-12-8 19:33
时序出问题 了,行和场的时序都不对,要改hs和vs 的时序
点赞  2011-12-9 14:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复