Vivado中VIO IP核的使用

news2024/12/24 21:22:27

Vivado中VIO IP核的使用

  • 一、写在前面
  • 二、VIO IP核配置
  • 三、VIO联调
  • 四、写在后面

一、写在前面

  Vivado中的VIO(Virtual Input/Output) IP核是一种用于调试和测试FPGA设计的IP核。它允许设计者通过使用JTAG接口读取和写入FPGA内部的寄存器,从而检查设计的运行状态并修改其行为。VIO IP核提供了一个简单易用的接口,使得用户可以轻松地与FPGA内部寄存器进行交互。通过使用VIO IP核,用户可以实时监视和修改设计中的信号,以便进行调试和验证。此外,VIO IP核还可以与其他IP核和设计组件配合使用,从而帮助设计者更好地理解和调试整个系统。
  总之,VIO IP核是一个非常有用的调试工具,它可以帮助FPGA设计者快速、准确地调试和测试他们的设计,并加快整个开发流程。

二、VIO IP核配置

  在Vivado的IP Catalog界面中,搜索VIO,即可找到我们需要使用的VIO IP核,双击对IP核进行配置。
在这里插入图片描述
  首先是对VIO的虚拟输入/输出引脚的个数的配置

  • Input Probe Count:VIO输入探头个数,即输入到VIO,需要查看实时数据值的信号个数;
  • Output Probe Count:VIO输出探头个数,即输出给其他模块的信号个数;
  • Enable Input Probe Activity Detectors:输入探头变化检测。若勾选,则在后续调试过程中,某个输入信号发生变化时,则会出现数据变化的提示;若不勾选,则无输入数据变化提示(注意,这里输入数据是指输入到VIO模块中的数据);

  另外,在这里有一点值得注意:输入/输出探头的最大个数为256,而在该界面下,最多可以生成64个输入/输出探头的VIO IP核,如果要生成大于64的VIO IP核,则需要通过Tcl脚本进行生成。
在这里插入图片描述

  然后是对输入探头的位宽进行设置,即我们需要观察的信号的位宽。

在这里插入图片描述

  然后是对输出探头的位宽进行设置,即输出到其他模块,用于计算或者控制的信号的位宽。

在这里插入图片描述
  对VIO IP核配置完成后,生成IP核。

三、VIO联调

  本次以UART发送为例,通过VIO输出串口需要发送的8比特数据data和1比特的发送使能信号,同时将串口发送结束信号tx_done接入到VIO的输入端,观察其值和变换。
  首先,在IP Sources窗口下找到vio_0.veo,该文件为生成的VIO IP核的例化模板,将该例化模板复制到UART发送模块的顶层文件中,对例化名称以及VIO的输入输出进行连接。
在这里插入图片描述
在这里插入图片描述

  在这里,对VIO输出的信号tx_signal做边沿检测,当tx_signal发生变化时,则将串口发送信号uart_tx_en拉高一个时钟周期,表示发送1Byte的数据。

在这里插入图片描述

  对顶层文件综合实现后,生成比特流文件,将生成的.bit文件和.ltx文件下载到FPGA开发板。

在这里插入图片描述

  此时会出现VIO调试窗口,在该窗口下可以看到接入VIO输入/输出探头的各个信号的信号名称Name、当前值Value、是否发生变化Activity等信息。

在这里插入图片描述

  同时,打开串口助手,可以看到串口助手中无任何接收信息。

在这里插入图片描述

  然后,在VIO调试窗口中修改tx_signal的值为1,即给出一个发送信号,可以看到在串口助手中,接收到了8’h00,这是由于我们给uart_tx_data赋的初始值为8’h00。同时,在调试窗口中可以看到uart_tx_done的Activity栏出现一个上下箭头的蓝色标志,表示出现了上升沿和下降沿,在这里由于uart_tx_done只有保持一个时钟的高电平,表示一帧数据传输结束,所以在这里会出现上升沿和下降沿。
在这里插入图片描述
在这里插入图片描述
  然后在VIO调试窗口中修改串口发送的8bit数据uart_tx_data为AA,然后再修改tx_signal的值为0,即给出一个发送信号,可以看到在串口助手中,接收到了8’hAA。
在这里插入图片描述
在这里插入图片描述
  再比如发送数据8’hDD,在串口助手中接收到数据8’hDD。

在这里插入图片描述
在这里插入图片描述
  根据上述实验结果,对UART发送模块的验证通过。

四、写在后面

  在本文中,学习了Vivado中VIO IP核的使用,结合串口发送程序进行上板实验,使用VIO产生串口需要发送的8比特数据和控制串口发送的使能信号。在这里,只是对VIO的使用进行简单的演示,在具体设计中应根据项目需求进行配置。
  好了,上面就是关于Vivado中VIO IP核的一些学习笔记,如果有疑义的地方欢迎评论区友好探讨学习!!!!!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】关于synchronized总结-Callable用法及JUC的常见问题

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶synchronized原理是什么?synchronized到底有什么特点,synchronized的锁策略是什么,是怎么变化的呢?本篇文章总结出, Synchronized 具有以下特性…

【Java|golang】1041. 困于环中的机器人

