原图片(480*480):

rgb.m(获取图片的RGB数据存在.coe文件里面)

src = imread('00743.jpg');
r = src(:,:,1);
g = src(:,:,2);
b = src(:,:,3);
data_r = reshape(r', 1,230400);
data_g = reshape(g', 1,230400);
data_b = reshape(b', 1,230400);%注意是先处理x 就是行!!!
fid=fopen('rgb_init.coe', 'wt');%打开文件
fprintf(fid, 'MEMORY_INITIALIZATION_RADIX=16;\n');
fprintf(fid, 'MEMORY_INITIALIZATION_VECTOR=\n');
for i = 1 : 230400-1fprintf(fid, '%x%x%x,\n', data_r(i),data_g(i),data_b(i));%使用%x表示十六进制数
end
fprintf(fid, '%x%x%x,\n',data_r(230400), data_g(230400),data_b(230400));%%输出结尾,每个数据后面用逗号或者空格或者换行符隔开,最后一个数据后面加分号
fclose(fid);%%关闭文件

然后把数据存在rom(480*480_24)里面;相对于上一个工程,只需要修改这个:

vga_pic.v

`timescale  1ns/1ns
//=======================================================================// Filename           : vga_pic.v
// Author             : Ritian73
// Created On         : 2022-03-02 23:51
// Last Modified      :
// Description        :
//
//
//=======================================================================module  vga_pic
(input   wire            vga_clk     ,   //输入工作时钟input   wire            sys_rst_n   ,   //输入复位信号,低电平有效input   wire    [11:0]  pix_x       ,   //输入VGA有效显示区域像素点X轴坐标input   wire    [11:0]  pix_y       ,   //输入VGA有效显示区域像素点Y轴坐标output  reg     [23:0]  pix_data        //输出像素点色彩信息
);
reg [17:0]addra;
wire [23:0]douta;
//********************************************************************//
//****************** Parameter and Internal Signal *******************//
//********************************************************************//
//parameter define
parameter   H_VALID =   12'd1920 ,   //行有效数据xV_VALID =   12'd1080 ;   //场有效数据yparameter   RED     =   24'hff0000,   //红色ORANGE  =   24'hff7d00,   //橙色YELLOW  =   24'hffff00,   //黄色GREEN   =   24'h00ff00,   //绿色CYAN    =   24'h0000ff,   //青色BLUE    =   24'h00ffff,   //蓝色PURPPLE =   24'hff00ff,   //紫色BLACK   =   24'hff0000,   //黑色WHITE   =   24'hff7d00,   //白色GRAY    =   24'hffff00;   //灰色/*
//pix_data:输出像素点色彩信息,根据当前像素点坐标指定当前像素点颜色数据
always@(posedge vga_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)pix_data    <= 23'd0;else    if((pix_x >= 0) && (pix_x < (H_VALID/10)*1))pix_data    <=  RED;else    if((pix_x >= (H_VALID/10)*1) && (pix_x < (H_VALID/10)*2))pix_data    <=  ORANGE;else    if((pix_x >= (H_VALID/10)*2) && (pix_x < (H_VALID/10)*3))pix_data    <=  YELLOW;else    if((pix_x >= (H_VALID/10)*3) && (pix_x < (H_VALID/10)*4))pix_data    <=  GREEN;else    if((pix_x >= (H_VALID/10)*4) && (pix_x < (H_VALID/10)*5))pix_data    <=  CYAN;else    if((pix_x >= (H_VALID/10)*5) && (pix_x < (H_VALID/10)*6))pix_data    <=  BLUE;else    if((pix_x >= (H_VALID/10)*6) && (pix_x < (H_VALID/10)*7))pix_data    <=  PURPPLE;else    if((pix_x >= (H_VALID/10)*7) && (pix_x < (H_VALID/10)*8))pix_data    <=  BLACK;else    if((pix_x >= (H_VALID/10)*8) && (pix_x < (H_VALID/10)*9))pix_data    <=  WHITE;else    if((pix_x >= (H_VALID/10)*9) && (pix_x < H_VALID))pix_data    <=  GRAY;elsepix_data    <=  BLACK;*/always@(posedge vga_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)beginpix_data    <= 24'd0;      endelse if((pix_x >= 720) && (pix_x < 1920 - 720) && (pix_y >= 300) && (pix_y < 1080 - 300)) beginpix_data <= douta;endelsepix_data    <= 24'hffffff;always@(posedge vga_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)beginaddra        <=18'b0;endelse if((pix_x >= 720) && (pix_x < 1920 - 720) && (pix_y >= 300) && (pix_y < 1080 - 300))addra     <= addra +1'b1;else if(addra == 18'd230400)addra        <=18'b0;   elseaddra        <=addra;   Rom_24_230400 Rom_24_230400 (.clka(vga_clk),    // input wire clka.addra(addra),  // input wire [17 : 0] addra.douta(douta)  // output wire [23 : 0] douta
);
endmodule

效果图:

友情提示:注意先扫描的是x还是y,和ceo文件数据有关系。

480*480*24bit的数据差不多占了Block Ram的一半..........

FPGA实现HDMI显示图片(1)相关推荐

  1. HDMI系列之一:基于Nios II的HDMI显示图片

    一休哥将在本文中介绍一个基于Nios II的HDMI显示图片的工程.我将主要分三个部分来介绍这一工程,从而实现工程效果. 1. Nios II的常规使用套路 2. 自定义HDMI IP核的制作 3. ...

  2. 基于FPGA的HDMI显示(二)

    基于FPGA的720P HDMI显示 1.4.1 HDMI 硬件电路分析   本次设计采用了 IO 模拟的方式实现 HDMI 的功能.与采用专用 HDMI 芯片相比,此方案具有成本更低.效果不输于采用 ...

  3. FPGA - 基于FPGA的HDMI显示

    写在前面 HDMI接口很早之前就想调试了,由于没有时间,就拖到了现在,而且毕业设计也是和视频处理系统有关,就趁这个机会把这个接口调试下. 开发环境 vivado 18.3 pynq - z2 HDMI ...

  4. 基于FPGA的HDMI显示(一)

    1.1 HDMI简介 简介略,网上很多,这里也不过多描述. 1.2 基于FPGA的HDMI接口设计   HDMI输出接口在FPGA方面应用时,主要有两种方式:一种就是如图1 22所示的方式,采用Sil ...

  5. 基于FPGA的VGA显示图片

    一.显示一张彩色图片 设计需求: 在VGA接口的显示屏上显示一张180*120彩色图片. 需求分析 (1)对图片裁剪及取数据 a.使用画图软件/美图秀秀将图片像素裁剪成180*120大小. b.取数据 ...

  6. activiti高亮显示图片_【正点原子FPGA连载】第二十章SD卡读BMP图片HDMI显示实验领航者 ZYNQ 之嵌入式开发指南...

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  7. 基于FPGA的HDMI图片显示

    第一次写博客,就当是练手了吧QAQ 无病呻吟[滑稽] 1.导出图片数据 2.将数据存入ROM中 3.程序设计 运行结果 总结 无病呻吟[滑稽] 首先说一下我用的板子,是XILINX的zynq-7020 ...

  8. 【正点原子FPGA连载】第四十四章MT9V034摄像头HDMI显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  9. 基于FPGA的 TMDS 编码 及 HDMI 显示

    目录 引言 TMDS 编码 原理简介 TMDS编码实现 HDMI差分数据串行 实现方法 源码 HDMI显示方法 思路 实现 工程结构 源代码分享 板级调试视频 引言 最近在开发板上倒腾了一下 TMDS ...

最新文章

  1. 不被邀请又怎样!马云都快买下中国AI芯片的半壁江山了,直怼腾讯和百度
  2. 厉害了,程序员的高考试卷,你能拿几分?
  3. NYOJ 904 search 二分查找
  4. SAP Analytics Cloud Model的delta upload(增量导入)功能
  5. jq匹配偶数行_jquery怎么实现奇偶行不同背景颜色?
  6. 目标检测训练trick超级大礼包—不改模型提升精度,值得拥有
  7. 蓝牙耳机声音一顿一顿的_这次让世界听听我们的声音——声阔SoundcoreLiberty2Pro蓝牙耳机...
  8. 加州“电力十足 ” iPhone12加速贬值成全“十三香”
  9. HTML Table 冻结行列
  10. 创业者如何利用数字经济实现企业升级?
  11. centos7.4 kubeadm安装Kubernetes 1.14.1 集群
  12. 从 0 开始学习 GitHub 电子书免费送
  13. paip.提升用户体验---显示密码控件ShowPwdController
  14. mysql远程连接error 1045_启用远程MySQL连接:错误1045(28000):用户被拒绝访问
  15. JEP 尝鲜系列 3 - 使用虚线程进行同步网络 IO 的不阻塞原理
  16. 用vue做一个app
  17. 利用mysql客户端查询UCSC数据库
  18. apple tv 开发_如何在Apple TV上重新排列,添加和删除频道
  19. 关于个人的年度小目标
  20. 基于vue的时间轴轮播图插件 timeline-carousel

热门文章

  1. PCL1.12安装+VS2019环境配置+测试程序:斯坦福兔子
  2. Harris-Benedict等式
  3. PS把图标背景变为透明背景
  4. 甲骨文服务器测速居然能达到400多M 优秀
  5. 深入折腾 Weex,知乎日报客户端开发
  6. windows 系统查看端口号并杀死
  7. python异步加载图片_如何在PyQt5中正确异步加载图像?
  8. c语言中的float类型,C语言中float类型详解
  9. SpringBoot+Vue+虹软(ArcSoft) 的一个在线人脸识别Web系统,可通过调用笔记本摄像头或者网络摄像头实时的进行人脸识别。
  10. C语言,if循环 for 循环 while循环 switch循环 do...while()循环