首页 > 编程知识 正文

逻辑分析仪型号,逻辑分析仪破解串口协议

时间:2023-05-04 15:24:38 阅读:161835 作者:2801

本文内容来自正点原子ZYNQ导航器FPGA视频-P7

1.ILA介绍了http://www.Sina.com/(integratedlogicanalyzer )集成逻辑分析仪:或Vivado的在线逻辑分析仪,传统逻辑分析仪的理念和大部分功能ILA是以IP核的形式实现的。

联机逻辑分析器用一个或多个探测器收集要观察的信号,通过片内的JTAG硬核组件将捕获的数据发送到下载器,然后上载到Vivado IDE供用户查看。 根据上述数据路径,Vivado IDE还可以反向地向FPGA的在线逻辑分析器发送若干控制信号。

Vivado提供了三种具有不同集成级别的ILA插入方法。

ILA

ILA IP核位于IP目录(IP目录)中,配置为满足所需的调试要求。 这是最直接的方法,但灵活性也很低。 调试工作完成后,必须从HDL源代码中删除ILA IP核,然后重新集成并实现以生成最终的比特流。

1.1HDL 实例化调试探针流程

在统一的网络列表中,标记要进行调试和观察的每个信号,并通过简单的“设置调试”向导设置每个探测器和ILA IP核的操作参数。 该工具根据用户设置的参数自动生成每个ILA IP核。 此过程提供了很大的灵活性,因为用户不需要更改HDL源代码,就可以分别控制每个ILA IP核和每个探测器。 用户设置的调试信息作为TclXDC调试命令保存在XDC约束文件中。 在实现阶段,Vivado将读取这些XDC调试命令,并在布局路由时添加这些ILA IP核。 调试工作完成后,用户可以从统一的网表中删除ILA IP核,并实现设计以生成最终的比特流。

1.2网表插入调试探针流程中,工具在实现阶段自动读取这些命令,并在路由时添加这些ILA IP核。 调试工作完成后,用户需要从XDC约束文件中删除这些命令以实现最终设计。

1.3集成层次最低的方法,是手动地在XDC 约束文件中书写对应的Tcl XDC 调试命令“HDL实例化调试探测进程”必须在HDL源代码中实例化ILA IP核。 单击" Flow Navigator "窗口中的" IP Catalog "按钮,如下图所示。

在Search栏中搜索ILA,然后双击将其打开。

将显示Customize IP窗口,配置IP核心。

顶部的" Component Name "栏用于设置ILA IP核心的名称。

2.ILA使用方法(1)HDL 实例化调试探针流程页用于ILA IP核心的整体设置。

监视器类型监视类型—这意味着选择接口类型,在此选择Native

Number of probes探测器数:请注意,这与信号位宽无关。 一个信号是Probes。

Sample Data Depth:用于设置采样深度或采样点数,ILA将每个采样时钟捕获的探测信号值发送到FPGA的RAM中。

剩下的是一些高级设置,暂时不能使用。 等待补充。

General Options页用于设置每个探测器的参数

由于要观测的信号为rst_n、[1:0] led、[25:0] cnt,因此3个探针分别为1、2、26比特。 完成创建后,单击“确定”

接下来将出现" Generate Output Products "对话框。 接受默认值,直接单击" Generate "。 此时,Vivado将开始对该ILA IP核心进行OOC集成。 如下图所示。

Probe_Ports(0..0)目前在全局综合工作中,直接将该IP核心模块合并一次,生成包含合并后的网表等各种文件的输出产品(GenerateOutput Products )。 然后固定下来,以后修改总体设计综合的时候,把这个模块当成黑匣子,不综合,节约时间。 如果是Global方式的话,每次综合都是综合那个。 另外,OOC模块也可以是来自IP目录的IP、来自viva do IP集成电路的块设计、或顶级模块被手动设定为OOC方式的任意子模块。

OOC集成后,可以在Sources栏中找到添加到项目中的ip核,然后在IP Sources栏中单击该文件以找到实例化的模板文件

