UVM ambiente de comprensión uvm_config_db

uvm_config_db acerca de los tres propósitos siguientes:

interfaz virtual pasado en el medio ambiente.

Establecer un solo valor variable, como int.string.enum similares.

configuración pase Object (objeto config) en el medio ambiente

 

 

Cuando se utiliza el método de configuración uvm_config_db, se dan a continuación algunas sugerencias:

· Cuando se utiliza el set / get método, los tipos de parámetros transmitidos deben ser consistentes. Por ejemplo uvm_object como la transmisión, si no obtener el tipo de juego de tipo, debe ser completado primeras conversiones de tipo $ (CAST), entonces la operación de conversión de tipo de objeto.

· Parámetros establecido / método de entrega puede utilizar comodines "*" para representar cualquier nivel, similar al uso de expresiones regulares. Al mismo tiempo, los usuarios tienen que entender la diferencia entre "* .comp1" y "COMP1 *", la primera en todos los niveles con el nombre actual para el componente "COMP1", que representa el nivel actual y el nivel actual incluyen todo lo siguiente "COMP1 llamado "componentes.

· El primer parámetro en el entorno módulo si desea utilizar uvm_config_db :: set, uvm_component luego pasó cntxt utiliza para indicar el nivel actual, debido a que el nivel actual es el nivel más alto, por lo que el usuario puede ajustar a nulo, también se puede ajustar a uvm_root :: get () para representar el uvm_root instancia global.

• Al utilizar las variables de configuración, debe estar seguro de llevar a cabo la operación uvm_config_db :: get, para obtener el valor correcto uso posterior.

· En caso de tratar de asegurar uvm_config_db :: método set se llama antes de la asamblea para crear su configuración. Esto es debido a que sólo los, sus componentes asociados primera configurados al entrar en la fase de construcción de la realización, un valor deseado se puede obtener.

• Para una variable con la misma instancia de componente, si hay múltiples componentes de los valores de las variables superiores, configurar los componentes de la capa superior serán cubiertos por la configuración de bajo nivel, pero si es el mismo nivel de la componente variable de sobrescribirá el tiempo, debe seguir la siguiente configuración sobrescribirá la configuración anterior.

· Los usuarios deben utilizar uvm_config_db :: get () método, añada fácil de instrucciones de depuración a la información variable de impresión por UVM conseguir método si obtiene a partir de uvm_config_db, si no se adquiere, la necesidad de tomar otras medidas.

 

 

Podemos ver en el ejemplo anterior, la interfaz pasa puede ser implementado para ofrecer al mundo de la UVM entorno de hardware por uvm_config_db. En los puntos de proceso de implementación para nota:

* Interfaz de transferencia debe ocurrir antes RUN_TEST (). Esto asegura que antes de entrar en la fase de construcción, la interfaz virtual se ha pasado al uvm_config_db en.

* Interfaz de usuario debe ser puesto a separar el área de declaración de interfaz virtual. proceso de transferencia de tipo debe ser interfaz virtual, es decir, el mango de la interfaz real.

           Al utilizar conjunto de API uvm_config_db / get, el funcionamiento real de los siguientes antecedentes:

1. uvm_config_db :: conjunto por el nivel y el nombre de la variable, que la información se coloca uvm_pkg únicas variables globales uvm_pkg :: uvm_resources.

2. uvm_resources variables globales utilizadas para almacenar y liberar la información de configuración de recursos (información de recursos). uvm_resources uvm_resource_pool es una instancia de clase único global, en este ejemplo hay dos matrices de recursos utilizados para almacenar información de configuración, estos dos arrays indexados por un nombre jerárquico, un tipo de índice, relacionando las dos matrices se pueden almacenar por cualquier número información de configuración de nivel. Al mismo tiempo, los componentes subyacentes también se pueden hacer por el nivel de información de configuración de alto nivel o tipo. Esta realización también completado información de versión información de configuración adquirida para facilitar la depuración y la reutilización.

3. Durante uvm_config_db :: get método, por que constituye el índice de capa de los parámetros de transmisión, y la información de configuración del índice dispuestos uvm_resource existente piscina, si el índice, el método devuelve 1, y 0 en caso contrario.

 

 

Modo de empleo?

 

uvm_config_db # (int) :: set (esto “env.i_agt.drv”, “pre_num”, 100);

 

Cuatro parámetros, set de enviar una carta, prepararse para recibir.

 

El primer y el segundo conjunto de parámetros para formar la ruta de destino, el camino hacia este objetivo con el fin de cumplir con los receptores. El primer argumento debe ser un ejemplo puntero uvm_component, el segundo parámetro es la ruta relativa a este ejemplo. El tercer parámetro representa un símbolo para ilustrar este valor se pasa a la diana que miembro de la cuarta parámetro es el valor a establecer.

 

uvm_config_db # (int) :: get (esto, “”, “pre_num”, pre_num);

 

Cuatro parámetros, el primer parámetro, un puntero puede generalmente instancia "este", "nulo" y similares.

El segundo parámetro puede ser nulo, "", comodines se pueden utilizar también, como en el ejemplo de pantalla, "* yy_agent" "yy_agent.drv"

El primer al tercer conjunto de parámetros y obtener el "enviar una carta" y "receptor" para cumplir con dos condiciones: tiempo de la partida, debe estar preparado para recibir y enviar una carta en primer lugar, con el fin de errores de evitar, en general, obtener la mejor ventaja frente juicio, 2 marcas consistente, que es el destino del mensaje se empareja.

El tercero, a menudo un valor de parámetro o mango.

Liberadas 1012 artículos originales · ganado elogios 520 · Vistas 12.700.000 +

Supongo que te gusta

Origin blog.csdn.net/Augusdi/article/details/104977995
Recomendado
Clasificación