当前位置: 首页 > news >正文

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屏幕上显示 &#xff1a; 野火科技 相比于上个工程&#xff0c;只需要修改 vga_pix 模块即可。 注意存储器类型变量的定义&#xff1a;reg 【宽度】<名称>【深度】 赋值 always &#xff08;poseedge vga_clk&#xff09;begin 为每一行赋值&#xff0c;不可位赋…...

JDK8 升级至JDK19

优质博文IT-BLOG-CN 目前部分项目使用JDK8&#xff0c;部分项目使用JDK19因此&#xff0c;环境变量中还是保持JDK8&#xff0c;只需要下载JDK19免安装版本&#xff0c;通过配置IDEA就可以完成本地开发。 一、IDEA 环境设置 【1】通过快捷键CTRL SHIFT ALT S或者File->P…...

Python3.10 IDLE更换主题

前言 自定义主题网上有很多&#xff0c;3.10IDLE的UI有一些新的东西&#xff0c;直接扣过来会有些地方覆盖不到&#xff0c;需要自己测试着添几行配置&#xff0c;以下做个记录。 配置文件路径 Python安装目录下的Lib\idlelib\config-highlight.def。如果是默认安装&#xf…...

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信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 问题一&#xff1a;Verilog代码没有跑通 报…...

CSS - 鼠标移入整行高亮显示,适用于会员套餐各参数对比页面(display: table,div 转表格形式)

效果图 可根据基础示例和进阶示例&#xff0c;复制进行改造样式。 如下图所示&#xff0c;本文提供 2 个示例。 基础示例 找个 HTML 页面&#xff0c;一键复制运行。 <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 配置&#xff0c;在 tomcat 下部署需要检查 web.xml 是否存在&#xff0c;并且要确保配置正确&#xff0c;配置格式如下。 <?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/)摘要和结论引言&#xff1a;针对痛点和贡献相关工作模型框架思考不足之处 2.…...

二维码智慧门牌管理系统:数据现势性,满足应用需求的根本保证

文章目录 前言一、项目背景二、数据的现势性三、系统的优势四、应用前景 前言 在当今信息化社会&#xff0c;数据的重要性日益凸显&#xff0c;尤其是数据的现势性&#xff0c;它决定着服务的质量和满足应用需求的能力。近日&#xff0c;一个创新的二维码智慧门牌管理系统项目…...

BF算法(C++)简单讲解

BF算法匹配过程易理解&#xff0c;若匹配&#xff0c;子串和主串都往下移一位。不匹配时&#xff0c;主串回溯至本次匹配开始下标的下一位。例&#xff1a;图中第三趟匹配时&#xff0c;主串到第七位时与子串不匹配&#xff0c;这次匹配主串是从第三位开始的&#xff0c;所以下…...

JVM 虚拟机 ----> Java 类加载机制

文章目录 JVM 虚拟机 ----> Java 类加载机制一、概述二、类的生命周期1、类加载过程&#xff08;Loading&#xff09;&#xff08;1&#xff09;加载&#xff08;2&#xff09;验证&#xff08;3&#xff09;准备&#xff08;4&#xff09;解析&#xff08;5&#xff09;初始…...

《protobuf》基础语法2

文章目录 枚举类型ANY 类型oneof 类型map 类型改进通讯录实例 枚举类型 protobuf里有枚举类型&#xff0c;定义如下 enum PhoneType {string home_addr 0;string work_addr 1; }同message一样&#xff0c;可分为 嵌套定义&#xff0c;文件内定义&#xff0c;文件外定义。不…...

利用 SOAR 加快事件响应并加强网络安全

随着攻击面的扩大和攻击变得越来越复杂&#xff0c;与网络攻击者的斗争重担落在了安全运营中心 &#xff08;SOC&#xff09; 身上。SOC 可以通过利用安全编排、自动化和响应 &#xff08;SOAR&#xff09; 平台来加强组织的安全态势。这一系列兼容的以安全为中心的软件可加快事…...

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中文百科&#xff08;25w词条&#xff09;wikipedia-cn-20230720-filteredBaiduBaiKe&#xff08;563w词条&#xff09; …...

华为云云耀云服务器L实例使用教学 | 利用华为云服务器搭建--> 基于Spring Boot+WebSocket+WebRtc实现的多人自习室

文章目录 1. 购买华为云服务器L2. 在华为云服务器上搭建项目前期准备工作1. 更换登录密码2. 安全组配置 3. 在服务器上运行自己的项目 1. 购买华为云服务器L 在有优惠券的情况下&#xff0c;来到华为云这个网址下面&#xff0c;链接为&#xff1a;https://www.huaweicloud.com…...

Postman应用——接口请求(Get和Post请求)

文章目录 新增请求接口请求Get接口请求Post 这里只讲用的比较多的Get和Post请求方式&#xff0c;也可以遵循restful api接口规范&#xff0c;使用其他请求方式。 GET&#xff08;SELECT&#xff09;&#xff1a;从服务器取出资源&#xff08;一项或多项&#xff09;POST&#…...

k8s pod概念、分类及策略

目录 一.pod相关概念 &#xff12;.Kubrenetes集群中Pod两种使用方式 &#xff13;.pause容器的Pod中的所有容器共享的资源 &#xff14;.kubernetes中的pause容器主要为每个容器提供功能&#xff1a; &#xff16;.Pod分为两类&#xff1a; 二.Pod容器的分类 1.基础容器…...

C++系列-左移运算符重载

左移运算符重载 左移运算符的应用左移运算符的重载 左移运算符的应用 左移运算符&#xff0c;左移第一个操作数的位&#xff0c;第二个操作数决定要移动的位置左移运算符还可以用于输出调试&#xff0c;cout << “Hello” << endl; 左移运算符的重载 左移运算符…...

