Intel® Quartus® Prime Pro Edition用户指南: 调试工具

ID 683819
日期 9/30/2019
Public
文档目录

2.11.2. 使用Signal Tap MATLAB* MEX函数采集数据

当MATLAB*用于DSP设计时,可以从Signal Tap logic analyzer获取数据并通过调用内置在 Intel® Quartus® Prime软件中的MATLAB* MEX函数alt_signaltap_run直接转换为MATLAB*环境中的一个矩阵。 如果在循环中使用MATLAB* MEX函数,那么当在 Intel® Quartus® Prime软件环境中使用Signal Tap时,您可以在相同的时间内执行尽可能多的采集。
注: Windows*版本和Linux版本的 Intel® Quartus® Prime软件中均提供Signal Tap MATLAB* MEX函数。此函数兼容于MATLAB* Release 14 Original Release Version 7及后续版本。

设置 Intel® Quartus® Prime软件和MATLAB*环境来执行Signal Tap采集:

  1. Intel® Quartus® Prime软件中,创建一个.stp文件。
  2. Signal Tap Logic Analyzer Editor的Data选项卡中的节点列表中,将信号和信号组组织成要在MATLAB*矩阵中出现的顺序。

    导入矩阵的每一列代表一个Signal Tap采集样本,而每一行代表一个信号或一组信号,这些信号按照您在Data标签中定义的顺序排列。

    注: Signal Tap logic analyzer采集并传输到MATLAB* MEX函数的信号组的宽度限制为32个信号。要使用包含32以上信号的总线或信号组的MATLAB* MEX函数,请将该组分成不超过限制的较小组。
  3. 保存.stp文件并编译您的设计。对器件进行编程并运行Signal Tap logic analyzer以确保触发条件和信号采集正常工作。
  4. 在MATLAB*环境中,使用以下命令将 Intel® Quartus® Prime二进制目录添加到路径中:
    addpath <Quartus install directory>\win

    通过在MATLAB*中输入以下命令(无需任何操作符)来查看MEX函数的帮助文件:

    alt_signaltap_run

  5. 使用MATLAB* MEX函数打开与器件的JTAG连接,运行Signal Tap logic analyzer获取数据。数据获取完成后,关闭JTAG连接。

    使用以下命令打开JTAG连接,开始获取采集的数据,直接将这些数据转入到一个称为stp的MATLAB*矩阵:

    stp = alt_signaltap_run \
    ('<stp filename>'[,('signed'|'unsigned')[,'<instance names>'[, \
    '<signalset name>'[,'<trigger name>']]]]);

    采集数据时,作为MATLAB* MEX函数的一个要求,您必须分配一个文件名,如<stp filename>。下表描述了其他MATLAB* MEX功能选项:

    表 15.   Signal Tap MATLAB* MEX函数选项
    选项 使用 说明
    signed

    unsigned

    'signed'

    'unsigned'

    signed选项将信号组转换为32位二进制补码有符号整数。在Signal Tap Data选项卡中定义的信号组的MSB是符号位。unsigned选项将数据保持为无符号整数。默认值为signed
    <instance name> 'auto_signaltap_0' 如果定义了多个实例,那么指定一个Signal Tap实例。默认值为.stp中的第一个实例auto_signaltap_0
    <signal set name>

    <trigger name>

    'my_signalset'

    'my_trigger'

    如果多个配置出现在.stp中,那么从Signal Tap数据日志指定信号集和触发器。默认值是文件中的活动信号集和触发器。

    在数据获取期间,您可以使能或禁用详细模式(verbose mode)以查看逻辑分析仪的状态。请使用以下命令使能或者禁用详细模式(verbose mode):

    alt_signaltap_run('VERBOSE_ON');-alt_signaltap_run('VERBOSE_OFF');

    获取数据完成后,使用以下命令关闭JTAG连接:

    alt_signaltap_run('END_CONNECTION');

    关于MATLAB*中MATLAB* MEX函数的使用的详细信息,请参考MATLAB* Help。