这里笔者首先记录一个问题,给自己提个醒,所有的模块都有一点点的问题,在行数列数都可能有一行像素的误差,有可能是在驱动和显示模块的问题,等后面修改,这里第一次做,只要不影响显示,实现功能。

字符显示只修改vga_display模块,其他模块参考FPGA实现VGA显示(二)——————color_bar显示及方框移动(参考开拓者FPGA开发指南)

字符显示相对较简单,主要是控制每一个像素点的黑白,通过取模软件,取子模,最后显示。笔者首先使用黑金提供的取模软件。

取子模成功后,就是代码书写,首先我取的是黑金的黑字,后面会总结26个英文字母及ROM读取子模。这里先总结黑字的显示方法。不知道是在取模时候软件的问题还是其他问题,取出来的子模有两个,笔者自己用眼瞅,直接去掉了另一个。这个软件个人感觉不是很好使,后面还有一个比较好使的软件。

代码

module vga_display_char(vga_clk,rst_n,x_pixel,y_pixel,pixel_data);
//---------------------------------
input                 vga_clk   ;
input                   rst_n   ;
input       [9:0]     x_pixel   ;
input       [9:0]     y_pixel   ;
//---------------------------------
output  reg [15:0]    pixel_data;
//---------------------------------
//---------------------------------
parameter white = 16'b11111_111111_11111   ;
parameter black = 16'b00000_000000_00000   ;
parameter red   = 16'b11111_000000_00000   ;
parameter green = 16'b00000_111111_00000   ;
parameter bule  = 16'b00000_000000_11111   ;
//---------------------------------
//28*63
reg [64:0] char [27:0];
always@(posedge vga_clk)
beginchar[0 ] <= 64'h0000000000000000;char[1 ] <= 64'h0000000000000000;char[2 ] <= 64'h0000000000000000;char[3 ] <= 64'h000000007FC00000;char[4 ] <= 64'h000003FFFFFC0000;char[5 ] <= 64'h000FFFFE07FE0000;char[6 ] <= 64'h0007F0FFFFFC0000;char[7 ] <= 64'h0003F07FFFF00000;char[8 ] <= 64'h0003FFFFEFE00000;char[9 ] <= 64'h0001FFFF9FC00000;char[10] <= 64'h0001F87E1F800000;char[11] <= 64'h0000FDFFFF000000;char[12] <= 64'h0000FFFE00000000;char[13] <= 64'h0000787E1C000000;char[14] <= 64'h000007FFFF800000;char[15] <= 64'h0001FFFF00000000;char[16] <= 64'h0000007E1F800000;char[17] <= 64'h00000FFFFFE00000;char[18] <= 64'h001FFFFF80000000;char[19] <= 64'h0001E01C01F80000;char[20] <= 64'h00F8FC3FE0FF0000;char[21] <= 64'h01F8FF0FF03FE000;char[22] <= 64'h03F87F87F01FF000;char[23] <= 64'h07F81F00000FE000;char[24] <= 64'h07F000000003C000;char[25] <= 64'h07C0000000000000;char[26] <= 64'h0000000000000000;char[27] <= 64'h0000000000000000;
end//开一个绿色方框,为320*240的大小,其余部分为蓝色
/*字为白底黑字,这里可以将很多字看成一个通过子模显示,所以这个方法也是可以用来显示多个字符的*/
always@(posedge vga_clk or negedge rst_n)
beginif(!rst_n)pixel_data <= black;else if(x_pixel <= 320 && y_pixel <= 240)if(x_pixel <= 64 && y_pixel <= 28)if(char[y_pixel][x_pixel])pixel_data <= black;else pixel_data <= white;else pixel_data <= green;else pixel_data <= bule;
endendmodule

