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

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

7.8.3. SLD Service

SLD Service将值移入SLD节点的指令和数据寄存器,并捕获先前的值。与SLD节点交互时,首先获取对已打开服务上节点的独占访问权限。

SLD Service

set timeout_in_ms 1000
set lock_failed [sld_lock $sld_service_path $timeout_in_ms]

此代码尝试锁定选定的SLD节点。如果它已被锁定,那么sld_lock等待指定的超时时间。在继续之前请确认程序返回非零值。设置指令寄存器并捕获前一个:

if {$lock_failed} {
    return
}
set instr 7
set delay_us 1000
set capture [sld_access_ir $sld_service_path $instr $delay_us]

1000微秒的延迟可确保以下SLD命令在至少1000微秒后执行。数据寄存器访问的工作方式相同。

set data_bit_length 32
set delay_us 1000
set data_bytes [list 0xEF 0xBE 0xAD 0xDE]
set capture [sld_access_dr $sld_service_path $data_bit_length $delay_us \
$data_bytes]

移位计数以比特指定,但数据内容指定为字节列表。捕获返回值也是字节列表。一旦完成SLD服务后就要解锁SLD节点。

sld_unlock $sld_service_path