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

fpga内嵌逻辑分析仪使用方法

文章目录

  • 前言
  • 一、方法1 — 使用 IP 核创建 ILA 调试环境
    • 1、创建 ILA ip 核
    • 2、进行例化
    • 3、生成比特流文件
    • 4、下载程序
    • 5、进行在线调试
  • 二、方法2 — 使用 Debug 标记创建 ILA
    • 1、Debug 标记相关信号
    • 2、综合操作
    • 3、设置 Set Up Debug
    • 4、生成比特文件
    • 5、下载程序
    • 6、进行在线调试


前言

本文基于上文的工程文件,讲述了 fpga 内嵌逻辑分析仪的使用方法,内嵌逻辑分析仪是在 fpga 开发调试过程中一个很重要的一个工具,这个工具可以帮助我们去观察内部的一些信号它的一些变化,然后帮助我们去调试从而找到问题。


一、方法1 — 使用 IP 核创建 ILA 调试环境

1、创建 ILA ip 核

①、点击左侧 PROJECT MANAGER 栏 –> IP Catalog 或者菜单栏下 Window –> IP Catalog 然后在右侧出现的 IP Catalog 窗口下搜索 ILA,双击选择 Debug 下的 ILA 进行 IP 配置操作步骤如下图所示
在这里插入图片描述
②、General Options 参数设置

  • Component Name:设置生成 IP Core 的名称,这里设置成 ila
  • Number of Probes:探针数量设置,要观察 2 个信号(一个是计数器,一个是 led 灯),所以这里设置探针数量为 2
  • Sample Data Depth:采样数据深度,设置的数值越大采样的数据越多看到的波形数据越多但是最终占用的资源也会越多并不是设置的越大越好。这个根据实际需求进行合适的设置即可我们这里选择设置 1024。
    在这里插入图片描述

③、Probe_Ports(0…7) 参数设置
Probe Width:探针数据信号的位宽设置,我们需要对一个 32 位的计数器和一个 1 位的 led 灯信号进行在线观察,因此这里将 PROBE0 位宽设置为 32,PROBE1 位宽设置为 1,并且可以看到左侧的图形器件引脚也跟着进行变化。点击 OK。
在这里插入图片描述
④、会弹出一个是否在我们的一个路径去创建 ip
在这里插入图片描述
⑤、点击 Generate,生成 IP 核
在这里插入图片描述

⑥、点击 OK
在这里插入图片描述
⑦、此时在 Design Sources 里面可以看到新增的一个 ila.xci 文件,点击左侧的 “>” 展开它的层级关系。
在这里插入图片描述
⑧、展开之后我们就可以看到顶层 .v 文件,打开 ila.v 这个文件我们可以看到 ila 模块名字
在这里插入图片描述

2、进行例化

①、下一步我们要做的就是例化,在 led.v 文件里面 endmodule 前添加下面的代码,点击保存后可以看到新的层级关系,led 把 ila 包含进来了,如下图所示

ila ila_inst
(.clk     (sys_clk),.probe0  (timer_cnt),.probe1  (led)
);

在这里插入图片描述

3、生成比特流文件

①、点击 Generate Bitstream
在这里插入图片描述
②、在弹出的对话框中可以选择任务数量,这里和 CPU 核心数有关,一般数字越大,编译越快,点击 “OK”
在这里插入图片描述

4、下载程序

①、点击 Open Hardware Manager
在这里插入图片描述
②、点击 Auto Connect
在这里插入图片描述
③、右键 xc7z020_1 -> Program Device
在这里插入图片描述
④、可以发现这里多了一个 led.ltx 文件,这是一个描述文件,描述的内容就是我们的逻辑分析仪与哪些信号进行连接,然后点击 Program
在这里插入图片描述
⑤、点击 Program 后可以看到这样的一个界面
在这里插入图片描述

5、进行在线调试

①、点击 Run trigger for this ILA core,并将计数器以 10 进制方式显示,c+rl + 鼠标滚轮调整界面,可以看到如下图所示:
在这里插入图片描述
这些数据都是真实的数据,不同于仿真,我们目前是在板子上进行运行,可以看到实际的运行的情况
②、做一个触发
在这里插入图片描述
以计数器做一个触发
在这里插入图片描述

根据计数器的最大值做一个触发
在这里插入图片描述
③、再点击 Run trigger for this ILA core,可以看到触发到的情况,以及 led 从 0 变为 1
在这里插入图片描述
此外为了方便我们观察波形情况,当我们想看后面的数据多一些可以把 Trigger poisition in window 的值调小一点,如果向看前面的数据可以把 Trigger poisition in window 的值调大一些
在这里插入图片描述
④、也可以尝试一下循环触发的模式,先点击 Toggle auto re-trigger mode for this ILA core 后再点击 Run trigger for this ILA core
在这里插入图片描述
可以看到进行循环触发,且左侧 hw_ila_1 显示了逻辑分析仪的状态,有空闲状态、等待触发状态、触发成功状态
请添加图片描述

