秦韵FPGA 转载或原创(十五) 高云FPGA--GW2A18C

简介

前面将了高速ADC并口adc的驱动,理论上应该讲解一下数据的存储、应用等,关于存储方面可以参考我之前的博客,比如写DDR3、写SDRAM,这里的DDR3在我调试过的板卡有双片DDR3和单片DDR3等,分别支持1:2和1:4模式,本篇文章不讲解这部分,主要讲解以下显示的内容,关于RGB接口的TFT屏幕,大家应该接触的比较多,比如4.3寸、5寸、7寸等更大的,目前我调试的位正点原子的4.3寸屏幕,给大家上一个彩条图片:
在这里插入图片描述

代码

LCD的驱动时序图就不放了,基本上就是数据使能信号、行场同步信号、背光控制信号、像素时钟、RGB565颜色数据等等信号的驱动讲解,这部分的东西可以百度搜以下,主要给大家简单讲解一下代码和过程,这个基本例程主要时彩条展示模块,驱动模块,以及PLL IP Core组成。
下面主要是DRV模块的代码:

//	命名规范: drv_xxx 为驱动模块  ctr_xxxx: 为控制模块   top_xxx:为顶层文件
module drv_tft43_m(
	input 					clk,		//这例的clk 是通过pll分频之后输出的时钟
	input 					rst_n,		//低电平复位
    output               tft43_deb,  
    output               tft43_hsync,      
    output               tft43_vsync,      
    output     reg       tft43_black,     
    output               tft43_clk,     
    output       [15:0]  tft43_rgb,    
    output     reg       tft43_reset
    );

//------------这里采用参数定义利于修改-----------------------------------
parameter  tft43_h_sync   =  11'd41;     
parameter  tft43_h_back   =  11'd2;      
parameter  tft43_h_aera   =  11'd480;    
parameter  tft43_h_tota  =  11'd525;    
   
parameter  tft43_v_sync   =  11'd10;     
parameter  tft43_v_back   =  11'd2;      
parameter  tft43_v_aera   =  11'd272;    
parameter  tft43_v_tota  =  11'd286;    
//---------------------------------------------------------------------

//主要需要控制的是行场信号的时序,关于tft屏幕的消影其他的暂时不讲解,先看代码的处理。
// ______|--------------------------|______|-------------------------------|____
//_______|------|__|-------|__|-----|______|-----|__|-----|__|-----|__|----|____

/*简单的画一下行场信号的控制时许图,不是很标准,但是可以反应时序,基本的意思是说,比如tft刷新一行场往下走一个,比如有两个计数器,h_reg,v_reg;  当h_reg== 525时,v_reg才加一个,知道v_reg == 286时,就刷新满一个屏幕了,就是上述图片看到的景象。
*/
always@ (posedge clk) begin
    if(!rst_n) 
        h_reg<= 'd0;
    else if(h_reg== tft43_h_tota  - 1'b1)
            h_reg<= 'd0;
    else
            h_reg<= h_reg+ 1'b1;           
end

always@ (posedge clk) begin
    if(!rst_n) 
        v_reg<= 'd0;
    else if(v_reg  >= tft43_v_tota  -1)
    	v_reg<= 'd0;
    else if(h_reg== tft43_h_tota  - 1)
        v_reg <= v_reg + 1;    
end

always@ (posedge clk) begin
    if(!rst_n)begin 
        tft43_reset<=0;
        tft43_black<=0;
    end
    else begin
        tft43_reset<=1;
        tft43_black<=1;
    end
end
endmodule

/*
基本的代码就在这里了,关于例程后续会公布的,主要理解以下设计思路,
关于tft43_h_aera   和tft43_v_aera 参数定义的就是tft屏幕的显示范围,比如4.3寸的屏幕就是480*270
*/

关于显示部分的内容就先暂时这么多吧,后期有需要,则会继续补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IP(Intellectual Property)即知识产权。美国 Dataquest 咨询公司将半导体产业的 IP 定 义为“用于 ASIC 或 FPGA 中的预先设计好的电路功能模块”。简而言之,这里的 IP 即电 路功能模块。 IP 核在数字电路中常用于比较复杂的功能模块(如 FIFO、 RAM、 FIR 滤波 器、 SDRAM 控制器、 PCIE 接口等)设计成参数可修改的模块,让其他用户可以直接调用 这些模块。随着设计规模增大,复杂度提高,使用 IP 核可以提高开发效率,减少设计和调 试时间,加速开发进程,降低开发成本,是业界的发展趋势。利用 IP 核设计电子系统,引 用方便,修改基本元件的功能容易。具有复杂功能和商业价值的 IP 核一般具有知识产权, 尽管 IP 核的市场活动还不规范,但是仍有许多集成电路设计公司从事 IP 核的设计、开发 和营销工作。 IP 核有三种不同的存在形式: HDL 语言形式,网表形式、版图形式。分别对应我们常 说的三类 IP 内核:软核、固核和硬核。这种分类主要依据产品交付的方式,而这三种 IP 内核实现方法也各具特色。 PLL(Phase Locked Loop,即锁相环)是最常用的 IP 核之一,其性能强大,可以对输 入到 FPGA 的时钟信号进行任意分频、倍频、相位调整、占空比调整,从而输出一个期望 时钟,实际上,即使不想改变输入到 FPGA 时钟的任何参数,也常常会使用 PLL,因为经 过 PLL 后的时钟在抖动(Jitter)方面的性能更好一些。 Altera 中的 PLL 是模拟锁相环,和 数字锁相环不同的是模拟锁相环的优点是输出的稳定度高、相位连续可调、延时连续可 调;缺点是当温度过高或者电磁辐射过强时会失锁(普通环境下不考虑该问题)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值