[UVM] Packaging e integración de un modelo de Registro

            Embalaje e integración de un modelo de Registro

 

一, envasado de un Modelo Registro

   Se recomiendan las siguientes prácticas, pero no es obligatorio.

  • Tipos de bloques, y todo el registro, registro de archivo y tipos de memoria que requieren, deben estar ubicados en paquetes separados
  • Registro, archivos de registro, y la memoria tipos compartidos por más de un tipo de bloque deben estar ubicados en paquetes separados
  • Un archivo de cabecera, con todas las declaraciones de importación necesarios para utilizar el modelo de registro, debe generarse
  • Un método largo build () se puede dividir en varias, más cortos sub-métodos. Los sub-métodos serán declaradas local y llamados por el método de aumento ()

一, La integración de un modelo de Registro

  • Un modelo de registro debe estar integrado con el agente bus
  • La integración con el agente bus sólo debe realizarse en bloques de raíces
  • bloques de raíces modelar todo el DUT y ellos son los únicos que tienen acceso y conocimiento de la dirección de maps.ie visible desde el exterior en el entorno del banco de pruebas
class tb_env extends uvm_env;
  reg_model  regmodel;
  subblk_env subblk;
 
  virtual function void build_phase(uvm_phase phase);
    if (regmodel == null) begin
      regmodel = reg_model::type_id::create(“regmodel”, this);
      regmodel.build();
      regmodel.lock_model();
    end
    subblk = subblk_env::type_id::create(“subblk”, this);
    subblk.regmodel = regmodel.subblk;
  endfunction
endclass

 

Ha publicado 185 artículos originales · alabanza 118 won · vistas 40000 +

Supongo que te gusta

Origin blog.csdn.net/gsjthxy/article/details/105298725
Recomendado
Clasificación