0

在我的 VPI 回调函数中,我得到了时间的实际值,但是这个时间值的单位取决于信号所在模块的时间尺度。我怎样才能找到所提供时间的单位?

这是我的监视器 VPI 功能:

my_monitor(p_cb_data cb_data_p)
{
  unsigned int value, bit, i;

  for(bit=1,value=0,i=strlen(cb_data_p->value->value.str) ; i ;i--){
    // Convert string to  hex value
    value += cb_data_p->value->value.str[i-1]=='1' ? bit : 0; // TODO: Check for other values?
    bit *= 2;
  }
  // Save to trace file
  fprintf(pv_file_trace,"%15f(?s): %s = %s 0x%X\n",
  cb_data_p->time->real,
  cb_data_p->user_data,
  cb_data_p->value->value.str, value);

}
4

1 回答 1

0

假设信号在模块中声明,你可以做

ts = vpi_get(vpiTimeUnit, vpi_handle(vpiModule, cb_data_p->obj));

我找不到我记录的,但在几秒钟内是 10 -tsts的规模

于 2022-02-01T23:09:11.613 回答