/* * Function: VGA Timing Generator * Author: Liutianchen * Date: 2016-12-5 * Version: 6.0 * Environment: Verilog HDL with Vivado 2016.3 */ `timescale 1ns / 1ps /* PARAMETER: 0: Sync 1: Sync + Back porch 2: Sync + Back porch + Display Area 3: Sync + Back porch + Display Area + Front Porch */ module vga_time_gen( input clk, input rst, input ena, output VGA_HS, output VGA_VS, output reg Ready, output [15:0] HCounter, output [15:0] VCounter); reg [15:0] cntH=0,cntV=0; reg [15:0] Hpara [0:3]; reg [15:0] Vpara [0:3]; initial begin ///Parameter Announcement /// 1280 x 1024@60hz 108MHz Hpara[0]=112; Hpara[1]=112+248; Hpara[2]=112+248+1280; Hpara[3]=112+248+1280+48; Vpara[0]=3; Vpara[1]=3+38; Vpara[2]=3+38+1024; Vpara[3]=3+38+1024+1; ////800x600@60hz 40MHz // Hpara[0]=128; // Hpara[1]=128+88; // Hpara[2]=128+88+800; // Hpara[3]=128+88+800+40; // // Vpara[0]=4; // Vpara[1]=4+23; // Vpara[2]=4+23+600; // Vpara[3]=4+23+600+1; ////1024x768@85hz 94.6MHz // Hpara[0]=96; // Hpara[1]=96+208; // Hpara[2]=96+208+1024; // Hpara[3]=96+208+1024+48; // // Vpara[0]=3; // Vpara[1]=3+36; // Vpara[2]=3+36+768; // Vpara[3]=3+36+768+1; end ///////////////Horizontal Scanning/////////////////// always@(posedge clk or posedge rst) begin if(rst) cntH<=0; else if(cntH==Hpara[3]) cntH<=0; else cntH<=cntH+1; end ///////////////Vertical Scanning///////////////////// always@(posedge clk or posedge rst) begin if(rst) cntV<=0; else if(cntV==Vpara[3]) cntV<=0; else if(cntH==Hpara[3]) cntV<=cntV+1; end ///////////////Displaying Area Ready?/////////////// always@(posedge clk or posedge rst) begin if(rst) Ready<=0; else if(cntH>Hpara[1] && cntH<Hpara[2] && cntV>Vpara[1] && cntV<Vpara[2]) Ready<=1; else Ready<=0; end ///////////////////Output Sync Signal/////////////// assign VGA_HS=cntH<=Hpara[0]?(ena?1:0):0; assign VGA_VS=cntV<=Vpara[0]?(ena?1:0):0; ///////////////////Ouput Position//////////////////// assign HCounter=cntH-Hpara[1]; assign VCounter=cntV-Vpara[1]; endmodule
VGA端口时序发生器,适用于Xilinx公司Nexys4开发板。
Nexys4开发板支持4096色RGB显示输出。
请使用时钟IP核发生VGA显示需要的时钟频率。频率对应的时序参数表可从Tiny VGA网站查阅。
转载请注明出处。
原文地址:http://www.cnblogs.com/liutianchen/p/6292721.html
如果你还没选课那请选张志峰别问为什么。。。