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

UART 通信-使用VIO进行板级验证

串口系列知识分享:
(1)串口通信实现-串口发送
(2)串口通信发送多字节数据
(3)串口通信实现-串口接收
(4)UART 通信-使用VIO进行板级验证
(5)串口接收-控制LED闪烁
(6)使用串口发送实现ACX720开发板时钟显示
(7)串口发送+RAM+VGA传图

文章目录

  • 前言
  • 一、uart串口协议(串口发送)
    • 1.verilog实现
    • 2.testbed编写
    • 3.仿真波形分析
    • 4.板级验证与测试
  • 二、uart串口协议(串口接收)
    • 1.verilog实现
    • 2.仿真文件
    • 3.仿真展示
  • 三、uart串口协议(串口发送和接收联合调试)
    • 1.VIO板级调试
    • 2.顶层模块
    • 3.生成bit文件


前言

本章将学习 UART 通信的原理及其硬件电路设计,并使用 FPGA 来实现 UART 通信中的数据发送和接收部分设计。在仿真验证时除进行正常的功能仿真以外,还将在 Vivado 中使用
Virtual Input/Output(VIO)工具进行板级验证,具体方法是:通过 VIO 输入需要通过串口发送出去的数据,并且控制 FPGA 将待发送的数据发送出去,并在串口助手中查看 PC 端接收到的数据。
提示:以下是本篇文章正文内容,下面案例可供参考

一、uart串口协议(串口发送)

此部分将介绍uart串口协议(串口发送)的verilog实现和testbench的编写,具体原理参考串口发送述,这里直接展示代码:

1.verilog实现

