超低成本FPGA JTAG方案

news2024/12/29 10:36:29

cdec7fcee18723115acc4e6289af4bb3.png

今天给大家带来一款超低成本的FPGA JTAG方案,硬件核心是用树莓派Pico,使用相关芯片自己制作JTAG则非常便宜,RP2040某宝的报价只有4元,所以自己制作成本非常低廉,当然使用Pico成本也不是很高,所以今天就以Pico为例讨论怎么制作JTAG并验证。

d4a515a4dc0db8f30433650453037b7c.png

制作步骤

1c08b5a1e4515a58bebfe7b8b8958a83.png

首先按照GitHub 说明(https://github.com/kholia/xvc-pico)在虚拟机上安装依赖项,然后创建一个新的存储库目录并克隆了 pico-SDK 和 XVC-Pico 项目。

克隆了存储库,我们就可以构建主机端守护进程。它在 Linux 主机和 RPi Pico 镜像像上运行。我们按照 GitHub 中提供的说明执行此操作。

c1e67f2cc8bbbdb85a78a8cf7ff2bf0c.png 9422fa63f28e3fe03135a0fdb4e29752.png 93fc918e2e69d877b7215cc92a82f68a.png

构建了使用 XVC-Pico 的守护进程,我们让它在开发计算机上运行。

c543a9dbf7dba36aa9525595e2c000c1.png

要在 UF2 文件可用后将映像下载到 RPi Pico,请在 RPi Pico 通电时按住 bootsel boot,电路板将挂载到文件系统中。只需复制 UF2 文件,它就会安装完毕并准备就绪。

通过对 RPi Pico 进行编程,我们可以将用于提供 JTAG 信号的 GPIO 连接到 FPGA 板上的 JTAG 座子。对于 GPIO 等其他板,RPi Pico 是 3v3,因此需要确保目标板向 Bank 0 提供 3v3,否则存在损坏 FPGA 器件的风险。

JTAG引脚分配如下:

dea160f2c1eab710eee5227473ad9f79.png

bb3974639f3f2f24430e5219264055ae.png

492c6d117735d7ca3bfabc95c8d5b109.png

确保在 Pico Pin 23 和目标板之间连接接地参考。否则,将无法连接到设备。

当守护程序运行并且板已连接并通电时,我们可以启动 Vivado 并尝试打开硬件管理器连接到目标FPGA上。

Vivado 启动时打开硬件管理器并创建新的硬件目标。使用 Xilinx 虚拟电缆 (XVC) 选项。当提示输入 XVC 时,使用 Linux 开发计算机的 IP 地址。

1cd6245ef1144d3d0da1f5ea34cff7e8.png

下一步是使用硬件管理器读取 XADC 温度和电压。

b4659d6555e0ea143f21da1f36d66e64.png

Vitis测试也是支持的:

f3486b81db70dc8ed53b71bd194f2bea.png

总的来说,XVC-Pico 应用程序给我留下了深刻的印象,并且在成本优化开发中,低成本解决方案非常有优势。

参考链接

https://github.com/kholia/xvc-pico

https://www.adiuvoengineering.com/microzed-chronicles-jtag-using-a-raspberry-pi-pico

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

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

相关文章

ChineseChess

外卖中国象棋的梗。 外卖免单题: 如图,红棋先行,至少几步绝杀黑房(黑房尽量不让自己输)? ChineseChess.java 【帅】是左出还是右出,取决于,上图黑方那边的【士】 如图&#xff0c…

datax抽取库名带点的表遇到的问题

一、描述任务 使用Datax抽取mysql中的数据到hive的wedw_ods层中,mysql的库名为:b.p.n.p 表名为:bene_group 二、datax.json脚本生成 因为datax的脚本是自动生成的,生成的格式如下: {"core": {},"jo…

竞赛项目 深度学习手势识别算法实现 - opencv python

文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习手势识别算法实现 - opencv python 该项目较为新颖…

中国信息安全测评中心CISP家族认证一览

随着国家对网络安全的重视,中国信息安全测评中心根据国家政策、未来趋势、重点内容陆续增添了很多CISP细分认证。 今日份详细介绍,部分CISP及其子品牌相关认证内容,一定要收藏哟! 校园版CISP NISP国家信息安全水平考试&#xff…

如何用SOLIDWORKS Simulation 避免共振现象

零件都有它的固有振动频率,称之为共振频率。当零部件的固有频率和激励频率相近时,对零部件的破坏是非常严重的,这就是我们说的共振。频率分析是设计师日常工作常见的设计验证。 今天给大家分享的是Simulation的频率分析操作方法: …

黑马头条项目学习--Day3: 自媒体文章发布

Day3: 自媒体文章发布 Day3: 自媒体文章发布1) 素材管理-图片上传a) 前期微服务搭建b) 具体实现 2) 素材管理-图片列表a) 接口定义b) 具体实现 3) 素材管理-照片删除/收藏a) 图片删除a1) 接口定义a2) 代码实现 b) 收藏与取消b1) 接口定义b2) 代码实现 4) 文章管理-频道列表查询…

