Paso 14: VM 3.2: crear instancias de módulos
Hemos analizado los módulos instanciados mucho por ahora, así que es hora de entender el concepto subyacente.El módulo superior envuelve el proyecto, a menudo por crear instancias de componentes modulares útiles para cumplir con los requisitos del proyecto. Pero cada uno de estos módulos de instanciados también puede crear instancias de otros módulos.
Esto significa que un determinado módulo superior puede crear una instancia de algo como un divisor de reloj y divisor de reloj puede crear una instancia de un número de DFFs, pero se da la tarea de conectar DFFs junto al módulo divisor de reloj.
¿Suena como un concepto familiar? Que ha incursionado con programación en lenguajes como C, C++, Java, etc. deben estar familiarizados con el "alcance". El ámbito de un módulo de instancia se limita al módulo que lo crea una instancia. Esto es muy similar a, por ejemplo, C++. Si nosotros estábamos haciendo un programa de C++, tenemos una función main() que envuelve todo, y en esa función principal podemos llamar otras funciones, pero el funcionamiento interno de las funciones (las funciones también pueden llamar a estas funciones) no son accesibles en principal, a pesar de que para ejecutar la función principal, también deben ser ejecutadas todas las funciones auxiliares.
En el caso del divisor de reloj, el módulo superior contiene un divisor de reloj y por lo tanto también contiene un montón de DFFs, pero en cuanto a módulo superior no tiene DFFs accesibles.