Как мне найти все драйверы для провода / переменной с помощью VPI?

Я сделал тестовый модуль и хочу выяснить, какие именно цепи и переменные влияют друг на друга. Вот код:

      module test(
    input logic unsigned [7:0] x,
    input logic unsigned [7:0] y,
    output logic unsigned [7:0] res 
  );  
  
  logic unsigned [7:0] inner1;
  logic [7:0] inner2;
  logic [7:0] inner3;
  
  assign inner1 = x * y;
  assign inner2 = -inner1;
  assign inner3 = -x; 
  assign res = inner2 + inner3;

endmodule

Здесь движет и, и диски inner2И вся конструкция выглядит как это . В следующем коде я просто пытаюсь найти отношения inner1с помощью vpiDriver и vpiLoad .

      static int initiate(s_cb_data* cbdata) {

    // Get handle
    vpiHandle inner1 = vpi_handle_by_name("test.inner1", NULL);
    vpi_printf("ANALYSE DRIVERS AND LOADS FOR: %s\n", vpi_get_str(vpiFullName, inner1));

    // List all drivers
    vpiHandle driver_itr = vpi_iterate(vpiDriver, inner1);
    vpiHandle driver;
    while(driver_itr && (driver = vpi_scan(driver_itr))){
        vpi_printf("DRIVER FOUND OF TYPE: %s\n", vpi_get_str(vpiType, driver));
    }   

    // List all loads
    vpiHandle load_itr = vpi_iterate(vpiLoad, inner1);
    vpiHandle load;
    while(load_itr && (load = vpi_scan(load_itr))){
        vpi_printf("LOAD FOUND OF TYPE: %s\n", vpi_get_str(vpiType, load));
    }   
    
    return 0;
}

Однако я получаю сообщение об ошибке «Невозможно сканировать драйверы / нагрузки с помощью дескриптора векторной ссылки». Это кажется странным, поскольку, глядя на раздел 37.21 IEEE Std 1800-2017, мне кажется, что я смогу получить эту информацию.

Я пробовал использовать vpi_handle_by_index(inner1, <bit>);чтобы получить дескриптор отдельных битов (хотя это кажется неэффективным, так как мне нужно пройти каждый бит). Тем не менее, при запуске программы я получаю только следующий результат:

      ANALYSE DRIVERS AND LOADS FOR: test.inner1
ANALYSE BIT 3: test.inner1[3]
LOAD FOUND OF TYPE: vpiContAssign

Я не уверен, почему он не находит драйверов. Примечание: x а также y вот сети, а остальные - переменные.

0 ответов

Другие вопросы по тегам