基于fpga的vga学习(3)
本次学习如何通过vga发送数字、文字、字母,
首先利用建模软件,将想要发送的数据通过数学建模转换,这里我用的软件是PCtoLCD,具体效果如下
这里可以看出,建模将数据装换成0和1,一个字母用16x8的像素点构成,然后将前景表现 为1,背景表现为0,
这样子就可以直接用fpga通过对0和1的判断,直接赋予该像素点一种颜色,这里我将字母设置为红色,背景为绿色
主要代码:
//这里我要显示我的名字myz的参数
parameter line0 = 24'h000000,
line1 = 24'h000000,
line2 = 24'h000000,
line3 = 24'h000000,
line4 = 24'h000000,
line5 = 24'h000000,
line6 = 24'h000000,
line7 = 24'hfee77e,
line8 = 24'h494244,
line9 = 24'h492408,
line10 = 24'h492410,
line11 = 24'h491810,
line12 = 24'h491822,
line13 = 24'hed107e,
line14 = 24'h001000,
line15 = 24'h006000;
reg [4:0] bit_cnt;
always @(posedge clk_25 or negedge rst)
begin
if(!rst)
bit_cnt <= 5'h1f;
else if(x_cnt == 10'd442)
bit_cnt <= 5'd23;
else if(x_cnt > 10'd442 && x_cnt < 10'd446)
bit_cnt <= bit_cnt - 1'b1;
end
reg [7:0]vga_rgb;
always @(posedge clk_25)
begin
if(!valid)
vga_rgb <= 8'd0;
else if(x_cnt > 10'd442 && x_cnt < 10'd467)begin
case(y)
10'd231: if(line0[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_11100; //绿色
10'd232: if(line1[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd233: if(line2[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd234: if(line3[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd235: if(line4[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd236: if(line5[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd237: if(line6[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd238: if(line7[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd239: if(line8[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd240: if(line9[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd241: if(line10[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd242: if(line11[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd243: if(line12[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd244: if(line13[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd245: if(line14[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
10'd246: if(line15[bit_cnt]) vga_rgb <= 8'b111_000_00; //红色
else vga_rgb <= 8'b000_111_00; //绿色
default: vga_rgb <= 8'h00;
endcase
end
else
vga_rgb <= 8'h00;
end
基于fpga的vga学习(3)的更多相关文章
- 基于fpga的vga学习(2)
本次学习主要向配合basys2实行. 上次学习vga的rgb三个output都是1位的,但是我看了basys2的rgb分别是332位,这里让我卡顿了很久, 之后通过查资料才知道,rgb的不同大小表示的 ...
- 基于fpga的vga学习(1)
这次学习我主要掌握了vga的基本运行原理. vga基本概念: VGA时序主要包括两条信号线(HS,VS)的输出——行扫描和场扫描.VGA采用逐行扫描,每个像素对应的点扫描.行与行之间存在消隐以及显示时 ...
- 基于FPGA的VGA显示设计(二)
上一篇:基于FPGA的VGA显示设计(一) 参照 CrazyBingo 的 基于FPGA的VGA可移植模块终极设计代码 的工程代码风格,模块化处理了上一篇的代码,并增加了一点其它图形. 顶层 ...
- 基于FPGA的VGA可移植模块终极设计【转】
本文转载自:http://www.cnblogs.com/lueguo/p/3373643.html 略过天涯 基于FPGA的VGA可移植模块终极设计 一.VGA的诱惑 首先,VGA的驱动,这事, ...
- 基于FPGA的VGA显示实验设计
基于FPGA的VGA显示实验设计 成果展示(优酷视频): 视频: 基于FPGA的VGA显示技术(手机控制) http://v.youku.com/v_show/id_XNjk4ODE3ODUy.htm ...
- 基于FPGA的VGA显示静态图片
终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为 ...
- [置顶]
基于FPGA的VGA简易显存设计&NIOS ii软核接入
项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...
- 基于FPGA驱动VGA显示图片的小问题
学习VGA显示图片的过程中,遇到了一个小问题,我在显示屏上开了一个60x60的框,放了一张图片进去显示,但是最终的结果如下图所示. 出现了一个竖黑边,看了看代码,分析了一下逻辑没问题,然而看这个显示那 ...
- 基于FPGA的VGA显示设计(一)
前言 FPGA主要运用于芯片验证.通信.图像处理.显示VGA接口的显示器是最基本的要求了. 原理 首先需要了解 : (1)VGA接口协议:VGA端子_维基百科 .VGA视频传输标准_百度 引脚1 RE ...
随机推荐
- JUnit源码分析 - 扩展 - 自定义Rule
JUnit Rule简述 Rule是JUnit 4.7之后新加入的特性,有点类似于拦截器,可以在测试类或测试方法执行前后添加额外的处理,本质上是对@BeforeClass, @AfterClass, ...
- 软件工程Ⅱ:Git的安装与使用
作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 1.下载安装配置用户名和邮箱. (1) 安装Git软件. (2) ...
- R语言读取XML数据
- JVM学习02:GC垃圾回收和内存分配
JVM学习02:GC垃圾回收和内存分配 写在前面:本系列分享主要参考资料是 周志明老师的<深入理解Java虚拟机>第二版. GC垃圾回收和内存分配知识要点Xmind梳理 案例分析1-(G ...
- 使用Spring Cache缓存出现的小失误
前文:今天在使用Spring Boot项目使用Cache中出现的小失误,那先将自己创建项目的过程摆出来 1.首先创建一个Spring Boot的项目(我这里使用的开发工具是Intellij IDEA) ...
- odoo 前端页面渲染--数据库管理页面
例子 - 去除登陆页面的Powered by Odoo链接从上面的第3步,我们可以看到,最后登录界面是由'web.login' 模板来显示的,通过odoo的继承方式,我们很容易的就可以去除这个链接,通 ...
- AOP-事物管理
1. Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务
- Memcached和Memcache安装(64位win7)[z]
http://www.cnblogs.com/lucky-man/p/6126667.html 一.Memcached和Memcache的区别: 网上关于Memcached和Memcache的区别的理 ...
- position在IE下的问题
盒子设置position:absolute;后,子盒子的浮动可以不做清除浮动处理,同样,使用fixed,子盒子也不需要做清除浮动的处理 在IE7下(据说IE6也不行),盒子设置overflow:hid ...
- MySQL锁问题,事务隔离级别
未完待续... 概述 这里专门指的是InnoDB存储引擎的锁问题和事务隔离级别. ========================================================= 锁 ...