前端面试自我介绍

前端面试自我介绍精选篇1 各位面试官大家好,我叫__,就读于__大学__学,大学本科学历,我的求职意向是与金融专业相关的职位,本人拥有较强的学习能力,能快速适应工作环境,兴趣爱好广泛&#xff0c…

nginx文件共享、服务状态和location模块的配置介绍

一.文件共享功能 1.清空html目录下文件并新建你要共享的文件 2.修改nginx.conf文件,开启autoindex功能 3.测试 二.状态模块 1.修改nginx.conf文件 2.测试 (1)使用刚才定义的IP/nginx_status进行访问 (2)status参…

Qt应用开发(基础篇)——工具箱 QToolBox

一、前言 QToolBox类继承于QFrame,QFrame继承于QWidget,是Qt常用的基础工具部件。 框架类QFrame介绍 QToolBox工具箱类提供了一列选项卡窗口,当前项显示在当前选项卡下面,适用于分类浏览、内容展示、操作指引这一类的使用场景。 二…

点的复合运动

一、问题所在 对于复合运动中的牵连运动一直很蒙,之前做题的时候都是靠经验,比如圆盘选择圆心做动系原点、连杆选择牵连点做原点等,今天重新整理了一下。 牵连运动的定义是动系相对于定系的运动,这个定义就很模糊。如果是指动系…

MySQL之 show profile 相关总结

MySQL之 show profile 相关总结 MySQL官网show profile介绍:https://dev.mysql.com/doc/refman/8.0/en/show-profile.html 1. 简介 show profile 和 show profiles 命令用于展示SQL语句的资源使用情况,包括CPU的使用,CPU上下文切换&#xf…

【Linux】认识“协议“序列化和反序列化

目录 前言 1 应用层 2 在谈协议 3 序列化和反序列化 4 网络版计算器 4.1 指定协议 request结构体 response结构体 4.2 服务端编写 4.3 客户端的编写 5 Json for C 的序列化和反序列化使用样例 前言 之前的socket编程,都是在通过系统调用层面,…

自制电子农历

水文大师上线。今天一水电子农历牌。 首先讲讲电子配件,一来是电子小屏幕的选择,遇到文字比较多的,尤其是汉字,不要选传统那款128x64 oled,绝对放不下(找到最牛的超小免费字体至少要在8pixel以上才能看清楚)。我选了i…

内核裁剪与驱动编译

linux设备驱动以内核模块的形式出现,编写linux内核模块编程是学习linux设备驱动的先决条件。 在编译linux内核之前要先配置linux内核。每个板子都有其对应的默认配置文件,这些默认配置文件保存在arch/arm/configs 目录中。比如xilinx_zynq_defconfig作为…

图扑软件入选信通院《高质量数字化转型产品及服务全景图 (2023)》

7 月 27 日,由中国信通院主办的“2023 数字生态发展大会”暨中国信通院“铸基计划”年中会议在北京召开。本次大会重磅发布了《高质量数字化转型产品及服务全景图(2023 上半年度)》。图扑软件凭借自研 HT for Web 数字孪生可视化产品成功入选…

(C++)继承

目录 1.继承的概念及定义 1.1继承的概念 1.2继承定义 1.2.1定义格式 1.2.2继承方式和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6.继承与静态成员 7.复杂的菱形继承及菱形虚拟…

OSPF无法建立领居的原因有哪些(第三十五课)

1 配置OSPF 1.1 思路 1,配置IP地址 2,配置OSPF 配置进程号 route-id进入区域宣告网段 配置IP地址 R1路由表 ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 10 …

【LeetCode】55. 跳跃游戏 - 贪婪算法

目录标题 2023-8-10 16:27:05 55. 跳跃游戏 2023-8-10 16:27:05 class Solution {public boolean canJump(int[] nums) {int n nums.length;int arrivalLocation 0;for (int i 0; i < n; i) {if (i < arrivalLocation) {arrivalLocation Math.max(arrivalLocation,…

matplotlib 笔记 注释annotate

在图中的特定位置添加文本注释、箭头和连接线&#xff0c;以便更清晰地解释图形中的数据或信息 主要参数 text文本内容xy箭头指向的目标点的坐标xytext注释文本的坐标arrowprops 一个字典&#xff0c;指定注释箭头的属性&#xff0c;如颜色、箭头样式等 没有arrowprops的时候…

CentOS7安装MySQL8(RPM方式)

第一步&#xff1a;解压 tar -xvf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar -C /usr/local/java/mysql 第二步&#xff1a;按顺序安装rpm包 # rpm -ivh mysql-community-common-8.0.34-1.el7.x86_64.rpm# rpm -ivh mysql-community-client-plugins-8.0.34-1.el7.x86_64.rpm…