fpga vga

因为
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

如果是减1的话是会少减1的 因为piel_x会延迟
在这里插入图片描述

在这里插入图片描述

 `timescale 1ns / 1psmodule vga(//系统侧input     wire            clk_sys  ,input     wire            rst_n    ,input     wire            clk      ,//在顶层例化的pll产生的input     wire            locked   ,//物理侧output    wire   [23:0]   rgb      ,output    wire            vsync    ,output    wire            hsync    ,output    wire            video_de );parameter  H_SYNC   =  11'd40  ;   //行同步
parameter  H_BACK   =  11'd220  ;  //行显示后沿
parameter  H_LEFT   =  11'd0   ;
parameter  H_DISP   =  11'd1280 ; //行有效数据
parameter  H_RIGHT  =  11'd0   ;
parameter  H_FRONT  =  11'd110   ;  //行显示前沿
parameter  H_TOTAL  =  11'd1650 ; //行扫描周期
parameter  V_SYNC   =  11'd5    ;    //场同步
parameter  V_BACK   =  11'd20  ;   //场显示后沿
parameter  V_TOP    =  11'd0   ;
parameter  V_DISP   =  11'd720 ;  //场有效数据
parameter  V_BOTTOM =  11'd0   ;
parameter  V_FRONT  =  11'd5   ;    //场显示前沿
parameter  V_TOTAL  =  11'd750 ;  //场扫描周期
//
localparam WHITE  = 24'b11111111_11111111_11111111;  //RGB888 白色
localparam BLACK  = 24'b00000000_00000000_00000000;  //RGB888 黑色
localparam RED    = 24'b11111111_00001100_00000000;  //RGB888 红色
localparam GREEN  = 24'b00000000_11111111_00000000;  //RGB888 绿色
localparam BLUE   = 24'b00000000_00000000_11111111;  //RGB888 蓝色
//wire            rst      ;
wire            ena      ;
wire  [23:0]    douta    ;
wire [13 : 0]   addra    ; //0~9999
reg   [23:0]    data     ;//
reg  [11:0]     pixel_x   ;
reg  [11:0]     pixel_y   ;
reg             data_req  ;//图形有效的时候
reg  [11:0]     cunt      ; //行扫描周期计数
reg  [11:0]     cunt_b    ; //列扫描周期计数
reg             video_en  ;assign hsync=(cunt<H_SYNC)  ?1'b1:1'b0;
assign vsync=(cunt_b<V_SYNC)?1'b1:1'b0;
assign rst  =(rst_n==1&&locked==1)?1'b1:1'b0; //待PLL生成的clk稳定的时候 locked拉高
assign video_de=video_en;assign rgb=(video_en==1'b1)?douta:24'b0;always @(posedge clk or negedge rst) beginif(!rst)data_req<=1'b0;else if((cunt>=hsync+H_BACK-2'd2&&cunt<hsync+H_BACK+H_DISP-2'd2)&&((cunt_b>=vsync+V_BACK)&&(cunt_b<vsync+V_BACK+V_DISP)))data_req<=1'b1;elsedata_req<=1'b0;
end
always @(posedge clk or negedge rst) beginif(!rst)video_en<=0;else if(data_req==1)video_en<=1'b1;elsevideo_en<=1'b0;
endalways @(posedge clk or negedge rst) beginif(!rst)pixel_x<=1'b0;else if(data_req==1)pixel_x<=(cunt-hsync-H_BACK+2);elsepixel_x<=12'd0;
end
always @(posedge clk or negedge rst) beginif(!rst)pixel_y<=1'b0;else if((cunt_b>=vsync+V_BACK)&&(cunt_b<vsync+V_BACK+V_DISP))pixel_y<=(cunt_b-vsync-V_BACK);elsepixel_y<=12'd0;
endalways @(posedge clk or negedge rst) beginif(!rst)data<=24'b0;else if(pixel_x>=0&&pixel_x<H_DISP/5)data<=WHITE;else if(pixel_x>=H_DISP/5&&pixel_x<H_DISP/5*2)data<=BLUE;else if(pixel_x>=H_DISP/5*2&&pixel_x<H_DISP/5*3)data<=GREEN;else if(pixel_x>=H_DISP/5*3&&pixel_x<H_DISP/5*4)data<=RED;elsedata<=BLACK;end
//行扫描周期计数器
always @(posedge clk or negedge rst) beginif(!rst)cunt<=1'b0;else beginif(cunt==H_TOTAL-1)cunt<=1'b0;elsecunt<=cunt+1'b1;end
end
//场扫描周期
always @(posedge clk ) beginif(!rst)cunt_b<=1'b0;else beginif(cunt_b==V_TOTAL-1&&cunt==H_TOTAL-1)cunt_b<=1'b0;else beginif(cunt==H_TOTAL-1)cunt_b<=cunt_b+1;elsecunt_b<=cunt_b;endend
endassign ena    =1'b1;//地址
assign  addra =pixel_x%100+(pixel_y%100)*100;blk_mem_gen_0 your_instance_name (.clka(clk),    // input wire clka.ena(ena),      // input wire ena.addra(addra),  // input wire [13 : 0] addra .douta(douta)  // output wire [23 : 0] douta
);endmodule

正确的代码下的波形图
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

RNACOS:用Rust实现的Nacos服务

RNACOS是一个使用Rust语言开发的Nacos服务实现&#xff0c;它继承了Nacos的所有核心功能&#xff0c;并在此基础上进行了优化和改进。作为一个轻量级、快速、稳定且高性能的服务&#xff0c;RNACOS不仅包含了注册中心、配置中心和Web管理控制台的功能&#xff0c;还支持单机和集…

如何做好一份技术文档?-中小企实战运营和营销工作室博客

做好一份技术文档需要考虑文档的目的、受众、内容结构、表达清晰度等多个方面&#xff0c;以下是详细步骤&#xff1a; 一、明确文档目的和受众 确定目的 技术文档的目的可能多种多样&#xff0c;例如记录软件系统的功能和操作流程&#xff0c;便于用户使用&#xff1b;或是作为…

【Java语言】内部类

可以将一个类的定义在另一个类或者一个方法内部&#xff08;一般都是定义在类里面&#xff09;&#xff0c;在内部的类就称为内部类&#xff0c;在内部类的外部的类称为外部类。内部类可以在数据结构实现链表的结点等还有很多的地方使用它。然而内部类又分四种&#xff1a;静态…

DemoFusion 技术浅析(三):渐进式上采样

渐进式上采样模块&#xff08;Progressive Upsampling Module&#xff09; 是 DemoFusion 框架的核心组件之一&#xff0c;其主要目标是逐步提高图像分辨率&#xff0c;同时保留和增强图像细节。为了实现这一目标&#xff0c;该模块结合了多种上采样技术、扩散模型以及精细化的…

软件工程 测试

软件测试是根据从用户和系统规范收集的需求对软件进行评估。测试在软件开发生命周期的阶段级别或程序代码的模块级别进行。软件测试包括验证和确认。 软件验证 验证是检查软件是否满足用户要求的过程。它在 SDLC 结束时执行。如果软件符合它的要求&#xff0c;他就会被验证。…

在CANoe中Ping多播地址的若干问题

在CANoe中添加网络节点Dut,作为加入多播组的主机,配置TCP/IP Stack和网卡参数: IP地址:192.168.0.17MAC地址:02:00:00:00:00:17在CANoe中添加网络节点Tester,作为发送多播报文的数据源,配置TCP/IP Stack和网卡参数: IP地址:192.168.0.52MAC地址:02:00:00:00:00:52Dut…

基于51单片机64位病床呼叫系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机病床呼叫系统设计( proteus仿真程序设计报告原理图讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0095 1. 主要功能&#xff1a; 基于51单片机的病床呼叫系统proteus仿…

【机器学习算法】——逻辑回归

目录 逻辑回归理解损失函数代码练习1. 房屋价格与面积的关系2.基于学生特征的录取概率预测 逻辑回归理解 逻辑回归是用来二分类的&#xff01; 是在线性回归模型之后加了一个激活函数&#xff08;Sigmoid)将预测值归一化到【0~1】之间&#xff0c;变成概率值。 一般计算其中一…

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别

2023 年“泰迪杯”数据分析技能赛B 题企业财务数据分析与造假识别 一、背景 财务数据是指企业经营活动和财务结果的数据记录&#xff0c;反映了企业的财务状况 与经营成果。对行业、企业的财务数据进行分析&#xff0c;就是要评价其过去的经营业绩、 衡量现在的财务状况、预测…

【Android】View的工作流程——measure

1.View的工作流程入口 1.1DecorView被加载到Window中 看到这里你对Activity的构成有一定的了解&#xff0c;每个 Activity 都有一个与之关联的 Window 对象&#xff0c;而 DecorView 是这个 Window 的根视图。当DecorView被创建以及加载资源的时候&#xff0c;此时它的内容还…

4.opengl中变换

变换 1.向量 向量有一个方向(Direction)和大小(Magnitude&#xff0c;也叫做强度或长度)。 数学家喜欢在字母上面加一横表示向量&#xff0c;比如说vv。当用在公式中时它们通常是这样的&#xff1a; 1.1.向量相乘 1.1.1.点乘 我们该如何计算点乘呢&#xff1f;点乘是通过将…

聊聊开发一个接口用到哪些Swagger 注解

文章目录 常用swagger注解类注解方法注解字段注解 Swagger配置引入依赖编写配置类静态资源映射访问swagger ui 为什么要聊Swagger呢&#xff0c;原因是我发现实际开发中前端同事每次都需要问我枚举是什么&#xff0c;经过反思&#xff0c;我觉得是接口文档写的不够好。所以整理…

【Nginx系列】多个路径指向一个地址

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

fastadmin修改后台登录背景

背景 fastadmin 用习惯了&#xff0c;但是登录界面真的不好看&#xff0c;今天就修改一下。先看界面&#xff1a; 解决方案 1.安装插件&#xff1a;后台登录背景。 2.上传固定图片修改登录页面为如下&#xff1a; <!DOCTYPE html> <html> <head>{include…

Unreal Engine Groom打包没有物理模拟

编辑器中运行头发有物理模拟效果&#xff0c;打包后没有 Project Setting 加/HairStrands

MCU-USB转UART的底层逻辑

USB/UART Bridge: Understand Everything in Animations - Parlez-vous Tech 没有 USB 端口的 PC 如何与单片机通信&#xff1f; 答案就在 USB/UART 桥接器中。 无论是用于调试、连接 IoT 传感器还是进行工业监督&#xff0c;此桥接器都简化了硬件集成并使通信更加可靠。以…

仿真键盘输入遇到Edge环境不识别 回车符如何处理

这个问题我也是最近才遇到&#xff0c;可能现在大家都喜欢用新架构&#xff0c;基于网页来写应用管理软件。 当遇到Edge环境下&#xff0c;文本框不识别回车符如何处理&#xff0c;根据笔者经验可通过配置Edge 基于键盘管理设置来解决这个事情。如图 即在Edge浏览器环境下&…

在做题中学习(79):最小K个数

解法&#xff1a;快速选择算法 说明&#xff1a;堆排序也是经典解决问题的算法&#xff0c;但时间复杂度为&#xff1a;O(NlogK)&#xff0c;K为k个元素 而将要介绍的快速选择算法的时间复杂度为: O(N) 先看我的前两篇文章&#xff0c;分别学习&#xff1a;数组分三块&#…

【html网页页面009】html+css制作学校官网主题网页制作含登录(5页面附效果及源码)

校园网站主题网页制作 &#x1f964;1、写在前面&#x1f367;2、涉及知识&#x1f333;3、网页效果&#x1f308;4、网页源码4.1 html4.2 CSS4.3 源码获取w034学校网页源码及介绍链接 &#x1f40b;5、作者寄语 &#x1f964;1、写在前面 学校网站主题的网页 一共5个页面 网…

2024-12-08 数字人最新论文更新(MEMO, INFP, IF-MDM, SINGER, One Shot, One Talk, FLOAT等)

2024-12-08 数字人最新论文更新(MEMO, INFP, IF-MDM, SINGER, One Shot, One Talk, FLOAT等) 汇总一下最近一个星期的一些数字人论文的更新&#xff0c;我觉得比较有意思的一些文章比如SINGER&#xff0c;用Diffusion来做sing的talking head&#xff0c;确实是一个不错的文章&…