49.TFT_LCD液晶屏驱动设计与验证(2)

(1)Visio视图:

(2)控制模块Verilog代码:

module tft_ctrl(input               clk_33M         ,input               reset_n         ,input   [23:0]      data_in         ,output  [9:0]       hang            ,output  [9:0]       lie             ,output              hsync           ,output              vsync           ,output  [23:0]      rgb_tft         ,output              tft_bl          ,output              tft_clk         ,output              tft_DE          );reg     [10:0]      hang_cnt        ;reg     [9:0]       v_cnt           ;wire                data_vaild      ;parameter H_SYNC        =   128     ;parameter H_BACK        =   88      ;parameter H_VAILD       =   800     ;parameter H_FRONT       =   40      ;parameter H_TOTAL       =   1056    ;parameter V_SYNC        =   2       ;parameter V_BACK        =   33      ;parameter V_VAILD       =   480     ;parameter V_FRONT       =   10      ;parameter V_TOTAL       =   525     ;//行计数器设计always@(posedge clk_33M or negedge reset_n)if(!reset_n)hang_cnt <= 11'd0;else if(hang_cnt == H_TOTAL - 11'd1)hang_cnt <= 11'd0;else hang_cnt <= hang_cnt + 11'd1;//场计数器设计always@(posedge clk_33M or negedge reset_n)if(!reset_n)v_cnt <= 10'd0;else if ((v_cnt == V_TOTAL - 10'd1) && (hang_cnt == H_TOTAL - 11'd1))v_cnt <= 10'd0;else if(hang_cnt == H_TOTAL - 11'd1)v_cnt <= v_cnt + 10'd1;else v_cnt <= v_cnt;//数据有效信号设计assign data_vaild = (hang_cnt >= H_SYNC + H_BACK) && (hang_cnt < H_SYNC + H_BACK + H_VAILD)&& (v_cnt >= V_SYNC + V_BACK) && (v_cnt < V_SYNC + V_BACK + V_VAILD);//行、列信号设计   assign hang = ( data_vaild ) ? (hang_cnt - H_SYNC - H_BACK + 1'd1) : 10'd0;assign lie  = ( data_vaild ) ? (v_cnt - V_SYNC - V_BACK + 1'd1) : 10'd0;    //行同步、场同步信号设计assign hsync = (hang_cnt >= H_SYNC);assign vsync = (v_cnt >= V_SYNC);//rgb_tft、tft_bl、tft_clk、tft_DE信号设计assign rgb_tft = (data_vaild) ? data_in : 24'd0;assign tft_bl  = 1'd1;assign tft_clk = clk_33M;assign tft_DE  = data_vaild;endmodule

(3)仿真代码:

