关闭

verilogVGA显示字符

标签: DE2vga字符FPGA
105人阅读 评论(0) 收藏 举报
分类:
/*
2017.9.19 gy DE2 
vga  640x480   60hz  
ADV7123 D/A 
输入时钟50MHz 低电平复位

时序:
              水平同步参数h 行扫描
          同步 后沿 有效视屏 前沿  总
时间us    3.8   1.9    25.4     0.6   31.7 
计数      96    48    640(l)    16    800

              垂直同步参数v 列扫描          
	      同步 后沿 有效视屏 前沿  总
行数      2    33     480(w)    10    525
时间us = 行数X扫描一行所需要的时间

像素时钟25MHz yue=800x525x60
总时间 =31.7usX525X60 yue=1s
计一个数的时间为 1/25MHz or 3.8/96
*/
module vga(
      clk,rst_n,                         //input
      vga_sync,vga_blank,vga_clk,        //output ADV7123 
      vga_r,vga_g,vga_b,vga_hs,vga_vs    //output VGA     
);
input clk,rst_n;
output reg [9:0] vga_r,vga_g,vga_b;
output reg vga_clk,vga_hs,vga_vs;
output vga_blank,vga_sync;
//-------------------分频-------------------------
always @(posedge clk or negedge rst_n)
       if (!rst_n)
		  vga_clk<=1'b0;
       else vga_clk<=~vga_clk;

//---------------下面的时钟为vga_clk--------------
//---------------时序参数800x525------------------
parameter H_SYNC=10'd96;
parameter H_BACK=10'd48;
parameter H_LENGTH=10'd640;
parameter H_FRONT=10'd16;

parameter V_SYNC=10'd2;
parameter V_BACK=10'd33;
parameter V_WIDTH=10'd480;
parameter V_FRONT=10'd10;
	
reg [9:0] x,y;
//不用SOG(sync on green 同步信号只在绿色信号中出现)
assign vga_sync=1'b0;
//---------------------计数-----------------------
always@(posedge vga_clk or negedge rst_n)
begin 
     if(!rst_n) x<=10'd0;
     else if(x==800) x<=0;
     else x<=x+1'b1;
end
always@(posedge vga_clk or negedge rst_n)
begin 
     if(!rst_n) y<=10'd0;
     else if(y==525) y<=0;
     else if(x==800) y<=y+1'b1;
end 
//------------通过计的数字输出同步信号---------
always@(posedge vga_clk or negedge rst_n)
begin 
     if(!rst_n) vga_hs<=1'b1;
     else if(x==0) vga_hs<=1'b0;
     else if(x==H_SYNC) vga_hs<=1'b1;
end
always@(posedge vga_clk or negedge rst_n)
begin
     if(!rst_n) vga_vs<=1'b1;
     else if(y==0) vga_vs<=1'b0;
     else if(y==V_SYNC) vga_vs<=1'b1;
end
//----------通过横纵坐标x,y计算出显示的区域---
reg [9:0] vga_x,vga_y;
always@(posedge vga_clk)
begin
       vga_x=x-H_SYNC-H_BACK;
       vga_y=y-V_SYNC-V_BACK;
end
//---------------进行同步时消隐------------------
assign vga_blank=vga_x<H_LENGTH && vga_y<V_WIDTH;
//----------通过vga_x,vga_y显示相应颜色----------
parameter
haha0=16'h0000,
haha1=16'h3FF0,
haha2=16'h2020,
haha3=16'h2020,
haha4=16'h3FF0,
haha5=16'h0400,
haha6=16'h0A7F,
haha7=16'h1242,
haha8=16'h2242,
haha9=16'hC242,
haha10=16'h2242,
haha11=16'h1242,
haha12=16'h0A7F,
haha13=16'h0400,
haha14=16'h0400,
haha15=16'h0000;//哈 pctolcd 

