在MATLAB中调用Quartus SignalTap逻辑分析仪采集数据的方法

描述

本文为大家介绍在 MATLAB 中调用 Signal Tap Logic Analyzer 采集数据的方法。列出计算机的环境配置和工程 stp 文件的配置,分析 MATLAB 中使用的脚本语句,以及讲解在实操中可能遇到的问题。

计算机的环境配置

在 Quartus 的安装路径下找到 alt_signaltap_run 文件,我们需要有这个文件才能在 MATLAB 中调用 Signal Tap Logic Analyzer。如下图 (图1) 所示:

计算机

图1 Quartus 安装路径

将 alt_signaltap_run 文件的路径添加到环境变量 “Path” 中。编辑环境变量,如下图 (图2) 所示:

计算机

图2 编辑环境变量

添加路径到环境变量中,如下图 (图3) 所示: 

计算机

图3 添加路径到环境变量中

完成以上步骤,MATLAB 才能成功运行 alt_signaltap_run 函数。这里 alt_signaltap_run 文件的路径是 'D:ProgramFileintelFPGA_pro20.2quartusin64',在 MATLAB 中输入命令:

>> addpath 'D:ProgramFileintelFPGA_pro20.2quartusin64'
>> alt_signaltap_run

若出现 alt_signaltap_run 函数的使用说明,如下图 (图4) 所示,则环境配置成功。

计算机

图4 MATLAB 命令行窗口

建议使用前输入“alt_signaltap_run ( 'VERBOSE_ON' )” 命令启用提示信息,方便排查问题。数据采集结束后必须使用 “alt_signaltap_run ( 'END_CONNECTION' )” 命令结束本次 JTAG 通信,否则会一直占用 JTAG 端口。

工程 stp 文件配置

在工程中添加 stp 文件,设置好要采样的信号。一般在使用时,输入目标 instance 的名字作为参数,在 MATLAB 中会返回指定 instance 的所有信号单次采样得到的数据。这些数据已经根据 int32 或者 uint32 转换成了十进制,单个信号的位宽如果超过了 32 比特就会返回 0。因此对于要采样的信号,如果超过 32 比特,需要分开组合成若干信号。

计算机

图5 Signal Tap Logic Analyzer 界面

在 MATLAB 中调用函数前,需要在 Signal Tap Logic Analyzer 中设置好 JTAG 配置并保存,让 MATLAB 能通过 stp 文件找到器件进行采样。

MATLAB 脚本

调用 Signal Tap 采集数据的 MATLAB 脚本包含 3 个关键命令:

将 alt_signaltap_run 的路径添加到搜索路径

调用 alt_signaltap_run 函数得到数据矩阵

断开 JTAG 链接 

一个简单的采集脚本,如下图 (图6) 所示:

计算机

图6 MATLAB 调用脚本

其中 'D:ProgramFileintelFPGA_pro20.2quartusin64' 是 alt_signaltap_run 文件的路径,而 stp 文件的完整路径和文件名为'D:Project_Examples10_jesd204b_directoutput_filesstp1.stp'。运行后会得到矩阵 data,每一列对应指定 instance 中的每个信号,顺序为 stp 文件信号的排列次序,每一行对应一个样点,可以提取需要的数据进行运算。采集的数据,如下图 (图7) 所示: 

计算机

图7 采集的数据

常见问题

对实际操作中可能出现的常见问题进行小结。比如在 MATLAB 中输入 alt_signaltap_run 命令导致 MATLAB 未知错误闪退,这应该是环境变量没有设置好;在 MATLAB 提示无法建立 JTAG 链路,可能是 stp 文件的 JTAG 配置有更改,需要再次保存,才能通过 stp 文件采集数据。

总结

本文通过讲解实际操作步骤,介绍了在 MATLAB 中调用 Signal Tap Logic Analyzer 采集数据的方法,并总结了在使用过程中可能出现的问题。

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分