FPGA实现VGA显示(三)——————单个字符显示相关推荐

  1. 基于FPGA的VGA显示对贪吃蛇游戏的设计

    基于FPGA的VGA显示对贪吃蛇游戏的设计 摘要 目前,电子数码产品已经进入了人生活的方方面面,而大多数电子产品都依靠显示屏来传递信息,由此可见用电路对显示屏进行控制的研究有很大的实用价值和市场需求. ...

  2. FPGA学习——VGA显示

    FPGA学习--VGA显示 一.VGA原理 (一)VGA协议 (二)VGA端口结构 (三)⾊彩原理 (四)扫描原理 1.扫描方式 2.逐行扫描 3.隔行扫描 (五)⾏场信号 二.显示姓名学号 (一)实 ...

  3. FPGA实现VGA显示(六)——————多字符显示及基于fpga的“打字机”实现

    前面笔者总结了如何显示单字符,设立通过一个简单的任务来总结如何实现vga多字符显示. 实验要求 基础: 由PC通过UART发送数据在VGA显示.数据可以为字母,数字,汉字(任选10个字),VGA分为左 ...

  4. 基于FPGA的VGA显示彩条、字符、图片

    目录 一.VGA介绍 (一) VGA协议 (二) VGA端口介绍 (三) 色彩原理 (四)VGA显示原理 VGA通信协议: VGA时序解析 时钟分频 二.实现 ​1.彩条显示 2.字符显示 3.图片显 ...

  5. FPGA实现VGA显示(二)——————color_bar显示及方框移动(参考开拓者FPGA开发指南)

    首先感谢所有开源分享资源的博主或者机构个人,这篇主要参考开拓者FPGA开发指南.通过分析代码,理清思路. 主要分为四个模块,顶层模块,时钟分频模块,VGA显示模块,VGA驱动模块.前三个模块在任何时候 ...

  6. 【FPGA】VGA显示文字、彩条、图片——基于DE2-115

    录 一.VGA概述 1.1 简述 1.2 管脚定义 1.3 行.场时序及分辨率 二.VGA显示文字 2.1 点阵汉字生成 2.2 工程建立 2.3 引入ip核-实现特定时钟频率+不同分辨率显示 2.3 ...

  7. 【接口协议】FPGA 驱动 VGA 显示实验(二)实验设计部分

    目录 实验任务 实验环境 实验设计 程序设计 VGA 时序模块 模块框图 仿真波形 顶层模块 约束文件 实验任务 利用FPGA驱动VGA实现彩条显示,分辨率为800 × 600@60Hz,分别显示三种 ...

  8. 基于FPGA的VGA显示设计(一)

    前言 FPGA主要运用于芯片验证.通信.图像处理.显示VGA接口的显示器是最基本的要求了. 原理 首先需要了解 : (1)VGA接口协议:VGA端子_维基百科 .VGA视频传输标准_百度 引脚1 RE ...

  9. fpga控制vga显示黑白图片

    1 在前几次的实验中,我们了解了VGA的时序,VGA的时序感觉是非常有意思的,摄像头.LCD和VGA的时序和VGA的实现都差不多,大体的时序都是相同的.VGA接口的显示器原理其实就相当于点阵,通过控制 ...

最新文章

  1. DrawerLayoutDemo【侧边栏(侧滑菜单)简单实现】
  2. Linux下mp3文件的乱码问题
  3. 电脑桌面便签_在电脑桌面使用敬业签怎么操作退出团队便签?
  4. python基础(文件、异常、模块、类、对象)
  5. 培训学web前端前景如何?
  6. linux的工程管理器是,Linux工程管理器——make
  7. 网站降权原因解析 -转
  8. 1024,今天给大家发100个现金红包和思否课程、掘金小册
  9. 汇编语言程序设计技巧详解(附例题)
  10. react-native 0.63.4 Xcode升级到13后遇到的问题
  11. 记录实验所用计算机硬件配置,《计算机硬件性能检测》实验指导书
  12. 自学按键精灵写脚本,非常有用的一个函数
  13. 物理层-计算机网络知识汇总(二)|Zam9036博客
  14. 华为ICT学院2.0计划发布,未来5年培养全球200万ICT人才
  15. 绘图软件教程(2)coreldraw12图层的使用与DXF文件的导出
  16. Qt鼠标相对位置、绝对位置、窗口位置、控件位置、控件大小、控件绝对位置
  17. golang 后台管理系统框架
  18. 开源项目you-get的下载和使用、使用Cookie、配置ffmpeg
  19. Vim保姆级教程 宏录制 寄存器 映射 插件
  20. unittest框架基础和报告输出

热门文章

  1. MySql安装错误代码1045的解决方案
  2. 在ASP.NET Web API中返回错误的最佳实践
  3. ng-model和ng-bind之间有什么区别
  4. Win11无法识别Wmic怎么办?Win11识别不了Wmic的解决方法
  5. history.go(-1)返回页面后,此页面中的input标签隐藏域中的值消失
  6. MTK:文件操作接口详解
  7. MTK 10A APP,菜单,资源添加
  8. python共享内存mmap_python - IPC在单独的Docker容器中的Python脚本之间共享内存 - 堆栈内存溢出...
  9. image 微信小程序flex_微信小程序进阶-flex布局
  10. 尝试自动重定向的次数太多_阿里Arthas 3.1.0版本:在线教程、内存编译器和强大的自动补全...