FPGA projet : VGA
在vga屏幕上显示 : 野火科技
相比于上个工程,只需要修改 vga_pix 模块即可。
注意存储器类型变量的定义:reg 【宽度】<名称>【深度】
赋值 always @(poseedge vga_clk)begin
为每一行赋值,不可位赋值。
end
使用 <名称>【深度】【宽度】


module vga_pix(input wire vga_clk ,input wire vga_rst_n ,input wire [9:0] pix_x , input wire [9:0] pix_y ,output reg [15:00] pix_data
);// parameterparameter PIX_X_VALID = 192 ,PIX_Y_VALID = 208 ; // 有效开始边界parameter CHAR_X = 256 ,CHAR_Y = 64 ; // 有效空间parameter BLACK = 16'h0000 ,GOLD = 16'hFEC0 ;// define 存储器变量 深度64 宽度256reg [255:0] char [63:0];// wire signal definewire [9:0] char_x ;wire [9:0] char_y ;// char_x 字符横向范围 && 字符纵向范围。有效范围横坐标 - 字符开始坐标assign char_x = ( (pix_x >= PIX_X_VALID && pix_x <= PIX_X_VALID + CHAR_X - 1'b1) && ( pix_y >= PIX_Y_VALID && pix_y <= PIX_Y_VALID + CHAR_Y - 1'b1) ) ? (pix_x - PIX_X_VALID) : 10'h3ff;// char_yassign char_y = ( (pix_x >= PIX_X_VALID && pix_x <= PIX_X_VALID + CHAR_X - 1'b1) && ( pix_y >= PIX_Y_VALID && pix_y <= PIX_Y_VALID + CHAR_Y - 1'b1) ) ? (pix_y - PIX_Y_VALID) : 10'h3ff;// char_dataalways @(posedge vga_clk) beginchar[ 0] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[ 1] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[ 2] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[ 3] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[ 4] <= 256'h0000000000000000000000000000000000000000070000000001C00040000000 ;char[ 5] <= 256'h000000000000000000000000000000000000000003E000000000F00078000000 ;char[ 6] <= 256'h000000000000000000000380000000000000060003E000000000F8007E000000 ;char[ 7] <= 256'h0000038000780000000003E0000000000000078001E000000000F0003E000000 ;char[ 8] <= 256'h00003FE003FE0000000001F00000000000000FC001E000000000F0003C000000 ;char[ 9] <= 256'h0007FFF07F3F0000000001F00000000000001F8001C000000000F0003C000000 ;char[10] <= 256'h07FF81F7F83E0000000001F00000000000003E0001C000000000E0003C000000 ;char[11] <= 256'h03E1C1E1C0780000000001E0000000000000780001C000000000E0003C000000 ;char[12] <= 256'h03C1C1E000700000000001E0000000000000E00001C000000000E00038000000 ;char[13] <= 256'h01C1C1E000E00000000000E0000000000003C001C1C000000000E00038000000 ;char[14] <= 256'h01C0C1C001C00000000000E00000000000077001F1C000000000E000387C0000 ;char[15] <= 256'h01C0FDC001800000000000E00180000000187800F1C000000000E0003FFC0000 ;char[16] <= 256'h00E7F9C07B000000000000E001E000000000700071C000000000E0007FF00000 ;char[17] <= 256'h00FFC1803E000000000001E001F000000000700011C000000000E007FFC00000 ;char[18] <= 256'h00E0C1801F000000000001E003F800000000700001C000000000FF1FFE000000 ;char[19] <= 256'h00E0C3800F000000000001E003F80000000033C001C00000000FFE0FF8000000 ;char[20] <= 256'h0060C38007038000000401C007C0000000003FE001C0000000FFF00030000000 ;char[21] <= 256'h0060C700013FE000000701C00F0000000001FE0781C0000000FFE00030000000 ;char[22] <= 256'h0071FF0007FFF0000007C1C01C000000001FF003C1C000000000E00030000000 ;char[23] <= 256'h003FC200FF83F8000003E1C03800000003FF7001E1C000000000E00030000000 ;char[24] <= 256'h0030C07FF803F8000001E1C0E00000001FF8F000E1C000000000E00030000000 ;char[25] <= 256'h0000C03F9C03C0000001F1C1800000000FE0F00041C000000000E20033800000 ;char[26] <= 256'h0000C0000E0700000000F1C0000000000301F00001C0F8000000EC003FE00000 ;char[27] <= 256'h0000C4000F040000000061E0000000000003F80001DFFC000000F801FFE00000 ;char[28] <= 256'h0000FF000E000000000001E0000000000003FF0003FFFC000000F07FE3E00000 ;char[29] <= 256'h000FFE000E000000000003F000000000000777807FF800000001E07F03C00000 ;char[30] <= 256'h007FF0000E000000000003D800000000000E73BFFFC000000003E00003C00000 ;char[31] <= 256'h001EC000060000000000039C00000000001C707FE1C000000007E00003800000 ;char[32] <= 256'h0000C000060000000000038C00000000001C700C01C00000001EE03C03800000 ;char[33] <= 256'h0000C0E00600000000000786000000000038700001C00000007CE01E03800000 ;char[34] <= 256'h0000CFC00600000000000707000000000070700001C0000001F8E00707000000 ;char[35] <= 256'h0000FE0006000000000007038000000000E0700001C000000FF0E00387000000 ;char[36] <= 256'h0007F0000700000000000F01C000000001C0700001C000000FC0E001C7000000 ;char[37] <= 256'h007F80000700000000000E01E00000000300700001C000000780E000EE000000 ;char[38] <= 256'h0FFE00000700000000001E00F00000000600700001C000000300E0007E000000 ;char[39] <= 256'h0FF000000700000000001C00780000000800700001C000000000E0003C000000 ;char[40] <= 256'h07C0000007000000000038003C0000001000700001C000000000E0007E000000 ;char[41] <= 256'h0100000007000000000078003F0000000000700001C000000000E000FF800000 ;char[42] <= 256'h00000000070000000000F0001F8000000000700001C000000000E001F7C00000 ;char[43] <= 256'h00000000070000000001E0000FE000000000700001C000000000E007C3F00000 ;char[44] <= 256'h00000000070000000003C00007F800000000F00001C00000001FE01F81FC0000 ;char[45] <= 256'h000000000F000000000F800007FE00000000F00001C000000007E0FC00FF8000 ;char[46] <= 256'h000000070F000000001E000003FFC0000000700001C000000003E3E0007FF000 ;char[47] <= 256'h00000003FF000000007C000001FFF8000000600001C000000001C000003FFC00 ;char[48] <= 256'h00000000FE00000001E00000007FF8000000600001C000000001C00000000000 ;char[49] <= 256'h000000007E00000003000000000000000000200001C000000000800000000000 ;char[50] <= 256'h000000003C000000000000000000000000000000018000000000000000000000 ;char[51] <= 256'h0000000038000000000000000000000000000000008000000000000000000000 ;char[52] <= 256'h0000000010000000000000000000000000000000008000000000000000000000 ;char[53] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[54] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[55] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[56] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[57] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[58] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[59] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[60] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[61] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[62] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;char[63] <= 256'h0000000000000000000000000000000000000000000000000000000000000000 ;end// pix_dataalways @(posedge vga_clk or negedge vga_rst_n) beginif(~vga_rst_n) beginpix_data <= BLACK ;end else beginif(((pix_x >= PIX_X_VALID - 1'b1) && (pix_x <= (PIX_X_VALID + CHAR_X - 2'd2))) && ((pix_y >= PIX_Y_VALID) && (pix_y <= (PIX_Y_VALID + CHAR_Y - 1'b1))) && (char[char_y][10'd255 - char_x] == 1'b1)) beginpix_data <= GOLD ;endelse beginpix_data <= BLACK ;endendend
endmodule
`timescale 1ns/1ns
module test_vga_ctrl ();reg sys_clk_50m ;reg sys_rst_n ;wire [15:00] pix_data ;wire vga_clk ;wire locked ;wire vga_rst_n ;assign vga_rst_n = sys_rst_n && locked;wire hsync ;wire vsync ;wire [ 9: 0] pix_x ;wire [ 9: 0] pix_y ;wire [15:00] rgb ;vga_pix vga_pix_insert (.vga_clk ( vga_clk ) ,.vga_rst_n ( vga_rst_n ) ,.pix_x ( pix_x ) ,.pix_y ( pix_y ) ,.pix_data ( pix_data )
);pll_25m pll_25m_inst (.areset ( ~sys_rst_n ),.inclk0 ( sys_clk_50m ),.c0 ( vga_clk ),.locked ( locked )
);vga_ctrl vga_ctrl_insert(.vga_clk ( vga_clk ) ,.vga_rst_n ( vga_rst_n ) ,.pix_data ( pix_data ) ,.hsync ( hsync ) ,.vsync ( vsync ) ,.pix_x ( pix_x ) ,.pix_y ( pix_y ) ,.rgb ( rgb )
); // 640X480@60parameter CYCLE = 20 ;initial beginsys_clk_50m = 1'b1 ;sys_rst_n <= 1'b0 ;#(CYCLE * 2) ;sys_rst_n <= 1'b1 ;#(CYCLE * 10000) ;endalways #(CYCLE / 2) sys_clk_50m = ~sys_clk_50m ;
endmodule



相关文章:
FPGA projet : VGA
在vga屏幕上显示 : 野火科技 相比于上个工程,只需要修改 vga_pix 模块即可。 注意存储器类型变量的定义:reg 【宽度】<名称>【深度】 赋值 always (poseedge vga_clk)begin 为每一行赋值,不可位赋…...
JDK8 升级至JDK19
优质博文IT-BLOG-CN 目前部分项目使用JDK8,部分项目使用JDK19因此,环境变量中还是保持JDK8,只需要下载JDK19免安装版本,通过配置IDEA就可以完成本地开发。 一、IDEA 环境设置 【1】通过快捷键CTRL SHIFT ALT S或者File->P…...
Python3.10 IDLE更换主题
前言 自定义主题网上有很多,3.10IDLE的UI有一些新的东西,直接扣过来会有些地方覆盖不到,需要自己测试着添几行配置,以下做个记录。 配置文件路径 Python安装目录下的Lib\idlelib\config-highlight.def。如果是默认安装…...
C# OpenVino Yolov8 Pose 姿态识别
效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenVino_Yolov8_Demo {public…...
北邮22级信通院数电:Verilog-FPGA(1)实验一“跑通第一个例程” 过程中遇到的常见问题与解决方案汇总(持续更新中)
北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 问题一:Verilog代码没有跑通 报…...
CSS - 鼠标移入整行高亮显示,适用于会员套餐各参数对比页面(display: table,div 转表格形式)
效果图 可根据基础示例和进阶示例,复制进行改造样式。 如下图所示,本文提供 2 个示例。 基础示例 找个 HTML 页面,一键复制运行。 <body><h1 style"text-align: center;">基础示例</h1><section class"…...
无涯教程-JavaScript - ATAN2函数
描述 The ATAN2 function returns the arctangent, or inverse tangent, of the specified x- and ycoordinates, in radians, between -π/2 and π/2. 语法 ATAN2 (x_num, y_num)争论 Argument描述Required/OptionalX_numThe x-coordinate of the point.RequiredY_numThe…...
Tomcat 下部署 jFinal
1、检查web.xml 配置,在 tomcat 下部署需要检查 web.xml 是否存在,并且要确保配置正确,配置格式如下。 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"http://www.w3.org/2001/XMLSchema-i…...
【Spatial-Temporal Action Localization(二)】论文阅读2017年
文章目录 1. ActionVLAD: Learning spatio-temporal aggregation for action classification [code](https://github.com/rohitgirdhar/ActionVLAD/)[](https://github.com/rohitgirdhar/ActionVLAD/)摘要和结论引言:针对痛点和贡献相关工作模型框架思考不足之处 2.…...
二维码智慧门牌管理系统:数据现势性,满足应用需求的根本保证
文章目录 前言一、项目背景二、数据的现势性三、系统的优势四、应用前景 前言 在当今信息化社会,数据的重要性日益凸显,尤其是数据的现势性,它决定着服务的质量和满足应用需求的能力。近日,一个创新的二维码智慧门牌管理系统项目…...
BF算法(C++)简单讲解
BF算法匹配过程易理解,若匹配,子串和主串都往下移一位。不匹配时,主串回溯至本次匹配开始下标的下一位。例:图中第三趟匹配时,主串到第七位时与子串不匹配,这次匹配主串是从第三位开始的,所以下…...
JVM 虚拟机 ----> Java 类加载机制
文章目录 JVM 虚拟机 ----> Java 类加载机制一、概述二、类的生命周期1、类加载过程(Loading)(1)加载(2)验证(3)准备(4)解析(5)初始…...
《protobuf》基础语法2
文章目录 枚举类型ANY 类型oneof 类型map 类型改进通讯录实例 枚举类型 protobuf里有枚举类型,定义如下 enum PhoneType {string home_addr 0;string work_addr 1; }同message一样,可分为 嵌套定义,文件内定义,文件外定义。不…...
利用 SOAR 加快事件响应并加强网络安全
随着攻击面的扩大和攻击变得越来越复杂,与网络攻击者的斗争重担落在了安全运营中心 (SOC) 身上。SOC 可以通过利用安全编排、自动化和响应 (SOAR) 平台来加强组织的安全态势。这一系列兼容的以安全为中心的软件可加快事…...
uni-app:通过ECharts实现数据可视化-如何引入项目
效果 引入文件位置 代码 <template><view id"myChart"></view> </template> <script> import echarts from /static/js/echarts.js // 引入文件 export default {mounted() {// 初始化EChartsconst myChart echarts.init(document…...
string 模拟与用法
string 用法 string string 模拟 #pragma once #include <assert.h> #include <string.h> #include <iostream>namespace sjy {class string{public://迭代器相关typedef char* iterator;typedef const char* const_iterator;iterator begin(){return _st…...
[NLP] LLM---<训练中文LLama2(一)>训练一个中文LLama2的步骤
一 数据集 【Awesome-Chinese-LLM中文数据集】 【awesome-instruction-dataset】【awesome-instruction-datasets】【LLaMA-Efficient-Tuning-数据集】Wiki中文百科(25w词条)wikipedia-cn-20230720-filteredBaiduBaiKe(563w词条) …...
华为云云耀云服务器L实例使用教学 | 利用华为云服务器搭建--> 基于Spring Boot+WebSocket+WebRtc实现的多人自习室
文章目录 1. 购买华为云服务器L2. 在华为云服务器上搭建项目前期准备工作1. 更换登录密码2. 安全组配置 3. 在服务器上运行自己的项目 1. 购买华为云服务器L 在有优惠券的情况下,来到华为云这个网址下面,链接为:https://www.huaweicloud.com…...
Postman应用——接口请求(Get和Post请求)
文章目录 新增请求接口请求Get接口请求Post 这里只讲用的比较多的Get和Post请求方式,也可以遵循restful api接口规范,使用其他请求方式。 GET(SELECT):从服务器取出资源(一项或多项)POST&#…...
k8s pod概念、分类及策略
目录 一.pod相关概念 2.Kubrenetes集群中Pod两种使用方式 3.pause容器的Pod中的所有容器共享的资源 4.kubernetes中的pause容器主要为每个容器提供功能: 6.Pod分为两类: 二.Pod容器的分类 1.基础容器…...
Coda Prompt 实战:如何通过智能提示提升开发效率
作为一名开发者,每天面对海量代码,你是否也常常感到疲惫?重复的 CRUD 操作、频繁在文档和 IDE 之间切换、为某个函数命名绞尽脑汁……这些看似微小的“摩擦力”,日积月累却严重消耗着我们的精力与时间。今天,我想和大家…...
别再用直方图了!用Python+OpenCV手把手教你提取图像纹理特征(GLCM实战)
别再用直方图了!用PythonOpenCV手把手教你提取图像纹理特征(GLCM实战) 当我们需要区分砂纸和丝绸的微观图像时,灰度直方图会给出完全相同的统计结果——这正是传统分析方法在纹理识别中的致命缺陷。本文将带您用OpenCV和scikit-im…...
OpenClaw长期运行秘诀:GLM-4.7-Flash任务守护与自动恢复机制
OpenClaw长期运行秘诀:GLM-4.7-Flash任务守护与自动恢复机制 1. 为什么需要长期运行方案? 去年冬天的一个深夜,我被手机警报惊醒——OpenClaw在连续处理300多份文档后突然崩溃,导致凌晨的自动化报表任务全部中断。这次事故让我意…...
Step3-VL-10B-Base模型微调:LSTM时间序列预测实战
Step3-VL-10B-Base模型微调:LSTM时间序列预测实战 用最简单的方式,教你如何用Step3-VL-10B-Base模型做时间序列预测,无需深厚数学背景,跟着做就能上手 1. 前言:为什么选择这个模型做时间序列预测 时间序列预测是个很有…...
Oracle Product Hub Portal Cloud(简称 OPH Cloud)是 Oracle 提供的基于云的主数据管理(MDM)解决方案
Oracle Product Hub Portal Cloud(简称 OPH Cloud)是 Oracle 提供的基于云的主数据管理(MDM)解决方案,专为统一、治理和分发产品主数据而设计。它是 Oracle Cloud Enterprise Resource Planning (ERP)、Supply Chain M…...
Uvicorn与AWS CloudFormation StackSets:多账户部署的终极指南
Uvicorn与AWS CloudFormation StackSets:多账户部署的终极指南 【免费下载链接】uvicorn An ASGI web server, for Python. 🦄 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn Uvicorn 作为一款高性能的 ASGI 服务器,为 P…...
三维智能分割技术:从行业痛点到落地实践的全面解析
三维智能分割技术:从行业痛点到落地实践的全面解析 【免费下载链接】SAMPart3D SAMPart3D: Segment Any Part in 3D Objects 项目地址: https://gitcode.com/gh_mirrors/sa/SAMPart3D 问题场景:三维模型处理的现实困境 建筑设计行业:…...
CANoe CAPL实战:putvalue和getvalue函数在汽车总线测试中的高效应用
CANoe CAPL实战:putvalue和getvalue函数在汽车总线测试中的高效应用 在汽车电子测试领域,CANoe作为主流的测试工具,其CAPL编程语言的高效运用直接决定了测试效率和质量。对于经常与CAN总线打交道的测试工程师来说,putvalue和getva…...
基于RS485(Modbus RTU)的工业RFID读写器CK-FR03-A01与三菱FX5U PLC的通信配置与实战应用
1. 工业RFID与PLC通信的基础认知 在自动化产线上,RFID读写器就像给物料贴"身份证"的智能哨兵,而PLC则是控制流水线动作的大脑。CK-FR03-A01这款工业级RFID读写器,通过RS485接口采用Modbus RTU协议与三菱FX5U PLC对话,就…...
从零到一:手把手教你搭建专属DNF私服服务器
1. 准备工作:搭建DNF私服需要哪些东西 第一次接触DNF私服搭建的朋友可能会觉得这是个技术活,其实只要跟着步骤来,完全可以在2小时内搞定。我自己搭建过不下10个版本的DNF私服,从60怀旧版到最新的110级版本都玩过。先说说需要准备的…...