二、方法2 — 使用 Debug 标记创建 ILA

1、Debug 标记相关信号

①、先将上述 led.v 中新增的 ila 例化代码屏蔽
在这里插入图片描述
②、点击 Language Templates,弹出的窗口点击搜索,输入 mark 会出现 Mark Signal for Debug(MARK_DEBUG),点击 Mark Signal for Debug(MARK_DEBUG),复制 Preview 中所显示的 (* MARK_DEBUG=“true” *)
在这里插入图片描述
③、粘贴到 led.v 中,按照下图方式粘贴,并进行保存
在这里插入图片描述

2、综合操作

①、点击 Run Synthesis,弹出的窗口点击 OK
在这里插入图片描述
②、点击 “OK”
在这里插入图片描述
③、综合完成,点击 Cancel
在这里插入图片描述

3、设置 Set Up Debug

①、点击 Set Up Debug,弹出的窗口选择 Next
在这里插入图片描述
②、这里我们就可以看到我们源文件里面添加的调试的信息,然后点击 Next
在这里插入图片描述
③、下面也是设置采样的数据深度,我们保持默认,点击 Next
在这里插入图片描述
④、点击 Finish
在这里插入图片描述
⑤、保存一下设置,弹出的窗口点击 OK
在这里插入图片描述
⑥、我们再看一下 led.xdc 约束文件,并 Reload 以下,可以看到新增了如下信息
在这里插入图片描述
这些信息代表我们创建一个一个 debug_core ila,就是把里面的一些信号连接在一起了

4、生成比特文件

①、点击 Generate Bitstream,弹出的窗口点击 Yes
在这里插入图片描述
②、选择 Open Hardware Manager 并点击 OK
在这里插入图片描述

5、下载程序

同第一种方法

6、进行在线调试

同第一种方法,操作及界面也完全相同
在这里插入图片描述


我的qq:2442391036,欢迎交流!


相关文章:

fpga内嵌逻辑分析仪使用方法

文章目录 前言一、方法1 — 使用 IP 核创建 ILA 调试环境1、创建 ILA ip 核2、进行例化3、生成比特流文件4、下载程序5、进行在线调试 二、方法2 — 使用 Debug 标记创建 ILA1、Debug 标记相关信号2、综合操作3、设置 Set Up Debug4、生成比特文件5、下载程序6、进行在线调试 前…...

第14章 结构和其他数据形式

本章介绍以下内容: 关键字:struct、union、typedef 运算符:.、-> 什么是C结构,如何创建结构模板和结构变量 如何访问结构的成员,如何编写处理结构的函数 联合和指向函数的指针 设计程序时,最重要的步骤之…...

vue 把echarts封装成一个方法 并且从后端读取数据 +转换数据格式 =动态echarts 联动echarts表