`timescale 1ns / 1psmodule tft_ctrl_tb;reg             clk         ;
reg             reset_n     ;
wire    [23:0]  data_in     ;wire            locked      ;
wire            clk_33M     ;wire    [9:0]   hang        ;
wire    [9:0]   lie         ;    
wire            hsync       ;   
wire            vsync       ;
wire    [23:0]  rgb_tft     ;
wire            tft_bl      ;
wire            tft_clk     ;
wire            tft_DE      ;initial clk = 1'd1;
always #10 clk = ~clk;initial beginreset_n <= 1'd0;#15;reset_n <= 1'd1;#20_000_000;$stop;
endassign data_in = ((hang >= 10'd1) && (lie >= 10'd1)) ? 24'h111_111 : 24'd0  ;PLL_33M     PLL_33M_inst
(.clk_33M        (clk_33M    ), .resetn         (reset_n    ), .locked         (locked     ), .clk_in1        (clk        )
);tft_ctrl    tft_ctrl_inst(.clk_33M         (clk_33M   ),.reset_n         (locked    ),.data_in         (data_in   ),.hang            (hang      ),.lie             (lie       ),.hsync           (hsync     ),.vsync           (vsync     ),.rgb_tft         (rgb_tft   ),.tft_bl          (tft_bl    ),.tft_clk         (tft_clk   ),.tft_DE          (tft_DE    )
);endmodule

(4)仿真波形:

  • PLL仿真波形:

  • 行计数器信号、行同步信号(我这里同步信号的设计与之前理论部分的不一样,是根据tft显示屏数据手册改的):

  • 场计数器信号、场同步信号:

  • 行信号、列信号:

第35列的第216个像素点是有效的第一行第一列数据。

  • 数据输入信号和rgb_tft信号:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PLSQL Developer工具查询数据,报错(动态性能表不可访问)

解决的问题&#xff1a; 解决方案&#xff1a; 在配置-首选项-选项&#xff0c;取消勾选“自动统计”&#xff0c;保存之后即可查询数据

WSL快速入门

1. WSL介绍 WSL文档地址&#xff1a;https://learn.microsoft.com/zh-cn/windows/wsl WSL&#xff1a;全称 Windows Subsystem for Linux&#xff0c;即windows上的Linux子系统&#xff08;虚拟机工具&#xff09;。是Win10推出的全新特性&#xff0c;可以更轻量地在Windows系统…

【网络安全】子域名模糊测试实现RCE

未经许可&#xff0c;不得转载。 文章目录 正文总结 正文 在之前测试一个私人项目时&#xff0c;我报告了admin.Target.com上的Auth Bypass漏洞&#xff0c;这将导致SQLI&RCE &#xff0c;该漏洞在报告后仅一天就被修复。 现在重拾该应用程序&#xff0c;对子域进行模糊测…

RAG技术之Router

Router有什么用&#xff1f; 在RAG应用中&#xff0c;Router可以帮助我们基于用户的查询意图来决定使用何种数据类型或数据源&#xff0c;比如是否需要进行语义检索、是否需要进行text2sql查询&#xff0c;是否需要用function call来进行API调用。 Router也可以根据用户的查询…

麦田物语第十五天

系列文章目录 麦田物语第十五天 文章目录 系列文章目录一、构建游戏的时间系统二、时间系统 UI 制作总结 一、构建游戏的时间系统 在该游戏中我们要构建年月日天时分秒等时间的概念&#xff0c;从而实现季节的更替&#xff0c;昼夜的更替等&#xff08;不同的季节可以播种不同…

qt总结--翻金币案例

完成了一个小项目的在qt5.15.2环境下的运行,并使用NSIS editNSIS打包完成.有待改进之处:增加计时功能,随机且能通关功能,过关后选择下一关功能.打包后仅仅有安装包有图标 安装后应用图标并未改变 在qt .pro中有待改进对qt的基本操作和帮助文档有了基本的认识.对C制作小游戏有了…

YOLO5项目目录最强解析

YOLO5项目目录解析 YOLOv5 项目目录下的文件和目录的结构&#xff0c;以下是对每个目录和文件的解释&#xff1a; 目录 &#x1f4c1; .github: 存放 GitHub 相关配置和文件&#xff0c;如 GitHub Actions 工作流文件、Issue 模板等&#xff0c;用于自动化构建和持续集成等功…

MYSQL 第五次作业

一、第五次作业 二、建立触发器 在订单表中增加订单数量后&#xff0c;商品表的商品数量同步减少对应的商品订单出数量&#xff1b;客户取消订单时恢复商品表对应商品的数量&#xff1b;当客户修改订单时&#xff0c;商品表对应商品的数量同步更新。 3、存储 DELIMITER $$ CREA…

USB 2.0 协议专栏之 USB 2.0 连接与枚举(二)

前言&#xff1a;本篇博客为手把手教学的 USB 2.0 协议栈类精品博客&#xff0c;该专栏博客侧重针对 USB 2.0 协议进行讲解。本篇博客将针对 USB 2.0 中的连接与枚举进行教学&#xff0c;USB 的枚举过程是 USB 协议中至关重要的一环&#xff0c;也是嵌入式工程师必须掌握的内容…

Python层内层外多图布局图基分析

&#x1f3af;要点 &#x1f3af;多层图和多路复用图结构模型 | &#x1f3af;图结构变换、读写图、聚类系数、可视化、同构、图基分析 | &#x1f3af;稀疏网络边数和节点数线性扩展 | &#x1f3af;耦合边的生成和惰性评估 | &#x1f3af;层内布局计算、多层网络绘图、层间…

基于深度学习网络的USB摄像头实时视频采集与水果识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 将usb摄像头对准一个播放不同水果图片的显示器&#xff0c;然后进行识别&#xff0c;识别结果如下&#xff1a; 本课题中…

Vue3--

一、pinia &#xff08;集中式状态&#xff08;数据&#xff09;管理&#xff09; 1、准备一个效果 2、存储读取数据 3、修改数据三种方式 4、storeToRefs 5、getters 当state中的数据&#xff0c;需要经过处理后在使用时&#xff0c;可以使用getters配置 6、$subscribe的使用…

mqtt:测试eclipse paho qos=1的数据重发的功能

# 测试程序 【pom.xml】 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version></dependency><dependency…

Unity横版动作游戏 -瓦片地形和动画瓦片

(规则瓦片)瓦片地形和动画瓦片 准备阶段 在Tilemap中创建一个新的文件夹起名叫做Rule Tile&#xff0c;创建一个Rule Tile&#xff0c;用来设置瓦片地形&#xff0c;我们将用他来绘制地形图&#xff0c;类似于Godot中的瓦片地形。 这里给他取名为了Ground 1&#xff0c;用于创…

PVE环境中调整虚拟机磁盘大小

我的希望将PVE中的虚拟机磁盘调整一下&#xff0c;增加20GB。在查询了一些资料后&#xff0c;做一下总结教程。 环境是 PVE8.2.2 版本&#xff0c;虚拟机系统是centos7.9.2009-minimal&#xff0c; 安装系统时划分磁盘分区方式是默认分区方式&#xff08;不同分区方式下&#…

pinia安装及简介

pinia简介 基本特点 轻量级&#xff1a;Pinia相比于传统的Vuex&#xff0c;体积更小&#xff0c;性能更好&#xff0c;只有大约1KB左右。 简化API&#xff1a;Pinia简化了状态管理库的使用方法&#xff0c;抛弃了Vuex中的mutations&#xff0c;只保留了state、getters和actions…

WHAT - 一个 Github 仓库的 License 如何解读

目录 一、背景二、解读许可证说明的作用常见的开源许可证类型使用他人代码仓库时需要注意的事项结论 实践作为开发者1. 选择许可证类型2. 在 README 文件中编写许可证信息 作为使用者1. 确定权限2. 了解和遵守条款 总结 一、背景 我们经常在一些 Github 仓库里看到 License 部…

探索 `pyjwt`:Python 中的 JWT 处理专家

文章目录 探索 pyjwt&#xff1a;Python 中的 JWT 处理专家简介&#xff1a;为何选择 pyjwt&#xff1f;什么是 pyjwt&#xff1f;安装 pyjwtpyjwt 的基本使用1. 编码JWT2. 解码JWT3. 验证签名4. 过期时间5. 自定义头部 场景应用场景一&#xff1a;用户登录场景二&#xff1a;A…

使用标量函数实现 EF Core 的实用方法

一.介绍 在构建应用程序时&#xff0c;您可能使用标量函数在数据库端实现一些逻辑。在 SQL 中&#xff0c;标量函数是一种对单个值或少量输入值进行操作并始终返回单个值作为输出的函数。这些函数本质上是可重复使用的代码块&#xff0c;用于对数据执行计算或操作。 以下是标…

doccano安装与使用

1.安装 &#xff08;1&#xff09;创建虚拟环境 conda create -n doccano conda activate doccano &#xff08;2&#xff09;安装doccano pip install doccano &#xff08;3&#xff09;doccano初始化 doccano init doccano createuser --username admin --password pa…