reg [3:0] w;
always @(posedge vga_clk or negedge rst_n)
    if (!rst_n)
          hei;
    else if(300<=vga_x&&vga_x<332&&220<=vga_y&&vga_y<236)
          begin
             if(w==15) w<=0;
             w<=w+1'b1;
             case(w)
               4'd0:if(haha0[236-vga_y]) hei; else bai;
               4'd1:if(haha1[236-vga_y]) hei; else bai;
               4'd2:if(haha2[236-vga_y]) hei; else bai;
               4'd3:if(haha3[236-vga_y]) hei; else bai;
               4'd4:if(haha4[236-vga_y]) hei; else bai;
               4'd5:if(haha5[236-vga_y]) hei; else bai;
               4'd6:if(haha6[236-vga_y]) hei; else bai;
               4'd7:if(haha7[236-vga_y]) hei; else bai;
               4'd8:if(haha8[236-vga_y]) hei; else bai;
               4'd9:if(haha9[236-vga_y]) hei; else bai;
               4'd10:if(haha10[236-vga_y]) hei; else bai;
               4'd11:if(haha11[236-vga_y]) hei; else bai;
               4'd12:if(haha12[236-vga_y]) hei; else bai;
               4'd13:if(haha13[236-vga_y]) hei; else bai;
               4'd14:if(haha14[236-vga_y]) hei; else bai;
               4'd15:if(haha15[236-vga_y]) hei; else bai;
               default:hei;
			 endcase
          end
    else
         huang;
          
//----------------设置颜色------------------------          
task hei;
begin
	 vga_r=10'b0;
	 vga_g=10'b0;
	 vga_b=10'b0;
end
endtask
task bai;
begin
	 vga_r=10'b1111111111;
	 vga_g=10'b1111111111;
	 vga_b=10'b1111111111;
end
endtask
task huang;
begin
	 vga_r=10'b1111111111;
	 vga_g=10'b1111111111;
	 vga_b=10'b0;
end
endtask
//----------------------结束-----------------------
endmodule 

0
0
查看评论

字模提取软件的使用(pctolCD2002,基于FPGA的VGA显示汉字)

字模软件http://pan.baidu.com/s/1mi7LI8S(有问题的留言) 设置参数 选择逐行式(指的是一个字模,按行计数) 取模方向:顺向,高位在前 本人取得字模是基于FPGA的VGA显示,而virilog hdl语言的数组是高位在前 ,符合其语法规则,如 reg [120:...
  • cchulu
  • cchulu
  • 2017-07-10 15:13
  • 288

用表格形式显示字符 汇编实验

<br /><br />首先,锅就一学期来对汇编的忽略致以深深的歉意和悔恨和无奈和骚瑞。。。。汇编是个很基础很重要很根本很实在很不友好的东西,写出来巨丑无比。但是一旦拥有,别无他求。鄙人还是衷心希望CS科出身的诸位无论如何拿下ta!以示CS专业的特色和优势和BT和牛逼,假如你...
  • shifuwawa
  • shifuwawa
  • 2010-06-18 00:52
  • 1909

ASCII可显示字符查询表

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。  ...
  • fengyunzhongwei
  • fengyunzhongwei
  • 2014-09-12 09:07
  • 1530

ASCII控制字符和ASCII可显示字符

原文链接 http://www.cnblogs.com/kakafra/archive/2013/01/07/2850099.html ASCII控制字符和ASCII可显示字符 ASCII控制字符 二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义 ...
  • wang740209668
  • wang740209668
  • 2016-06-24 22:06
  • 359

自己写的字符处理函数+字符处理函数

(1)分割函数: ##############分割函数 Split {  MydataFrame  x  MydataFrame  write.table(MydataFrame,file="Split1.csv",sep=",&...
  • yjz_sdau
  • yjz_sdau
  • 2016-06-03 16:08
  • 262

verilogVGA显示太极图案

/* 2017.9.19 gy DE2 vga 640x480 60hz ADV7123 D/A 输入时钟50MHz 低电平复位 时序: 水平同步参数h 行扫描 同步 后沿 有效视屏 前沿 总 时间us 3.8 1.9 ...
  • qq_38204686
  • qq_38204686
  • 2017-09-22 15:23
  • 74

串口显示字符

#include #include "delay.h" #include void uart_init() { SCON = 0x50; TMOD |= 0x20; TH1 = 0xfd; TR1 = 1; } vo...
  • Wjy2016
  • Wjy2016
  • 2016-10-08 21:43
  • 170

SQLPLUS 下可以显示sql语句执行时间的命令

SET TIMING ON | OFF SQL> set timing onSQL> select * from emp where empno = 7369; EMPNO ENAME JOB MGR HIREDATE ...
  • zhoubo200
  • zhoubo200
  • 2010-03-14 12:05
  • 1061

debug 显示字符

  • csmatrix
  • csmatrix
  • 2010-01-05 22:44
  • 163

opengl文字显示

线贴一个简单可用的opengl文字显示调用函数 opengl文字显示大致三步: 1,创建字体 2,输出打印 3,删除字体 1,创建字体的函数: [cpp] view plaincopy /*   * BuildFon...
  • zcj331
  • zcj331
  • 2014-04-11 13:30
  • 287
    个人资料
    • 访问:9599次
    • 积分:685
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论