`timescale 1ns / 1ps
//// Create Date: 2023/09/01 15:30:48
// Design Name: 
// Module Name: uart_tx
// Tool Versions:Vivado 2018.3
//Name : 小王在努力...
// Revision 0.01 - File Created
// Additional Comments:
// 
//module uart_tx(input clk,input reset_n,input send_go,input [7:0] input_data,input [1:0]Band,output reg send_en,output reg tx_data,output reg tx_done);reg [15:0]Band_set;reg [7:0]input_data_1,input_data_2;	reg [16:0]	Band_cnt;reg [3:0] Band_num;	//选择波特率always @ (posedge clk or negedge reset_n)if(!reset_n)Band_set <= 16'd433;else begincase(Band)0:Band_set <= 16'd5270;1:Band_set <= 16'd433;default:Band_set <= 16'd5270;endcaseend//数据寄存防止亚稳态		always @ (posedge clk or negedge reset_n)if(!reset_n)begininput_data_1 <= 0;input_data_2 <= 0;endelsebegininput_data_2 <= input_data;input_data_1 <= input_data_2;end //产生起始信号	   always @ (posedge clk or negedge reset_n)if(!reset_n)	send_en <= 0;else if(send_go)send_en <= 1;else if(Band_num == 10)send_en <= 0;else	send_en <= send_en;//计数波特率always @ (posedge clk or negedge reset_n)if(!reset_n)	Band_cnt <= 0;else if(send_en)beginif(Band_cnt >= Band_set)Band_cnt <= 0;else	Band_cnt <= Band_cnt + 1;endelseBand_cnt <= 0;always @ (posedge clk or negedge reset_n)if(!reset_n)Band_num <= 0;else if(send_en)beginif (Band_num == 10)Band_num <= 0;else if(Band_cnt == Band_set)Band_num <= Band_num + 1;else	Band_num <= Band_num;endelseBand_num <= 0;//产生输出结果		always @ (posedge clk or negedge reset_n)if(!reset_n)		tx_data <= 1;else if(send_en)begincase(Band_num)0:tx_data <= 0;1:tx_data <= input_data_1[0];2:tx_data <= input_data_1[1];3:tx_data <= input_data_1[2];4:tx_data <= input_data_1[3];5:tx_data <= input_data_1[4];6:tx_data <= input_data_1[5];7:tx_data <= input_data_1[

相关文章:

UART 通信-使用VIO进行板级验证

串口系列知识分享: (1)串口通信实现-串口发送 (2)串口通信发送多字节数据 (3)串口通信实现-串口接收 (4)UART 通信-使用VIO进行板级验证 (5)串口接收-控制LED闪烁 (6)使用串口发送实现ACX720开发板时钟显示 (7)串口发送+RAM+VGA传图 文章目录 前言一、uart串口协…...

linux 查看可支持的shell

查看可支持的shell linux中支持多种shell类型&#xff0c;所以在shell文件的第一行需要指定所使用的shell #!/bin/bash 指定该脚本使用的是/bin/bash&#xff0c;这样的机制使得我们可以轻松地引用任何的解释器 查看该linux系统支持的shell cat /etc/shells/bin/sh/bin/bash/us…...

微服务简介

微服务简介 微服务架构是一种软件架构模式&#xff0c;它将一个大型应用程序拆分为一组小型、独立的服务&#xff0c;每个服务都有自己的业务逻辑和数据存储。这些服务可以独立开发、部署和扩展&#xff0c;通常使用HTTP或其他轻量级通信协议进行通信。 以下是微服务架构的一…...

PHP自己的框架2.0设置常量并绑定容器(重构篇三)

目录 1、设置常量并绑定容器 2、容器增加设置当前容器的实例和绑定一个类实例当容器 3、将常量绑定到容器中 4、运行效果 1、设置常量并绑定容器 2、容器增加设置当前容器的实例和绑定一个类实例当容器 //设置当前容器的实例public static function setInstance($instance){…...

重建大师提交空三后引擎状态是等待,怎么开启?

答&#xff1a;图片中这是在自由网空三阶段&#xff0c;整个AT都是等待中&#xff0c;可以修改任务目录和监控目录看一下&#xff0c;先设置引擎&#xff0c;再提交空三。...

【数据结构】堆的向上调整和向下调整以及相关方法

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3; 文章目录 一、堆的概念二、堆的性质…...

【蓝桥杯选拔赛真题60】Scratch旋转风车 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析

目录 scratch旋转风车 一、题目要求 编程实现 二、案例分析 1、角色分析...

JavaSE、JavaEE与Spring的概念和异同点剖析以及规范13 个分析

JavaSE、JavaEE与Spring的概念和异同点剖析以及规范13 个分析 目录概述需求&#xff1a; 设计思路实现思路分析1.什么是JavaSE2.是JavaEE3.什么是Spring 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&…...

微信小程序的图书馆图书借阅 座位预约系统 读者端设计与实现

该系统基于B/S即所谓浏览器/服务器模式&#xff0c;应用springboot框架&#xff0c;选择MySQL作为后台数据库。系统主要包括系统图书信息、图书借阅、图书归还、自习室信息、自习室预约等功能模块。 关键词 微信小程序的图书馆读者端&#xff1b;微信小程序&#xff1b;java语…...

在阿里云 linux 服务器上查看当前服务器的Nginx配置信息

我们可以通过命令 sudo nginx -t查看到nginx.conf的路径 可以通过 sudo nginx -T查看 nginx 详细配置信息&#xff0c;包括加载的配置文件和配置块的内容 其中也会包括配置文件的内容...

专业招投标书翻译怎样做比较好

在全球经济贸易一体化不断深入的时代&#xff0c;招投标作为国际通用的新型贸易方式&#xff0c;受到了大量中外企业的青睐。根据国际惯例&#xff0c;与招标采购活动有关的一切文件资料&#xff0c;均须使用英文编制。即使允许使用非英文语言编制&#xff0c;也必须随附一份英…...

算法总结10 线段树

算法总结10 线段树 线段树2569. 更新数组后处理求和查询 线段树 有一个数组&#xff0c;我们要&#xff1a; 更新数组的值&#xff08;例如&#xff1a;都加上一个数&#xff0c;把子数组内的元素取反&#xff09;查询一个子数组的值&#xff08;例如&#xff1a;求和&#x…...

518抽奖软件,支持按人像照片抽奖

518抽奖软件简介 518抽奖软件&#xff0c;518我要发&#xff0c;超好用的年会抽奖软件&#xff0c;简约设计风格。 包含文字号码抽奖、照片抽奖两种模式&#xff0c;支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 照片抽奖模式 圆角边框 照片抽奖模式下&am…...

数字IC笔试面试题之--时钟偏斜(skew)与抖动(jitter)

1 时钟偏斜&#xff08;clock skew&#xff09; 时钟偏斜&#xff08;偏移&#xff09;是因为布线长度和负载不同&#xff0c;导致同一时钟上升沿到不同触发器的时间不同。这一时间差&#xff0c;即为时钟偏移。 时钟偏斜可能导致时序违例&#xff08;本文直接粘贴了参考博客…...

免费api接口:物流api,企业工商查询api,游戏api。。。

免费api接口&#xff0c;物流api,企业工商查询api,游戏api。。。都有。 Facebook Games Services - Facebook Games Services 为游戏开发者提供了各种服务, 包括(但不限于) 成就 API, 分数 API, 应用通知, 请求, 游戏养成和 Facebook SDK for Unity.Google Play Games Service…...

第二十八章 Classes - 引用其他类的方法

文章目录 第二十八章 Classes - 引用其他类的方法引用其他类的方法对当前实例的引用 第二十八章 Classes - 引用其他类的方法 引用其他类的方法 在方法(或例程)中&#xff0c;使用下面的语法来引用其他类中的方法: 要调用类方法并访问其返回值&#xff0c;请使用如下表达式:…...

Android 中集成 TensorFlow Lite图片识别

在上图通过手机的相机拍摄到的物体识别出具体的名称&#xff0c;这个需要通过TensorFlow 训练的模型引用到项目中&#xff1b;以下就是详细地集成 TensorFlow步骤&#xff0c;请按照以下步骤进行操作&#xff1a; 在项目的根目录下的 build.gradle 文件中添加 TensorFlow 的 Ma…...

NSSCTF之Misc篇刷题记录(16)

NSSCTF之Misc篇刷题记录&#xff08;16&#xff09; [黑盾杯 2020]encrypt[UTCTF 2020]Spectre[UTCTF 2020]Observe closely NSSCTF平台&#xff1a;https://www.nssctf.cn/ PS&#xff1a;所有FLAG改为NSSCTF [黑盾杯 2020]encrypt UTAxSlUwTkRWRVo3Um1GclpWOWxibU55ZVhCMGFX…...

域名解析--nslookup和dig

dig (Domain Information Groper) dig 是一个功能强大且更灵活的 DNS 查询工具&#xff0c;通常在 Linux 和 macOS 等 Unix-like 操作系统上使用。以下是 dig 的一些常见用法和区别&#xff1a; 查询域名信息 dig example.com这将返回与指定域名相关的 DNS 记录&#xff0c;…...

EXCEL如何把一个单元格内的文本和数字分开?例如:龚龚15565 = 龚龚 15565

使用工具&#xff1a;WPS 举例&#xff1a; EXCEL如何把一个单元格内的文本和数字批量分开&#xff1f;不使用数据分列。 第一步、将第二行数据冻结 第二步、在B1、C1单元格输入需要分开的示例 第三步、点击选中B1单元格&#xff0c;输入快捷键【CTRLE】进行填充。B2单元格也是…...

uniapp抽取组件绑定事件中箭头函数含花括号无法解析

版本: "dcloudio/uni-ui": "^1.4.27", "vue": "> 2.6.14 < 2.7"... 箭头函数后含有花括号的时候, getData就拿不到val参数 , 解决办法就是去除花括号 // 错误代码: <SearchComp change"(val) > { getData({ val …...

猫头虎博主第四期赠书活动:《精通Go语言:(第2版) 》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

【学习总结】EasyExcel合并同列不同行,表格数据相同的行

实体类 Data HeadRowHeight(50) ContentStyle(horizontalAlignment HorizontalAlignmentEnum.CENTER, verticalAlignment VerticalAlignmentEnum.CENTER, wrapped BooleanEnum.TRUE) public class CriterionDataExportDTO {ColumnWidth(15)ExcelProperty(value "所属…...

Tokenview X-ray功能:深入探索EVM系列浏览器的全新视角

Tokenview作为一家领先的多链区块浏览器&#xff0c;为了进一步优化区块链用户的使用体验&#xff0c;我们推出了X-ray&#xff08;余额透视&#xff09;功能。该功能将帮助您深入了解EVM系列浏览器上每个地址的交易过程&#xff0c;以一种直观、简洁的方式呈现地址的进出账情况…...

【洛谷 P1364】医院设置 题解(图论+深度优先搜索)

医院设置 题目描述 设有一棵二叉树&#xff0c;如图&#xff1a; 其中&#xff0c;圈中的数字表示结点中居民的人口。圈边上数字表示结点编号&#xff0c;现在要求在某个结点上建立一个医院&#xff0c;使所有居民所走的路程之和为最小&#xff0c;同时约定&#xff0c;相邻接…...

【Java基础】- RMI原理和使用详解

【Java基础】- RMI原理和使用详解 文章目录 【Java基础】- RMI原理和使用详解一、什么RMI二、RMI原理2.1 工作原理图2.2 工作原理 三、RMI远程调用步骤3.1 RMI远程调用运行流程图3.2 RMI 远程调用步骤 四、JAVA RMI简单实现4.1 如何实现一个RMI程序4.2 JAVA实现RMI程序 一、什么…...

无水印免费4K视频素材网站 可商用-Free Stock Video

Free Stock Video是一个在线无水印免费4K视频素材网站&#xff0c;提供各种类型的4k、1080p的视频素材共免费下载&#xff0c;包括美食、水、自然、冬季、无人机、云朵、慢动作、夕阳、动态背景、缩时摄影、旅游和烟火&#xff0c;也可通过关键词搜索方式找到相关视频素材内容&…...

kubesphere中间件部署

微服务部署前中间件部署 一、MySQL部署 1.1 使用Docker实现MySQL主从复制 docker run -p 3307:3306 --name mysql-master \ -v /mydata/mysql/master/log:/var/log/mysql \ -v /mydata/mysql/master/data:/var/lib/mysql \ -v /mydata/mysql/master/conf:/etc/mysql \ -e My…...

使用 AWS S3 SDK 访问 COS-腾讯云国际站代充

腾讯云国际站对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;提供了 AWS S3 兼容的 API&#xff0c;因此当用户的数据从 S3 迁移到 COS 之后&#xff0c;只需要进行简单的配置修改&#xff0c;即可让客户端应用轻松兼容 COS 服务。下面unirech小编主要介…...

c语言每日一练(15)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;上学期间将看学业情况更新。 五道选择题&#xff1a; 1、程序运行的结果…...

网站流量对比/一站式网站建设公司

Python中有哪些视频/音频库可用于识别视频录制中的特定音频模式&#xff1f;我试图从视频文件中排除录制的开始部分(跳过特定的音频模式)&#xff0c;因此我需要一种方法从头扫描文件识别音频模式(特定的音乐总是相同的)从那时开始录制/复制视频录制的其余部分。在视频详细信息…...

什么是专业建设/女装标题优化关键词

在Android开发当中经常会用到了需要ScrollView嵌套GridView或者是ListView的情况&#xff0c;由于这两款控件都自带滚动条&#xff0c;当他们碰到一起的时候便会出问题&#xff0c;即GridView或ListView会显示不全。 解决方案&#xff1a; 自定义GridView或ListView&#xff0c…...

网站建设 山西/起飞页自助建站平台

1.absolute.是相对于父级而言的。...

wordpress内容页插件/营销渠道管理

最近身边有人考研&#xff0c;政治题里有人和动物的区别一体。答案啰嗦一堆总结如下&#xff1a; 从历史的方面来说&#xff1a; 人类与其他动物的根本区别在于能不能制造和使用工具 随着进化&#xff0c;我们人类变得强大&#xff0c;如今我们能日行千里&#xff0c;能飞上太…...

网站建设设计师/百度搜索引擎算法

应用服务器的概念&#xff1a;不是把ORB、MOM、事务管理、数据访问中间件和其他中间件产品和技术简单地打包在一起&#xff1b;因为当前的应用服务器软件都是基于对象或组件技术的&#xff0c;各种中间件功能必须以面向对象或组件的方式提供&#xff1b;此外&#xff0c;还需要…...

成都网站建设 四川冠辰科技/农产品网络营销推广方案

一、网络地址规划表 源IP地址 目的IP地址 网址域名 网址名称 172.31.148.79 183.232.231.174 www.baidu.com 百度搜索 172.31.148.79 121.51.142.21 www.qq.com 腾讯网 二、配置 步骤&#xff1a;控制面板—网络和Internet—网络和共享中心—连接—属性—Internet协…...