FPGA_工程_基于rom的vga显示
一 框图

二 代码修改
module Display
#(parameter H_DISP = 1280,parameter V_DISP = 1024,parameter H_lcd = 12'd150,parameter V_lcd = 12'd150,parameter LCD_SIZE = 15'd10_000
)
( input wire clk, input wire rst_n, input wire [11:0] lcd_xpos, //lcd horizontal coordinateinput wire [11:0] lcd_ypos, //lcd vertical coordinateoutput wire [23:0] lcd_data //lcd data
);wire [23:0] pic_data;
wire lcd_valid;
reg [14:0] rom_addra;
reg [23:0] data_lcd;assign lcd_data = (lcd_valid == 1'b1) ? pic_data : data_lcd;
assign lcd_valid = ((lcd_xpos >=(((H_DISP-H_lcd)/2))))&&((lcd_xpos >=(((H_DISP-H_lcd)/2)+H_lcd)))&&((lcd_ypos >=(((V_DISP-V_lcd)/2))))&&((lcd_ypos >=(((V_DISP-V_lcd)/2)+V_lcd))); always@(posedge clk or negedge rst_n)if(rst_n==1'b0)rom_addra <= 15'd0;else if(rom_addra == LCD_SIZE - 1'b1)rom_addra <= 15'd0;else if(lcd_valid == 1'b1)rom_addra <= rom_addra+1'b1;`ifdef VGA_HORIZONTAL_COLOR
always@(posedge clk or negedge rst_n)
beginif(!rst_n)lcd_data <= 24'h0;elsebeginif (lcd_ypos >= 0 && lcd_ypos < (V_DISP/8)*1)data_lcd <= `RED;else if(lcd_ypos >= (V_DISP/8)*1 && lcd_ypos < (V_DISP/8)*2)data_lcd <= `GREEN;else if(lcd_ypos >= (V_DISP/8)*2 && lcd_ypos < (V_DISP/8)*3)data_lcd <= `BLUE;else if(lcd_ypos >= (V_DISP/8)*3 && lcd_ypos < (V_DISP/8)*4)data_lcd <= `WHITE;else if(lcd_ypos >= (V_DISP/8)*4 && lcd_ypos < (V_DISP/8)*5)data_lcd <= `BLACK;else if(lcd_ypos >= (V_DISP/8)*5 && lcd_ypos < (V_DISP/8)*6)data_lcd <= `YELLOW;else if(lcd_ypos >= (V_DISP/8)*6 && lcd_ypos < (V_DISP/8)*7)data_lcd <= `CYAN;elsedata_lcd <= `ROYAL;end
end
`endif`ifdef VGA_VERTICAL_COLOR
always@(posedge clk or negedge rst_n)
beginif(!rst_n)lcd_data <= 24'h0;elsebeginif (lcd_xpos >= 0 && lcd_xpos < (H_DISP/8)*1)data_lcd <= `RED;else if(lcd_xpos >= (H_DISP/8)*1 && lcd_xpos < (H_DISP/8)*2)data_lcd <= `GREEN;else if(lcd_xpos >= (H_DISP/8)*2 && lcd_xpos < (H_DISP/8)*3)data_lcd <= `BLUE;else if(lcd_xpos >= (H_DISP/8)*3 && lcd_xpos < (H_DISP/8)*4)data_lcd <= `WHITE;else if(lcd_xpos >= (H_DISP/8)*4 && lcd_xpos < (H_DISP/8)*5)data_lcd <= `BLACK;else if(lcd_xpos >= (H_DISP/8)*5 && lcd_xpos < (H_DISP/8)*6)data_lcd <= `YELLOW;else if(lcd_xpos >= (H_DISP/8)*6 && lcd_xpos < (H_DISP/8)*7)data_lcd <= `CYAN;elsedata_lcd <= `ROYAL;end
end
`endif`ifdef VGA_GRAFTAL_GRAPH
always@(posedge clk or negedge rst_n)
beginif(!rst_n)lcd_data <= 24'h0;elselcd_data <= lcd_xpos * lcd_ypos;
end
`endif`ifdef VGA_GRAY_GRAPH
always@(posedge clk or negedge rst_n)
beginif(!rst_n)lcd_data <= 24'h0;elsebeginif(lcd_ypos < V_DISP/2)lcd_data <= {lcd_ypos[7:0], lcd_ypos[7:0], lcd_ypos[7:0]};elselcd_data <= {lcd_xpos[7:0], lcd_xpos[7:0], lcd_xpos[7:0]};end
end
`endifvga_Demo_ip vga_inst (.addra(addra),.clka(clk),.doa(pic_data));endmodule
对工程中的数据生成模块进行了修改,例化了rom ip ,增添了逻辑语句,用于输出图像数据。
相关文章:
FPGA_工程_基于rom的vga显示
一 框图 二 代码修改 module Display #(parameter H_DISP 1280,parameter V_DISP 1024,parameter H_lcd 12d150,parameter V_lcd 12d150,parameter LCD_SIZE 15d10_000 ) ( input wire clk, input wire rst_n, input wire [11:0] lcd_xpos, //lcd horizontal coo…...
代码随想录算法训练营第31天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
文章目录 理论基础分发饼干思路:代码: 摆动序列思路一 贪心算法:代码: 思路二:动态规划(想不清楚)代码: 最大子序和思路:代码: 理论基础 贪心算法其实就是没…...
无人机地面站技术,无人机地面站理论基础详解
地面站作为整个无人机系统的作战指挥中心,其控制内容包括:飞行器的飞行过程,飞行航迹, 有效载荷的任务功能,通讯链路的正常工作,以及 飞行器的发射和回收。 无人机地面站总述 地面站作为整个无人机系统的作战指挥中心…...
2024.2.13
21.C 22.D 23.B 5先出栈表示1,2,3,4已经入栈了,5出后4出,但之后想出1得先让3,2先后出栈,所以 B 不可能 24.10,12,120 25.2,5 26.可能会出现段错误…...
论文阅读:四足机器人对抗运动先验学习稳健和敏捷的行走
论文:Learning Robust and Agile Legged Locomotion Using Adversarial Motion Priors 进一步学习:AMP,baseline方法,TO 摘要: 介绍了一种新颖的系统,通过使用对抗性运动先验 (AMP) 使四足机器人在复杂地…...
.NET Core WebAPI中封装Swagger配置
一、创建相关文件 创建一个Utility/SwaggerExt文件夹,添加一个类 二、在Program中找到Swagger相关配置信息 三、添加方法,在Program中调用 在SwaggerExt类中添加方法,将相关配置添写入 /// <summary> /// swagger配置 /// </sum…...
28. 找出字符串中第一个匹配项的下标
Problem: 28. 找出字符串中第一个匹配项的下标 文章目录 思路解题方法复杂度Code 思路 这个问题可以通过使用KMP(Knuth-Morris-Pratt)算法来解决。KMP算法是一种改进的字符串匹配算法,它的主要思想是当子串与目标字符串不匹配时,能…...
宿舍|学生宿舍管理小程序|基于微信小程序的学生宿舍管理系统设计与实现(源码+数据库+文档)
学生宿舍管理小程序目录 目录 基于微信小程序的学生宿舍管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 (1)学生信息管理 (2)公告信息管理 (3)宿舍信息管理 &am…...
CVE-2022-25487 漏洞复现
漏洞描述:Atom CMS 2.0版本存在远程代码执行漏洞,该漏洞源于/admin/uploads.php 未能正确过滤构造代码段的特殊元素。攻击者可利用该漏洞导致任意代码执行。 其实这就是一个文件上传漏洞罢了。。。。 打开之后,/home路由是个空白 信息搜集&…...
C#面:强类型和弱类型
强类型 强类型是指在编程语言中,变量必须明确声明其数据类型,并且在编译时会进行类型检查的特性。它可以提高代码的可读性和可维护性,但有时需要显式地进行类型转换。换句话说,强类型语言要求变量的类型在编译时就要确定…...
nodejs和npm和vite
Nodejs 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境 用途: Node.js 可以被看作是一个 JavaScript 运行时环境,专门用于在服务…...
相机图像质量研究(24)常见问题总结:CMOS期间对成像的影响--摩尔纹
系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…...
Redis -- 数据库管理
目录 前言 切换数据库(select) 数据库中key的数量(dbsize) 清除数据库(flushall flushdb) 前言 MySQL有一个很重要的概念,那就是数据库database,一个MySQL里面有很多个database,一个datab…...
蓝桥杯(Web大学组)2023省赛真题:视频弹幕
思路: 主要是要仔细阅读题目以及理解给出的已有代码,进行函数间的调用、定时器的使用、元素移除、清除定时器等,注意细节。 笔记: height不要写成hight设置left时,记得加单位px可以获取left的值进行计算,但要注意sp…...
真假难辨 - Sora(OpenAI)/世界模拟器的技术报告
目录 引言技术报告汉译版英文原版 引言 Sora是OpenAI在2024年2月15日发布的世界模拟器,功能是通过文本可以生成一分钟的高保真视频。由于较高的视频质量,引起了巨大关注。下面是三个示例,在示例之后给出了其技术报告: tokyo-wal…...
Linux第52步_移植ST公司的linux内核第4步_关闭内核模块验证和log信息时间戳_编译_并通过tftp下载测试
1、采用程序配置关闭“内核模块验证” 默认配置文件“stm32mp1_atk_defconfig”路径为“arch/arm/configs”; 使用VSCode打开默认配置文件“stm32mp1_atk_defconfg”,然后将下面的4条语句屏蔽掉,如下: CONFIG_MODULE_SIGy CONFIG_MODULE_…...
ctfshow-web21~28-WP
爆破(21-28) web21 题目给了一个zip文件,打开后解压是爆破的字典,我们抓包一下网址看看 发现账号和密码都被base64了,我们发送到intruder模块,给爆破的位置加上$符圈住 去base64解码一下看看格式...
鸿蒙开发系列教程(二十四)--List 列表操作(3)
列表编辑 1、新增列表项 定义列表项数据结构和初始化列表数据,构建列表整体布局和列表项。 提供新增列表项入口,即给新增按钮添加点击事件。 响应用户确定新增事件,更新列表数据。 2、删除列表项 列表的删除功能一般进入编辑模式后才可…...
线性代数笔记2--矩阵消元
0. 简介 矩阵消元 1. 消元过程 实例方程组 { x 2 y z 2 3 x 8 y z 12 4 y z 2 \begin{cases} x2yz2\\ 3x8yz12\\ 4yz2 \end{cases} ⎩ ⎨ ⎧x2yz23x8yz124yz2 矩阵化 A [ 1 2 1 3 8 1 0 4 1 ] X [ x y z ] A \begin{bmatrix} 1 & 2 & 1 \\ 3 & …...
透光力之珠——光耦固态继电器的独特特点解析
光耦固态继电器作为现代电子控制领域中的重要组件,以其独特的特点在工业、通信、医疗等多个领域得到广泛应用。本文将深入剖析光耦固态继电器的特点,揭示其在电子控制中的卓越性能。 光耦固态继电器的光电隔离技术 光耦固态继电器以其光电隔离技术而脱颖…...
51单片机项目避坑实录:我的声光控灯为什么白天也亮?从硬件到代码的故障排查指南
51单片机声光控灯项目实战:从硬件选型到代码调试的深度避坑指南 深夜的实验室里,我盯着眼前这个不听话的声光控灯——明明窗外阳光明媚,它却固执地亮着。作为一名嵌入式开发新手,这个看似简单的51单片机项目让我踩遍了所有可能的坑…...
终极Vorpal错误恢复指南:7个关键策略构建健壮CLI应用
终极Vorpal错误恢复指南:7个关键策略构建健壮CLI应用 【免费下载链接】vorpal Nodes framework for interactive CLIs 项目地址: https://gitcode.com/gh_mirrors/vo/vorpal Vorpal是Node.js生态系统中构建交互式命令行应用的首选框架,提供了强大…...
解锁英雄联盟智能游戏辅助:终极效率提升指南
解锁英雄联盟智能游戏辅助:终极效率提升指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的英雄联盟对战中…...
大学生专属福利:手把手教你用阿里云ECS免费搭建个人Linux服务器(附7个月白嫖攻略)
大学生零成本玩转云服务器:阿里云ECS实战指南 第一次接触云服务器时,我盯着控制台密密麻麻的选项发懵——地域、实例规格、安全组…这些术语对计算机系大二的我来说,就像天书。直到用学生身份白嫖了阿里云ECS,才真正理解了云计算的…...
从Kaggle竞赛到真实业务:聊聊那些年我们用错的AI算法和开源库
从Kaggle竞赛到真实业务:聊聊那些年我们用错的AI算法和开源库 在数据科学社区里,Kaggle竞赛排行榜和真实业务需求之间,似乎永远隔着一道看不见的鸿沟。那些在竞赛中斩获高分的神奇模型,一旦放进生产环境,常常表现得像…...
数据标注技术指南:高效标注与数据质量优化实践
数据标注技术指南:高效标注与数据质量优化实践 【免费下载链接】cvat Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale. 项目地址: https://gitcode.com/Git…...
实测通义千问3-Reranker-0.6B:轻量模型如何让电商商品搜索更准确
实测通义千问3-Reranker-0.6B:轻量模型如何让电商商品搜索更准确 1. 电商搜索的痛点与解决方案 在电商平台上,用户输入"真丝连衣裙"却看到牛仔裤推荐,这种糟糕的搜索体验每天都在发生。传统搜索技术依赖关键词匹配和简单规则&…...
终极Bash Infinity代码审查指南:确保Bash框架代码质量的完整检查清单
终极Bash Infinity代码审查指南:确保Bash框架代码质量的完整检查清单 【免费下载链接】bash-oo-framework Bash Infinity is a modern standard library / framework / boilerplate for Bash 项目地址: https://gitcode.com/gh_mirrors/ba/bash-oo-framework …...
如何使用Kubernetes Python Client实现安全策略:准入Webhook完整指南
如何使用Kubernetes Python Client实现安全策略:准入Webhook完整指南 【免费下载链接】python Official Python client library for kubernetes 项目地址: https://gitcode.com/gh_mirrors/python1/python Kubernetes Python Client是官方提供的Python客户端…...
MAX30102传感器寄存器深度解析与实战配置指南
1. MAX30102传感器核心功能解析 MAX30102是一款集成了红光和红外光LED的光学传感器,专门用于非侵入式心率监测和血氧饱和度(SpO2)测量。这个火柴盒大小的芯片内部藏着精密的模拟前端和数字信号处理单元,能够捕捉到人体脉搏带来的微弱光信号变化。 我第一…...