【Vue】vue中v-if的用法

v-if是Vue.js中常用的条件渲染指令&#xff0c;根据表达式的值来动态控制元素的显示或隐藏。具体的使用方法如下&#xff1a; 1.基本语法 <div v-if"condition"><!-- content --> </div>其中&#xff0c;v-if后面跟着一个表达式condition&#x…...

企业架构LNMP学习笔记54

企业架构NoSQL数据库之MongoDB。 学习目标和内容&#xff1a; 1&#xff09;能够简单描述mongoDB的使用特点&#xff1a; 2&#xff09;能够安装配置启动MongoDB&#xff1b; 3&#xff09;能够使用命令行客户端简单操作MongoDB&#xff1b; 4&#xff09;能够实现基本的数…...

C【函数】

1.常用API 1.strcpy&#xff1a;#include<string.h> char * strcpy ( char * destination, const char * source );int main(){char arr1[] "bit";char arr2[20] "###########";// bit\0########strcpy(arr2, arr1);printf("…...

【简单教程】利用Net2FTP构建免费个人网盘,实现便捷的文件管理

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…...

05-Flask-Flask查询路由方式

Flask查询路由方式 前言命令行方式代码实现返回所有路由 前言 本篇来学习下Flask中查询路由的方式 命令行方式 # window 用set linux 用 export set FLASK_APPtest_6_flask运行发方式# 打印所有路由 flask routes代码实现返回所有路由 # -*- coding: utf-8 -*- # Time …...

lua环境搭建数据类型

lua作为一门计算机语言&#xff0c;从语法角度个人感觉还是挺简洁的接下来我们从0开始学习lua语言。 1.首先我们需要下载lua开发工具包 在这里我们使用的工具是luadist 下载链接为&#xff1a;https://luadist.org/repository/下载后的压缩包解压后就能用。 2.接下来就是老生…...

c++11的一些新特性

c11 1. {}初始化2. 范围for循环3. final与override4. 右值引用4.1 左值引用和右值引用4.2 左值引用与右值引用比较 5. lambda表达式6. 声明6.1 auto6.2 decltype6.3 nullptr 7. 可变参数模版 1. {}初始化 在C中&#xff0c;使用花括号初始化的方式被称为列表初始化。列表初始化…...

K8S名称空间和资源配额

Kubernetes 支持多个虚拟集群&#xff0c;底层依赖于同一个物理集群。 这些虚拟集群被称为名称空间。名称空间namespace是k8s集群级别的资源&#xff0c;可以给不同的用户、租户、环境或项目创建对应的名称空间&#xff0c;例如&#xff0c;可以为test、dev、prod环境分别创建各…...

鼠标拖拽拖动盒子时,与盒子内某些点击事件冲突问题解决

目录 问题解决思路解决代码&#xff08;标注【主要代码】的为重点&#xff09; 问题 拖动该悬浮球时&#xff0c;鼠标弹起可能会触发悬浮球内事件 解决思路 鼠标拖动盒子时&#xff0c;将 isMove 设为 true 意为正在拖动盒子&#xff0c;此时将 class"btns_move" 遮…...

腾讯网页版/天津seo培训

参加软考的同学都会要复习的UML相关的知识点&#xff0c;同时我们在学习和工作中也会用到UML工具。 最新的UML2.0有哪些图呢 用例图&#xff08;use case diagram&#xff09; 小人蛋活动图&#xff08;activity diagram&#xff09;静态结构图顺序图&#xff08;Sequence Di…...

工信部网站备案系统/网站推广的渠道有

冯.诺依曼体系结构,个人的理解:物理电学补充:所有的物质,是由分子或原子组成的。分子是能保持物质化学性质不变的最小微粒。分子是由原子组成的&#xff0c;可分为单原子分子和多原子分子。原子的原子核式结构&#xff1a;原子的中心为原子核&#xff0c;电子在不同轨道上绕着原…...

展示型网站/广告免费推广网

Table of Contents 重试机制重试的必要性重试前提重试策略重试策略分析二进制指数退避策略二进制指数退避策略实操过程二进制指数退避策略原理Q&A附录 重试机制 本文介绍系统设计中&#xff0c;常见的重试机制。重点介绍二进制指数规避策略&#xff0c;从原理至实操&…...

做b2c网站/童程童美少儿编程怎样收费

最近这几年购置的电脑几乎都安装了Windows 10&#xff0c;并且使用UEFI方式启动(UEFI即统一可扩展固件接口&#xff0c;用来定义操作系统与固件之间的软件界面&#xff0c;作为BIOS的替代方案)。UEFI启动和传统的BIOS启动不同&#xff0c;它不再支持实模式启动系统如DOS等。而传…...

wordpress 新安装 慢/金戈西地那非片

复制文件。 语法 FileCopy源&#xff0c;目标 FileCopy 语句语法包含以下命名参数&#xff1a; 部分说明source必需。 指定要复制的文件的名称的字符串表达式。 _源_可能包含目录或文件夹&#xff0c;和驱动器。目标必需。 指定的目标文件名称的字符串表达式。 _目标_可能包含目…...

北京高端别墅设计公司/东莞整站优化排名

GraphMat: High performance graph analytics made productive GraphMat&#xff1a;高性能图分析提高生产力 [Paper] [Slides] [Code] VLDB’15 摘要 弥合用户友好的图分析框架和本地手动优化代码之间的差距 采用结点编程(前端)并将其映射到后端的高性能稀疏矩阵运算, 性能…...