在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2492|回复: 6

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

[复制链接]
发表于 2011-3-7 15:55:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
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;


以上是源程序

下面是仿真图 RGB 三条输出全部没信号 不知道为什么
未命名.jpg
未命名.jpg
发表于 2011-3-7 20:41:49 | 显示全部楼层
先解决一下行场同步的问题吧,都长的和时钟一样了
发表于 2011-3-8 00:07:55 | 显示全部楼层
二楼说的对,行场同步有很严重的问题,你设计的分辨率是多少来的?
看来你的频率是1GHz,这是什么制式?用到这么高的频率?
发表于 2011-3-8 08:52:09 | 显示全部楼层
if reset = '1' then
   GRB <= "000"; i:=96; j:=0;  hs <= '1';
       elsif clk'event and clk = '1'  then
         if i = 799 then
            i:=0;
         else
              i:=i+1;
         end if;

        if i < 96 then
            hs <= '0';
        else
            hs <= '1';
         end if;

         if j = 79 then
            GRB(1) <= not GRB(1);
            j:=0;
        else               
             j:=j+1;               
       end if;
      改成这样子再试一下吧
发表于 2011-3-8 09:03:26 | 显示全部楼层
FPGA语言?
发表于 2011-3-8 12:09:13 | 显示全部楼层
呵呵没有看明白
发表于 2011-3-8 12:11:18 | 显示全部楼层
没有看明白
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 00:05 , Processed in 0.032230 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表