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

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

7.8.5.1. Monitor命令

您可以使用Monitor命令以固定间隔读取 Avalon® -MM slave存储器位置。

在正常负载下,监控服务在每个间隔后读取数据,然后调用回调。如果您读取的值时序敏感的,那么可以使用monitor_get_read_interval命令读取数据被读取的时间间隔之间的确切时间。

在大量负载下,或者需要使用很长时间执行回调时,监控服务会跳过一些回调。如果您读取的寄存器没有副作用(例如,它们读取复位后的事件总数),那么跳过回调对您的代码没有影响。monitor_read_data命令和monitor_get_read_interval命令都适用于此情况。

如果您读取的寄存器具有副作用(例如,它们返回最后读取之后的事件数),那么您必须能够访问已读取的数据,但对于这些数据,回调被跳过。 monitor_read_all_datamonitor_get_all_read_intervals命令提供对此数据的访问。

表 26.  监控命令
命令 参数 功能
monitor_add_range

<service-path>

<target-path>

<address>

<size>

将一个连续的存储器地址添加到受监控的存储器列表中。

<service path>是服务打开时返回的值。

<target-path>参数是要读取的master服务的名称。地址在此服务的地址空间内。<target-path>[lindex [get_service_paths master] n]返回,其中n是服务的编号。

<address><size>相对于master服务。

monitor_get_all_read_intervals

<service-path>

<target-path>

<address>

<size>
返回monitor_read_all_data返回的数据中两次读取之间的间隔列表(以毫秒为单位)。
monitor_get_interval <service-path> 返回当前间隔集(interval set),此间隔集指定轮询操作的频率。
monitor_get_missing_event_count <service-path> 返回在评估最后一个Tcl回调表达式时错过的回调事件数。
monitor_get_read_interval

<service-path>

<target-path>

<address>

<size>
返回monitor_read_data返回的最后两次数据读取之间经过的毫秒数。
monitor_read_all_data

<service-path>

<target-path>

<address>

<size>
返回从上次Tcl回调以来从器件读取的所有最新值中读取的8-bit值列表。您指定的存储器范围必须在monitor_add_range中中的范围内。
monitor_read_data

<service-path>

<target-path>

<address>

<size>
返回从器件读取的最新值中读取的8-bit值列表。您指定的存储器范围必须在monitor_add_range中中的范围内。
monitor_set_callback

<service-path>

<Tcl-expression>

指定System Console在读取此服务监控的所有存储器后必须评估的Tcl表达式。通常情况下,使用传入的必要参数将此表达式指定为单个字符串Tcl程序调用。
monitor_set_enabled <service-path>

<enable(1)/disable(0)>

使能和禁用监控。在此命令之后开始存储器读取,并在读取数据后评估Tcl回调。
monitor_set_interval

<service-path>

<interval>

通过指定两次存储器读取之间的间隔来定义轮询操作的目标频率。实际轮询频率取决于系统活动。