本次学习如何通过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. python 并发编程 锁 / 信号量 / 事件 / 队列(进程间通信(IPC)) /生产者消费者模式

    (1)锁:进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理. 虽然使用加锁的形式实现了 ...

  2. d3.js 平移缩放

    rt 记录一下 var zoom = d3.zoom() .scaleExtent([0.1,10]) .on("zoom", zoomed); function zoomed() ...

  3. 利用百度编辑器和IIS限制文件上传的大小

    1.百度编辑器的大小限制 针对不同的文件类型限制大小 例如图片是imageMaxSize ,依次类推 /* 前后端通信相关的配置,注释只允许使用多行方式 */ {     /* 上传图片配置项 */ ...

  4. 搭建zookeeper和Kafka集群

    搭建zookeeper和Kafka集群: 本实验拥有3个节点,均为CentOS 7系统,分别对应IP为10.211.55.11.10.211.55.13.10.211.55.14,且均有相同用户名 ( ...

  5. python入门day01

      一.编程和编程语言 电脑的基本原理: #计算机通过高低电流表示二进制数的1和0,所以计算机识别的是电压的高低,准确地说是用电压表示的各种数据,即数字信号;其他的物理量必须通过传感器等设备转换成数字 ...

  6. $.ajax()参数详解

    来自于<锋利的jQuery(第2版)>. 参数 类型 说明 accepts Map 内容类型发送请求头,告诉服务器什么样的响应会接受返回. 如果accepts设置需要修改,推荐在$.aja ...

  7. 机器学习入门:Linear Regression与Normal Equation -2017年8月23日22:11:50

    本文会讲到: (1)另一种线性回归方法:Normal Equation: (2)Gradient Descent与Normal Equation的优缺点:   前面我们通过Gradient Desce ...

  8. linux 网络管理的三种方式

    修改网络IP的三种方式 1.修改配置文件 1.1dhcp自动获取 配置文件地址/etc/sysconfig/network-scripts TYPE=Ethernet  #类型=以太网 PROXY_M ...

  9. 安装pygame出现is not a supported wheel on this platform解决办法

    安装python库pygame时出现如下错误: 查看python的版本是否与之匹配,发现版本不匹配问题 例如1.我的python3.6是32位的,就只能安装cp36的:结果发现安装还是出现问题: 2. ...

  10. Web.Debug.config和Web.Release.config设置xdt:Transform无效的解决办法

    在VS中右键网站>发布时xdt:Transform 生效.但是使用tfs的build时,build可以正常通过,但是web.release.config中的xdt:Transform 无效,其它 ...