NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,VGA接口显示彩条

1. VGA显示

1.1 VGA的端口定义

在这里插入图片描述

1.2 VGA的显示时序

扫描显示的过程
在这里插入图片描述
行同步时序
在这里插入图片描述
场同步时序
在这里插入图片描述
二维时序图
在这里插入图片描述

1.3 像素点与时序

在这里插入图片描述

1.4 此处选择DELL_E2016HV型显示器,分辨率1600900;显示模式为640480@60

在这里插入图片描述

2. vivado设计与仿真

2.1 总体框图

在这里插入图片描述

2.2 clk_gen模块,主要实现100MHz转25MHz

引入locked和rst_n的必要性,IP核产生的时钟有延时,可以利用locked信号作为标识
在这里插入图片描述
在vivado中使用pll,使用的时候直接调用IP核
搜索clk,选择红色框
在这里插入图片描述
设置PLL,其他选项默认
在这里插入图片描述
在这里插入图片描述

仿真图
在这里插入图片描述
clk_25mhz产生的时候需要注意的点
1.复位信号sys_rst_n高电平有效,这里的低电平有效是对输入时的数据进行了取反操作
2.clk_25mhz并不是立即产生的,复位信号无效后的第2个周期产生了一个高电平,下图可以看出;
延时 1655-115=150ns 后产生正常的50MHz信号
在这里插入图片描述
在这里插入图片描述

2.3 vga_pic模块,实现坐标位置与数据的转换

在这里插入图片描述

2.3.1 vga_pic.v文件

利用坐标位置 pix_x 赋值时使用到了 casez 语句,增强代码可读性和节省资源;
使用 if-else 多层嵌套也是可以的;
亦可使用 case 语句在关键点赋值,例如 pix_x = 63,…;其他时间保持不变即可

module  vga_pic
(
    input   wire            vga_clk     ,
    input   wire            sys_rst_n   ,
    input   wire    [9:0]   pix_x       ,
    input   wire    [9:0]   pix_y       ,
   
    output  reg     [11:0]  pix_data    
);

parameter   H_VALID = 10'd640,
            V_VALID = 10'd480;

parameter   RED    = 12'hF00,
            ORANGE = 12'hF80,
            YELLOW = 12'hFF0,
            GREEN  = 12'h0F0,
            CYAN   = 12'h0FF,
            BLUE   = 12'h00F,
            PURPLE = 12'hF0F,
            BLACK  = 12'h000,
            WHITE  = 12'hFFF,
            GRAY   = 12'hDDD;

always@(posedge vga_clk or negedge sys_rst_n)
    if(sys_rst_n == 1'b0)
        pix_data <= RED;
    else    casez(pix_x)
        10'b00_00??_???? : pix_data <= RED   ;
        10'b00_01??_???? : pix_data <= ORANGE;
        10'b00_10??_???? : pix_data <= YELLOW;
        10'b00_11??_???? : pix_data <= GREEN ;
        10'b01_00??_???? : pix_data <= CYAN  ;
        10'b01_01??_???? : pix_data <= BLUE  ;
        10'b01_10??_???? : pix_data <= PURPLE;
        10'b01_11??_???? : pix_data <= BLACK ;
        10'b10_00??_???? : pix_data <= WHITE ;
        10'b10_01??_???? : pix_data <= GRAY  ;
    endcase


endmodule

2.4 vga_ctrl模块,实现数据的转换显示

2.4.1 色彩565与444的转换

在这里插入图片描述
从NEXYS4_DDR的原理图可以看出,其使用权电阻网络,且红、绿、蓝的色深为4位
在这里插入图片描述
对比565,将多余的低位除去,可得444的编码
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值