1.把echarts 在 methods 封装成一个方法mounted 在中调用 折线图 和柱状图 mounted调用下边两个方法 mounted(){//最早获取DOM元素的生命周期函数 挂载完毕console.log(mounted-id , document.getElementById(charts))this.line()this.pie()},methods里边的方法 line() {// …...

Python基础08 面向对象的基本概念

Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程。 面向对象的最主要目的是提高程序的重复使用性。我们这么早切入面向对象编程的原因是,Python的整个概念是基于对象的。…...

APP自动化之Poco框架

今天给大家介绍一款自动化测试框架Poco,其脚本写法非常简洁、高效,其元素定位器效率更快,其本质基于python的第三方库,调试起来也会非常方便,能够很好的提升自动化测试效率,节省时间。 (一)背景…...

c++拷贝构造【显式调用】和运算符=重载构造【隐式调用】解析

深拷贝 vs. 浅拷贝 深拷贝:开辟新内存,独立对象,堆区浅拷贝:共享内存,引用对象,栈区 深拷贝:深拷贝是一种拷贝方式,它会在堆区重新分配内存并复制对象的内容。 这意味着原对象和新…...

无涯教程-JavaScript - LCM函数

描述 LCM函数返回整数的最小公倍数。最小公倍数是最小的正整数,它是所有整数参数number1,number2等的倍数。使用LCM添加具有不同分母的分数。 语法 LCM (number1, [number2] ...)争论 Argument描述Required/OptionalNumber1, number2... 您想要最小公倍数的1到255个值。 如…...

Java多线程篇(3)——线程池

文章目录 线程池ThreadPoolExecutor源码分析1、如何提交任务2、如何执行任务3、如何停止过期的非核心线程4、如何使用拒绝策略 ScheduledThreadPoolExecutor源码分析 线程池 快速过一遍基础知识 7大参数 corePoolSize : 核心线程数 maximumPoolSize: 最…...

那些年我们遇到过的关于excel的操作

本文为直接从百度上搜索的关于excel的函数使用,方便以后用,希望会持续补充 excel中筛选出两列重复的数据【场景:A、B两列数据个数不同且无序,想找出A列中的数据在B列中不存在的,通过比较后单元格为空的代表该行不存在的…...

Angular变更检测机制

前段时间遇到这样一个 bug,通过一个 click 事件跳转到一个新页面,新页面迟迟不加载; 经过多次测试发现,将鼠标移入某个 tab ,页面就加载出来了。 举个例子,页面内容无法加载,但是将鼠标移入下图…...

Redis之String类型

文章目录 Redis之String类型1. 赋值/获取值2. 同时设置/获取多个键值3. 数值增减4. 获取字符串长度5. 向尾部追加值6. 分布式锁7.应用场景 Redis之String类型 Redis命令不区分大小写 1. 赋值/获取值 赋值:set key value 取值:get key (当键不存在时候&…...

使用redis中的zset实现滑动窗口限流

使用redis和zset实现滑动窗口限流 文章目录 使用redis和zset实现滑动窗口限流Zset**初始化一个ZSet**:其中包含所有用户的ID和时间戳。**添加元素到ZSet**:当用户发起请求时,将当前时间戳和用户ID作为元素添加到ZSet中。**删除过期的元素**&a…...

Linux下C语言使用 netlink sockets与内核模块通信

netlink简介 Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。在Linux标准内核中,系统默认集成了很多netlink实例,比如日志上报、路由系统等,netlink消息是双向的&a…...

excel中的引用与查找函数篇3

1、INDEX(array,row_num,[col_num]):获取指定范围中指定行号和列号对应的数据 index(查询范围,行号,列号) 行号和列号是相对选中查询范围来写的:分别把第二行第三列的数据和第四行第二列的数据查找出来。 数据是单行或单列,后面只需要给一个参…...

【Linux学习笔记】 - 常用指令学习及其验证(下)

前言:本文延续上一篇文章【Linux学习笔记】 - 常用指令学习及其验证(上)对常用的指令进行介绍和验证。 一、mv指令 (1)功能:用来移动文件或者将文件改名 (2)语法及验证&#xff1a…...

面试官:请说说flex布局_番茄出品.md

面试官:请说说flex布局_番茄出品.md start 依然记得当初学习 flex 布局时,用 flex 布局:画麻将。一筒到九筒,应有尽有。但是光和面试官说,我用 flex 布局画过麻将,并没有什么用。面试官问你一个语法&…...

ChatGLM DeepSpeed/P-Tuning v2 调参

之前尝试了基于ChatGLM-6B使用LoRA进行参数高效微调,本文给大家分享使用DeepSpeed和P-Tuning v2对ChatGLM-6B进行微调,相关代码放置在GitHub上面:llm-action。 ChatGLM-6B简介 ChatGLM-6B相关的简介请查看之前的文章,这里不再赘述。 P-Tuning v2简介 P-Tuning是一种较新…...

Leetcode每日一题:打家劫舍系列Ⅰ、Ⅱ、Ⅲ、Ⅳ(2023.9.16~2023.9.19 C++)

由于之前写过打家劫舍系列,这里直接弄个合集,后面应该还有个iv。 目录 198. 打家劫舍 213. 打家劫舍 II 337. 打家劫舍 III 2560. 打家劫舍 IV 198. 打家劫舍 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都…...

容易对一个异性产生依赖感怎么办?

歌词:爱总让人伤心,但你要学会去明白~ 👂 Photograph - Ed Sheeran - 单曲 - 网易云音乐 目录 🌼前言 😟一、对另一个人的依赖感,本质是什么? 😊二、如何减少对伴侣的依赖感&am…...

Windows10/11无线网卡WIFI驱动详细下载安装教程

官网下载WIFI驱动 《intel官网》 找到下载Windows 10 and Windows 11* WiFi package drivers 查看详细信息 下载对应操作系统的WIFI驱动 安装驱动,然后重启电脑即可。...

面向面试知识--Lottery项目

面向面试知识–Lottery项目 1.设计模式 为什么需要设计模式? (设计模式是什么?优点有哪些?) 设计模式是一套经过验证的有效的软件开发指导思想/解决方案;提高代码的可重用性和可维护性;提高团…...

SpringBoot接口中如何直接返回图片数据

SpringBoot接口中如何直接返回图片数据 目录 接口直接返回图片数据 起因 类似这种 根据个人经验 优雅的实现图片返回 接口直接返回图片数据 起因 最近在做涉及到分享推广的业务,需要由业务员分享二维码进入推广页面,由于是新项目,前期…...

c语言进阶部分详解(指针进阶1)

大家好!指针的初阶内容我已经写好,可移步至我的文章:c语言进阶部分详解(指针初阶)_总之就是非常唔姆的博客-CSDN博客 基本内容我便不再赘述,直接带大家进入进阶内容: 目录 一.字符指针 1.讲解…...

计算机竞赛 大数据商城人流数据分析与可视化 - python 大数据分析

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据的基站数据分析与可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度…...

各种电机驱动原理

步进电机 步进电机参考资料 野火官方文档 步进电机驱动原理 上面参考文档中有的内容就不写了,写一下我自己的总结吧。 说明: 电机驱动器输入信号有电机转动方向信号DIR,电机转速信号PWM,电机使能信号EN;电机驱动器…...

人脸图像数据增强

为什么要做数据增强 在计算机视觉相关任务中,数据增强(Data Augmentation)是一种常用的技术,用于扩展训练数据集的多样性。它包括对原始图像进行一系列随机或有规律的变换,以生成新的训练样本。数据增强的主要目的是增…...

Android 查看按键信息的常用命令详解

Android 查看按键信息的常用命令详解 文章目录 Android 查看按键信息的常用命令详解一、主要命令:二、命令详解1、getevent2、getevent -l3、dumsys input4、cat XXX.kl4、cat /dev/input/eventX5、getevent 其他命令6、input keyevent XX 三、简单示例修改四、总结…...

【Java 基础篇】Properties 结合集合类的使用详解

Java 中的 Properties 类是一个常见的用于管理配置信息的工具,它可以被看作是一种键值对的集合。虽然 Properties 通常用于处理配置文件,但它实际上也可以作为通用的 Map 集合来使用。在本文中,我们将详细探讨如何使用 Properties 作为 Map 集…...

数字孪生体标准编程

数字孪生体标准 括ISO TC184/SC4正在制定数字孪生制造标准ISO 23247、ISO/IEC JTC1/AG11正在推动数字孪生体标准、IEEE P2806正在做有关“数字表达”的标准。赢家通吃的标准战 卡尔夏皮罗和哈尔范里安撰写了《信息规则:网络经济战略指南》(Information R…...

力扣 -- 394. 字符串解码

解题方法&#xff1a; 参考代码&#xff1a; class Solution{ public:string decodeString(string s){stack<string> sst;stack<int> dst;//防止字符串栈为空的时候再追加字符串到栈顶元素sst.push("");int n s.size();int i 0;while(i<n)//最好不…...

西安做网站排名/做网页

创建表的两种办法&#xff1a; 使用DBMS 提供的交互式创建和管理数据库表的工具&#xff1b;直接用SQL 语句创建。表创建基础 创建表示例&#xff1a; 1 CREATE TABLE Products 2 ( 3 prod_id CHAR(10) NOT NULL,--是否可以为null 4 vend_id CHAR(10) NOT NULL, 5 …...

做推广自己找网站/最近三天的新闻大事

速度映射图主要是为了得到每个像素相对于前一帧的运动矢量&#xff0c;其中一种方法是使用摄像机的深度纹理来推导。 推导过程如下&#xff1a; 先由深度纹理逆推出NDC&#xff08;归一化的设备坐标&#xff09;下的顶点坐标&#xff0c;利用VP矩阵&#xff08;视角*投影矩阵&a…...

网络销售应该注册什么公司/电商seo是指

// func3-2.cpp algo3-6.cpp和algo3-7.cpp要调用的函数 char Precede(SElemType t1,SElemType t2) { // 根据教科书表3.1&#xff0c;判断t1&#xff0c;t2两符号的优先关系(#用\n代替)char f;switch(t2){case :case -:if(t1(||t1\n)f<; // t1<t2elsef>; // t1>t2b…...

张家口建设委员会网站/舆情报告

1.打开网站http://125.74.125.69:8091/&#xff0c; 2.输入用户名&#xff0c;密码 3.选择页面上右上角的菜单 4.点击人口库 5.选择人口信息&#xff0c; 6.根据图中提示 7.跟据图中提示完成下表 转载于:https://www.cnblogs.com/Happy-Eric-1/p/10396847.html...

用dw制作个人简介网页步骤/谷歌排名网站优化

Object value java要想将Object转换为int类型&#xff0c;就必须先将Object转换为String&#xff0c;然后String再转换为int&#xff0c;如下&#xff1a; Integer.parseInt(String.valueOf(value)); 这就是将Object类型转化为int类型&#xff0c;而String.valueOf(value)是将v…...

域名 删除 wordpress/店铺100个关键词

实战项目是全栈开发的项目 年底比较忙&#xff0c;2020见 年底比较忙&#xff0c;2021见...