在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意: 北方向 是y轴的正方向。 南方向 是y轴的负方向。 东方向 是x轴的正方向。 西方向 是x轴的负方向。 机器人可以接受下列三条指令之一: “G”:直走 1 个单位 “L”&…

Markdown 语法大全

Markdown是一种轻量级标记语言,常用于撰写博客、文档、论文等。它可以让你使用易读易写的纯文本格式来编写文档,然后通过转换成有效的HTML文档进行发布。以下是Markdown常用的语法: 这里写目录标题标题列表引用一级引用嵌套引用粗体和斜体删除…

技术复盘(1)--redis

技术复盘--redis技术复盘(1)--redis资料地址准备工作发展史redis-windowsredis-windows-说明redis-centos7安装jdk安装redisredis-key基本命令redis-string命令redis-list命令redis-set命令redis-hash命令redis-zset命令redis-geospatial命令redis-hyperloglog命令redis-bitmap…

【Linux驱动开发】024 INPUT子系统

一、前言 按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如…

文本聚类与摘要,让AI帮你做个总结

你好,我是徐文浩。 上一讲里,我们用上了最新的ChatGPT的API,注册好了HuggingFace的账号,也把我们的聊天机器人部署了出去。希望通过这个过程,你对实际的应用开发过程已经有了充足的体验。那么这一讲里,我们…

[目标识别-论文笔记]Object Detection in Videos by Short and Long Range Object Linking

文章标题:2018_Cite13_Tang——Object Detection in Videos by Short and Long Range Object Linking 这篇论文也被叫做“2019_Cite91_TPAMI_Tang——Object Detection in Videos by High Quality Object Linking” 如果这篇博客对你有帮助,希望你 点赞…

ES索引库操作

文章目录1、对索引库的操作:创建、删除、查看2、文档操作3、 RestClient操作索引库4、利用RestClient实现文档的CRUD5、 批量导入功能有了索引库相当于数据库database,而接下来,就是需要索引库中的类型了,也就是数据库中的表&…

nssctf web入门(1)

这里通过nssctf的题单web安全入门来写,会按照题单详细解释每题。题单在NSSCTF中。 想入门ctfweb的可以看这个系列,之后会一直出这个题单的解析,题目一共有28题,打算写10篇。 [SWPUCTF 2021 新生赛]jicao [SWPUCTF 2021 新生赛]j…

RL4RS,离线强化学习,无模型强化学习等等资源汇总

发现好文章: 强化学习推荐系统综述:Reinforcement Learning based Recommender Systems: A Survey 强化学习图鉴|你与最优策略之间,可能还差一本离线强化学习秘籍 科学应用强化学习创新论文洞察 https://hub.baai.ac.cn/view/18…

【论文精读】PP-YOLOE: An evolved version of YOLO

文章目录前言一、可扩展的 Backbone 和 Neck二、更高效的标签分配策略 TAL (Task Alignment Learning)三、更简洁有效的 ET-Head (Efficient Task-aligned Head)前言 百度飞桨团队发布了 PP-YOLOE,与其他 YOLO 系列算法相比,其具有更强的性能、更丰富灵…

8.2 正态总体的参数的检验

学习目标: 如果我要学习正态总数的参数检验,我会按照以下步骤进行学习: 学习正态分布的基本知识:正态分布是统计学中非常重要的概率分布之一,掌握其基本知识包括概率密度函数、期望值、方差、标准差等是非常重要的。 …

Prometheus - Grafana 监控 MySQLD Linux服务器 demo版

目录 首先是下载Prometheus 下载和安装 配置Prometheus 查看监控数据 监控mysql demo 部署 mysqld_exporter 组件 配置 Prometheus 获取监控数据 -------------------------------------- 安装和使用Grafana 启动Grafana -------------------------------------- 配…

MySQL5.5安装图解

一、MYSQL的安装 1、打开下载的mysql安装文件mysql-5.5.27-win32.zip,双击解压缩,运行“setup.exe” 2、选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,选择“Cu…

VSD Viewer for Mac,Visio绘图文件阅读器

VSD Viewer for Mac版是mac上一款非常强大的Visio绘图文件阅读器,它为打开和打印Visio文件提供了简单的解决方案。可以显示隐藏的图层,查看对象的形状数据,预览超链接。还可以将Visio转换为包含图层,形状数据和超链接的PDF文档。 …

【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Linux 进程管理之四大名捕

一、四大名捕 四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手 “无情”、内功卓越的高手“铁手”、腿功惊人的“追命” 和剑法一流的“冷血”。 本文四大名捕由…

【Unity入门】11.脚本控制物体旋转

【Unity入门】脚本控制物体旋转 大家好,我是Lampard~~ 欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢 (一)控制物体自转 (1)创建RotateLogic脚本 上一篇文章我们学习了如何在脚本中获取物体对象…

【前端工具】使用真机在chrome远程调试

手机端需要做的事 手机上下载chrome浏览器 手机开启“开发者模式” 具体步骤各个品牌手机不太一样,华为手机为例: 打开手机上的 “设置” 图标, 进入最下方 “系统” 选项, 再点击最上方 “关于手机”, 接着连续点击 …

(十八)排序算法-计数排序

1 基本介绍 1.1 概述 计数排序是一个非基于比较的排序算法,元素从未排序状态变为已排序状态的过程,是由额外空间的辅助和元素本身的值决定的。该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度…