设置  VIO  核以执行测量  
 
 您添加到自己的设计中的  VIO  核会显示在“硬件  (Hardware) ”窗口中的目标器件下。如果未显示这些  VIO  核 , 请右键  
 
 单击器件并选择“ Refresh Hardware ”。这样将重新扫描  FPGA  或  ACAP  并刷新“ Hardware ”窗口。  
 
 注释 : 如果编程和 / 或刷新  FPGA  或  ACAP  后仍未显示  VIO  核 , 请检查并确保已使用正确的  .pdi  文件完成器件编程 ,  
 
 并确认已实现的设计包含  VIO  核。此外 , 还请检查并确认有相应的  .ltx  探针文件 ( 与  .bit  文件相匹配 ) 与该器件  
 
 关联。  
 
 单击  VIO  核 ( 下图中名为  hw_vio_1  的核 ), 以在“ VIO  核属性  (VIO Core Properties) ”窗口中查看其属性。选中  VIO  
 
 核后 , 还应在“调试探针  (Debug Probes) ”窗口以及  Vivado IDE  工作空间中对应的“ VIO  仪表板  (VIO Dashboard) ”中  
 
 看到对应于此  VIO  核的探针。 
 
 
 
 
 
 VIO  核可能会与  Vivado IDE  不同步。请参阅“查看  VIO  核状态” , 以获取有关如何解释  VIO  状态指示的更多信息。  
  VIO  核根据基于对象属性的置位 / 落实和刷新 / 获取模型来操作 :  
  • 要读取  VIO  输入探针值 , 请首先刷新含  VIO  核数值的  hw_vio  对象。获取对应  hw_probe  对象的属性值 , 以观察输  
  入探针值。请参阅“与  VIO  核输入探针进行交互”部分 , 以获取更多信息。  
  • 要编写  VIO  输出探针值 , 请首先在  hw_probe  对象上获取期望的值作为属性。随后 , 这些属性值将落实到硬件中的  
  VIO  核 , 以将这些值写入核的输出探针端口。请参阅“与  VIO  核输入探针进行交互”部分 , 以获取更多信息。 
  查看  VIO  核状态  
  VIO  核可包含  0  或多个输入探针以及  0  或多个输出探针 ( 请注意 , VIO  核必须包含至少  1  个输入或输出探针 ) 。  
  “ Hardware ”窗口中所示  VIO  核状态用于表示  VIO  核输出探针的当前状态。下表中描述了可能的状态值以及您需要采  
  取的任何操作。  
  
  在“调试探针  (Debug Probes) ”窗口中查看  VIO  核  
  “ VIO  仪表板  (VIO Dashboard) ”窗口中的“ + ”按钮用于查看、添加和删除属于  VIO  核的调试探针。  
  使用  VIO  仪表板  
  VIO  默认仪表板初始为空 , 您可向其中添加  VIO  探针 , 如下图显示。  
  
  VIO  仪表板是给定  VIO  核相关的所有状态和控制信息的集中显示位置。刷新硬件器件并首次检测到  VIO  核时 , 将自动  
  打开该核的  VIO  仪表板。如果需要手动打开或重新打开此仪表板 , 请在“硬件  (Hardware) ”窗口或“调试探针  (Debug  
  Probes) ”窗口中右键单击此  VIO  核对象 , 然后单击“ Open Dashboard ”。  
  与  VIO  核输入探针进行交互  
  VIO  核输入探针用于从实际硬件的  FPGA  或  ACAP  内运行的设计中读取相应的值。 VIO  输入探针通常用作为待测设计  
  的状态指示器。 VIO  调试探针需手动添加到  VIO  仪表板的“ VIO  探针  (VIO Probes) ”窗口中。请参阅“在‘调试探针  
  (Debug Probes) ’窗口中查看  VIO  核”章节 , 以了解具体方法。下图中显示了  VIO  仪表板的“ VIO Probes ”窗口中的  
  VIO  输入探针示例。  
  
  使用  VIO  核视图读取  VIO  输入  
  VIO  输入探针可使用“ VIO  仪表板  (VIO Dashboard) ”窗口的“ VIO  探针  (VIO Probes) ”窗口来查看。每项输入在表中  
  均独立成行以供查看。 VIO  输入探针的值显示在表中的“值  (Value) ”列中 ( 请参阅“与  VIO  核输入探针进行交  
  互” ) 。 VIO  核输入值将根据  VIO  核的刷新率值定期更新。您可通过更改“ VIO  属性  (VIO Properties) ”窗口中的“刷  
  新率  (Refresh Rate (ms)) ”或者通过运行以下  Tcl  命令来设置刷新率 :  
  set_property CORE_REFRESH_RATE_MS 1000 [get_hw_vios hw_vio_1]  
  注释 : 将刷新率设为  0  会导致  VIO  核停止自动刷新。另请注意 , 刷新率值过低可能导致  Vivado IDE  迟滞。赛灵思建议  
  将刷新率设为不低于  500 ms 。  
  如果要手动读取  VIO  输入探针值 , 可使用  Tcl  命令。例如 , 如果要刷新并获取  VIO  核  hw_vio_1  的输入探针值 ( 名为  
  BUTTON_IBUF ), 请运行以下  Tcl  命令 :  
  refresh_hw_vio [get_hw_vios {hw_vio_1}]  
  get_property INPUT_VALUE [get_hw_probes BUTTON_IBUF]  
  相关信息  
  与  VIO  核输入探针进行交互  
  设置  VIO  输入显示类型和基数  
  VIO  输入探针的显示类型可通过如下方式进行设置 : 在“ VIO  仪表板  (VIO Dashboard) ”窗口的“ VIO  探针  (VIO  
  Probes) ”窗口中 , 右键单击  VIO  输入探针 , 并选择 :  
  • “ Text ” , 用于将输入显示为文本字段。这是对应  VIO  输入探针矢量 ( 位宽大于  1 ) 的唯一显示类型。  
  • “ LED ” , 用于将输入显示为发光二极管  (LED)  的图形表示法。此显示类型仅适用于  VIO  输入探针标量以及  VIO  输  
  入探针矢量的个别元素。您可将高低值设置为以下  4  种颜色中的任何颜色 :  
  ○  
  灰 ( 熄灭 )  
  ○  
  红  
  ○  
  绿  
  ○  
  蓝  
  当  VIO  输入探针的显示类型设置为“ Text ”时 , 您可通过如下方式更改基数 : 在“ VIO Dashboard ”窗口的“ VIO  
  Probes ”窗口中 , 右键单击  VIO  输入探针 , 并选择 :  
  • “ Radix > Binary ” , 以将基数更改为二进制。  
  • “ Radix > Octal ” , 以将基数更改为八进制。  
  • “ Radix > Hex  ” , 以将基数更改为十六进制。  
  • “ Radix > Unsigned ” , 以将基数更改为无符号十进制。  
  • “ Radix > Signed ” , 以将基数更改为有符号十进制。  
  您还可使用  Tcl  命令来设置  VIO  输入探针的基数。例如 , 要更改名为“ BUTTON_IBUF ”的  VIO  输入探针的基数 , 请  
  运行以下  Tcl  命令 :  
  set_property INPUT_VALUE_RADIX HEX [get_hw_probes BUTTON_IBUF]  
  观察和控制  VIO  输入活动  
  除了从  VIO  输入探针读取值外 , 您还可以监控  VIO  输入探针的活动。活动检测器可用于指示  Vivado IDE  定期更新期间  
  VIO  输入值何时发生改变。  
  VIO  输入探针活动值在“ VIO  仪表板  (VIO Dashboard) ”窗口的“ VIO  探针  (VIO Probes) ”窗口的活动列中显示为箭  
  头 :  
  • 向上箭头表示在活动持续期间 , 输入探针值已从  0  转变为  1 。  
  • 向下箭头表示在活动持续期间 , 输入探针值已从  1  转变为  0 。  
  • 双向箭头表示在活动持续期间 , 输入探针值已至少一次从  1  转变为  0  并从  0  转变为  1 。  
  如需控制输入活动状态显示的持续时间 , 请在“ VIO Dashboard ”窗口的“ VIO Probes ”窗口中右键单击  VIO  输入探  
  针并选择 :  
  • “ Activity Persistence > Infinite ” , 此项用于累积并保留活动值 , 直至复位。  
  • “ Activity Persistence > Long (80 samples) ” , 此项用于在较长的时间段内累积并保留活动。  
  • “ Activity Persistence > Short (8 samples) ” , 此项用于在较短的时间段内累积并保留活动。  
  您还可使用  Tcl  命令来设置活动持续状态。例如 , 要将名为  BUTTON_IBUF  的  VIO  输入探针上的活动持续时间更改为  
  较长的时间段 , 请运行以下  Tcl  命令 :  
  set_property ACTIVITY_PERSISTENCE LONG [get_hw_probes BUTTON_IBUF]  
  要将任一给定核的所有输入探针的活动复位 , 请在“ Hardware ”窗口中右键单击  VIO  核 , 然后选择“ Reset All Input  
  Activity ”。您也可以通过运行以下  Tcl  命令来执行此操作 :  
  reset_hw_vio_activity [get_hw_vios {hw_vio_1}]  
  提示 : 要更改任一  VIO  输入探针矢量的多个标量成员的类型、基数和 / 或活动持续时间 , 请右键单击整个探针或  
  者该探针的多个成员 , 然后从弹出菜单中进行选择。菜单选项适用于选中的所有探针标量。