本次学习如何通过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)的更多相关文章

  1. 基于fpga的vga学习(2)

    本次学习主要向配合basys2实行. 上次学习vga的rgb三个output都是1位的,但是我看了basys2的rgb分别是332位,这里让我卡顿了很久, 之后通过查资料才知道,rgb的不同大小表示的 ...

  2. 基于fpga的vga学习(1)

    这次学习我主要掌握了vga的基本运行原理. vga基本概念: VGA时序主要包括两条信号线(HS,VS)的输出——行扫描和场扫描.VGA采用逐行扫描,每个像素对应的点扫描.行与行之间存在消隐以及显示时 ...

  3. 基于FPGA的VGA显示设计(二)

    上一篇:基于FPGA的VGA显示设计(一)     参照 CrazyBingo 的 基于FPGA的VGA可移植模块终极设计代码  的工程代码风格,模块化处理了上一篇的代码,并增加了一点其它图形. 顶层 ...

  4. 基于FPGA的VGA可移植模块终极设计【转】

    本文转载自:http://www.cnblogs.com/lueguo/p/3373643.html 略过天涯   基于FPGA的VGA可移植模块终极设计 一.VGA的诱惑 首先,VGA的驱动,这事, ...

  5. 基于FPGA的VGA显示实验设计

    基于FPGA的VGA显示实验设计 成果展示(优酷视频): 视频: 基于FPGA的VGA显示技术(手机控制) http://v.youku.com/v_show/id_XNjk4ODE3ODUy.htm ...

  6. 基于FPGA的VGA显示静态图片

    终于熬到暑假了,记过三四周的突击带考试,终于为我的大二画上了一个完整的句号,接下来终于可以静心去做自己想做的事情了,前一阵子报了一个线上培训班,学学Sobel边缘检测,之前一直在学习图像处理,但是因为 ...

  7. [置顶] 基于FPGA的VGA简易显存设计&NIOS ii软核接入

    项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...

  8. 基于FPGA驱动VGA显示图片的小问题

    学习VGA显示图片的过程中,遇到了一个小问题,我在显示屏上开了一个60x60的框,放了一张图片进去显示,但是最终的结果如下图所示. 出现了一个竖黑边,看了看代码,分析了一下逻辑没问题,然而看这个显示那 ...

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

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

随机推荐

  1. JUnit源码分析 - 扩展 - 自定义Rule

    JUnit Rule简述 Rule是JUnit 4.7之后新加入的特性,有点类似于拦截器,可以在测试类或测试方法执行前后添加额外的处理,本质上是对@BeforeClass, @AfterClass, ...

  2. 软件工程Ⅱ:Git的安装与使用

    作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 1.下载安装配置用户名和邮箱. (1) 安装Git软件. (2) ...

  3. R语言读取XML数据

  4. JVM学习02:GC垃圾回收和内存分配

    JVM学习02:GC垃圾回收和内存分配 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. GC垃圾回收和内存分配知识要点Xmind梳理 案例分析1-(G ...

  5. 使用Spring Cache缓存出现的小失误

    前文:今天在使用Spring Boot项目使用Cache中出现的小失误,那先将自己创建项目的过程摆出来 1.首先创建一个Spring Boot的项目(我这里使用的开发工具是Intellij IDEA) ...

  6. odoo 前端页面渲染--数据库管理页面

    例子 - 去除登陆页面的Powered by Odoo链接从上面的第3步,我们可以看到,最后登录界面是由'web.login' 模板来显示的,通过odoo的继承方式,我们很容易的就可以去除这个链接,通 ...

  7. AOP-事物管理

    1. Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务

  8. Memcached和Memcache安装(64位win7)[z]

    http://www.cnblogs.com/lucky-man/p/6126667.html 一.Memcached和Memcache的区别: 网上关于Memcached和Memcache的区别的理 ...

  9. position在IE下的问题

    盒子设置position:absolute;后,子盒子的浮动可以不做清除浮动处理,同样,使用fixed,子盒子也不需要做清除浮动的处理 在IE7下(据说IE6也不行),盒子设置overflow:hid ...

  10. MySQL锁问题,事务隔离级别

    未完待续... 概述 这里专门指的是InnoDB存储引擎的锁问题和事务隔离级别. ========================================================= 锁 ...