然后,这里请注意clk是用于采样的时钟。 在此请务必使用与要观测的信号同步的时钟。

p>

例化完成之后,生成bit流即可。这时下载bit流的时候会多一个.itx文件 这就是ILA的文件。

程序下载成功后,会多出观测窗口。

(1)自动触发开关,它和“开始触发”按钮联合在一起使用。若打开了此选项,则在ILA 开始运行触发(即点击了“开始触发”按钮)后,会不断地对触发条件进行检测,每次触发条件被满足时(即cnt 计数到了25_000_000),都会将RAM 中存储的所有的探针值数据上载到Vivado,Vivado 上显示的波形也会随之不断更新,直到用户点击了“停止触发”按钮。若没有点击此选项,则在ILA 开始运行触发(即点击了“开始触发”按钮)后,在检测到触发条件得到满足并完成了上载数据之后,就会停止触发,等待用户下一步的指令。
(2)开始触发,它和“自动触发开关”按钮联合在一起使用。点击之后ILA 就会开始进行触发操作。
(3)立即触发,立即将当前ILA RAM 中的数据上载到Vivado,而不管触发条件是否得到满足。
(4)停止触发,停止当前正在进行的触发活动。

 这个窗口的右下角,Trigger Setup 就可以设置触发条件

 3.ILA使用方法(2)网表插入调试探针流程

可以在综合之后的网表中手动选择网络并点击“Mark_Debug”按钮;

也可以在综合之前在HDL 代码中为想要观察的reg 或wire 信号添加“Mark Debug”综合属性

3.1综合之后的网表中手动选择网络并点击“Mark_Debug”按钮

首先综合之后,打开综合设计文件

右上角将窗口选择为Debug

右键想要观测的信号,选择Mark Debug

3.2综合之前在HDL 代码中为想要观察的reg 或wire 信号添加“Mark Debug”综合属性

其中“(* mark_debug = “true” *)”必须紧挨在变量声明的前面。这样,在综合完成之后并打开综合后的设计时,cnt 信号就自动被标记了“Mark Debug”属性。此外,被添加了(* mark_debug = “true” *)属性的reg或wire 信号不会被工具优化掉。

添加完成之后重新综合。这时候下方Debug一栏就有了reg信号。现在进行Set Debug点击这个jddqyg。

在“Debug”子窗口中,又包含两个选项卡“Debug Cores”和“Debug Nets”。这两个选项卡都用于示所有的已标记为“Mark_Debug”的信号。不同之处在于,“Debug Cores”选项卡是一个更加以ILA IP核为中心的视图,所有已标记为“Mark_Debug”的信号并且已经被分配到ILA 探针的信号都会被显示在各个ILA IP 核的视图树下,已标记为“Mark_Debug”的信号但是还没有被分配到ILA 探针的信号被显示在“Unassigned Debug Nets”下,当然也可以在其中查看和设置ILA IP 核的各种属性和参数。“Debug Nets”选项卡仅显示已标记为“Mark_Debug”的信号,但不显示ILA IP 核,所有已标记为“Mark_Debug”的信号并且已经被分配到ILA 探针的信号都会被显示在“Assigned Debug Nets”下,已标记为“Mark_Debug”的信号但是还没有被分配到ILA 探针的信号被显示在“Unassigned Debug Nets”下。

点Next

这里可以选择时钟,软件已经自动添加了。点击Next

这里选择采样深度,其它高级选项先不管它。

“Input pipe stages”用于设置待测信号和其采样时钟之间的同步级数。如果在上一个设置时钟域页面中,存在与其采样时钟之间是异步的待测信号,则为了避免亚稳态,此数值最好不要低于2。由于本例中的两个待测信号的其采样时钟是同步的,所以可以设置为0。

点击Finish

然后点击Ctrl+S保存,然后点击ok

在“Debug”子窗口中的“Debug Cores”选项卡中,可以看到Vivado 已经添加了ILA IP 核,并且“Unassigned Debug Nets”目录下已经没有未被分配的信号了,如下图所示 

之后再进行下载bit流,剩下的观测操作和HDL方式都是一样的。 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。