VGA接口(四)字符
今天再接再励,字符在电脑上也显示出来了,这个字符和昨天的图片有点不一样,昨天显示的是一幅图片,可以行取模,然后将行地址赋给rom_addr,若要显示多幅图片,这个方法,还有待改进!今天要在电脑液晶屏上显示多个字符,可以列取模,然后,将列地址赋给rom_addr,然后,根据rom_data逐行判断点阵是否该点亮。还是,那句话其实大家只要把VGA的时序,、怎样取字模存入FPGA的ROM中,以及采取怎样的扫描方式在电脑上显示,这几个问题弄明白了,我想VGA接口也不是那么难!
//程序实现的功能:在电脑液晶屏上显示“大家来一起学习 FPGA”几个字符;64*640点阵module vga_zifu(clk,rst_n,hsync,vsync,vga_rgb);input clk; //系统时钟50MHZ; input rst_n; //复位信号,低电平有效;output hsync; //列同步信号; output vsync; //行同步信号; output[2:0] vga_rgb; //色彩信号;reg[9:0] x_cnt; //行坐标; always @ (posedge clk or negedge rst_n)beginif(!rst_n)x_cnt<=10'd0;else if(x_cnt==10'd665)x_cnt<=10'd0;else if(y_cnt==11'd1039)x_cnt<=x_cnt+1'b1;end reg [10:0] y_cnt; //列坐标; always @(posedge clk or negedge rst_n)beginif(!rst_n)y_cnt<=11'd0;else if(y_cnt==1039)y_cnt<=11'd0;else y_cnt<=y_cnt+1'b1;endwire[9:0] x_pos; //有效显示区域坐标; wire[10:0] y_pos;assign x_pos=x_cnt-10'd31; // 显示的初始位置,相当于坐标(0,0); assign y_pos=y_cnt-11'd187; wire valid; //有效显示区;assign valid=((x_cnt>=10'd31)&&(x_cnt<10'd631)&&(y_cnt>=11'd187)&&(y_cnt<11'd987)); reg vsync_r; //行同步信号的产生; always @ (posedge clk or negedge rst_n)beginif(!rst_n)vsync_r<=1'b1;else if(x_cnt==0)vsync_r<=1'b0;else if(x_cnt==6)vsync_r<=1'b1;else vsync_r<=vsync_r; end assign vsync=vsync_r;reg hsync_r; //列同步信号的产生; always @ (posedge clk or negedge rst_n)beginif(!rst_n)hsync_r<=1'b1;else if(y_cnt==0)hsync_r<=1'b0;else if(y_cnt==120)hsync_r<=1'b1;else hsync_r<=hsync_r; endassign hsync=hsync_r;reg [9:0] rom_addr; //64*640点阵,逐列取字模; reg [63:0] rom_data;vga_hanzi vga_hanzi_inst (.address ( rom_addr ),.clock ( clk ),.q ( rom_data ));always @(posedge clk or negedge rst_n)if(!rst_n) rom_addr <= 8'd0;else if(y_pos == 10'd55) rom_addr <= 8'd0;else rom_addr <= rom_addr+1'b1;wire dis_play = (x_pos >=10'd250) && (x_pos < 10'd315) //字符显示区;&& (y_pos >=10'd58) && (y_pos < 10'd699);reg [2:0] vga_rgb_r; always @ (posedge clk )beginif(!valid) vga_rgb_r<=3'b000;else if(dis_play)begin if(rom_data[10'd314-x_pos])vga_rgb_r<=3'b100; else vga_rgb_r<=3'b001;endelsevga_rgb_r<=3'b001; end assign vga_rgb=vga_rgb_r;endmodule
转载于:https://www.cnblogs.com/tphust/archive/2012/07/18/2597984.html
VGA接口(四)字符相关推荐
- zynq7000 学习(二十四)VGA 接口原理分析和控制逻辑的实现学习
VGA 接口原理分析和控制逻辑的实现学习 学习内容 本课程首先 进行 VGA 接口 的原理介绍,然后 编写逻辑 控制代码,最终进行 仿真和实现. 本课程 主要包括原理介绍和 设计实现 两个部分. 原理 ...
- 高速接口之VGA接口
原理介绍 VGA(Video Graphics Array)即视频图形阵列,是IBM在1987年推出的使用模拟信号的一种视频传输标准,在当时具有分辨率高.显示速率快.颜色丰富等优点,在彩色显示器领域得 ...
- VGA接口复习笔记(原理,时序)VGA接口FPGA实现
VGA接口复习笔记(原理,时序)VGA接口FPGA实现 一.显示器工作原理 显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左 ...
- DVI VGA 接口定义
DVI(Digital Visual Interface),即数字视频接口.它是1998年9月,在Intel开发者论坛上成立的,由Silicon Image.Intel(英特尔).Compaq(康柏) ...
- VGA接口之显示彩色条
本博文介绍下spartan-3e start kit board上的VGA接口的用法. 一.VGA简介 VGA(Video Graphics Array)是IBM于1987年提出的一个使用模拟信号的电 ...
- 电脑html接口显示器不亮,VGA接口连接显示器电脑点不亮
我想把电脑与电视连接,我显卡上有15针VGA.DVI.S端子借接口,电视是数字电视,有15针VGA.S端子,我用S端子连接后图象不好,我想用VGA接口连接,怎么样效果好又经济又简单?我想用显示器玩游戏 ...
- 输入端口 HDMI接口,S端子,AV接口,VGA接口, 分量视频接口,TV输入,USB接口的对比
VGA输入接口:VGA 接口采用非对称分布的15pin 连接方式,其工作原理:是将显存内以数字格式存储的图像( 帧) 信号在RAMDAC 里经过模拟调制成模拟高频信号,然后再输出到等离子成像,这样VG ...
- 如何用VGA接口乳法?
1.什么是VGA接口 1.1.VGA接口介绍 VGA,英文全称"Video Graphics Array",译为视频图形阵列,是一种使用模拟信号进行视频传输的标准协议,由 IBM ...
- HDMI和VGA接口
HDMI英文全称为:High Definition Multimedia Interface,它是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号. HDMI接口与VGA接口区别如下: ...
- VGA接口一根针折了
注意!!要由 针 对照着 接口 看!!别看反了! VGA接头图如下: VGA接口,15根针,其对应接口定义如下: 1红基色 red 2 绿基色 green 3 蓝基色 blue 4 地址码 ID Bi ...
最新文章
- js常用阻止冒泡事件
- TextArea的滚动条看不到了,可能与height有关
- Appium录制脚本520-2
- 使用application log分析Fiori navigation target解析错误
- .NET 指南:使用可变数量的参数的成员
- VC预处理指令与宏定义的妙用
- python结构_科学网—Python与结构分析(1)---反应谱 - 潘超的博文
- 考研复试C程序设计基础
- 当下移动互联网的6个泡沫,快要破了!
- 《私募股权基金投资基础知识》---第二章
- VUE踩坑——this.$nextTick、头条小程序组件传值报错问题
- ubuntu18.04 cuda卸载及安装
- STM32 GPIOx_CRL/GPIOx_CRH 寄存器
- obiee12c ssl 启动服务报错BEA-149535BEA-149504
- 2022-2028全球水下激光扫描仪行业调研及趋势分析报告
- 在线怎么将pdf文件转换成word文档转换器使用
- Python 问题 SyntaxError: Non-ASCII character '\xe9' in file
- 数据标注平台-LabelStudio
- 英文文献(期刊/书籍)搜索及下载方法汇总
- Athentech Perfectly Clear Complete 3.6.3汉化版|一键智能清晰磨皮插件