Introducción a la unidad de compilación SystemVerilog $unit
Se ha agregado el concepto de unidad de compilación a SV, que son todos los archivos fuente compilados juntos cuando se compila el archivo fuente SV.
El campo de unidad de compilación ocupa el tercer lugar en el orden de búsqueda.
p>
Por ejemplo
Aquí hemos creado dos paquetes (a_dpk y b_dpk). Ambos paquetes tienen solo una función de impresión, y también hay una función de impresión en el. módulo (función de impresión Se utiliza para indicar la ubicación)
El resultado de la impresión es el siguiente:
image-20211216201944989
El resultado de la ejecución es el siguiente: p>
Puedes ver esto Lo que se imprime es el paquete importado en el módulo
Luego comentamos el paquete importado en el módulo, es decir, comentamos import a_dpk::*; p>
Se ejecutan los siguientes resultados:
En este punto, el contenido del campo de unidad de compilación $unit importado finalmente se imprime
Esta es la razón por la que el campo de unidad de compilación ocupa el tercer lugar en las reglas de búsqueda
Entonces, ¿por qué el campo de la unidad de compilación se llama $unit? Podemos cambiar el código nuevamente
Comentamos b_dpk, pero aún así lo importamos y vemos los resultados de ejecución
El error se muestra directamente en $unit. Quizás $unit sea solo un nombre. , al igual que el módulo se llama test_tb en el ejemplo anterior
El formato es:
Esta es una técnica común en lenguaje C. Si la declaración de importación se encuentra por primera vez. compílelo en $unit, si vuelve a aparecer no se compilará
Simulemos el paquete de la nota anterior de esta manera, dando primero el contenido del paquete de la nota anterior
Nombramos el archivo definiciones.dpk, y el sufijo .dpk es aleatorio
Los siguientes son el código fuente y los archivos de prueba
Los resultados de ejecución son los siguientes
El contenido principal de este artículo Referencia