Creaciones parametrizadas e instancias de módulos

0

¿Las instancias utilizadas anteriormente son muy similares a las utilizadas en C ++? Soy nuevo en verilog, pero en la etapa de aprendizaje. Al igual que usamos una instancia de clase en C ++ en varios lugares, es similar a usar ¿Parametrización paramétrica y de módulo? como

//Module Defination
module and4(a,b,c);
   input[3:0] a,b;
   output[3:0] c;
   assign c=a&b;
   endmodule
//Module Instantiations
wire[3:0]in1,in2;
wire[3:0]o1,o2;
and4(in1,in2,o1);
and4(.c(o2),.a(in1),.b(in2));

así que con la primera vista está claro que estamos usando diferentes instancias de and4 para crear diferentes objetos como lo hacemos en C ++, pero todavía tengo dudas de que lo que estoy pensando es incorrecto o correcto.

    
pregunta shailendra

2 respuestas

0

En Verilog, si crea una instancia de un módulo dos veces, le está diciendo a su herramienta de síntesis que en realidad cree dos circuitos separados. Se podría imaginar una herramienta de síntesis que funciona seleccionando puertas lógicas reales de la serie 7400 y colocándolas robóticamente en una placa de pruebas, y conectando cables entre ellas.

En su caso, la herramienta en realidad seleccionaría un 7408 quad AND chip y cablearía dos de sus puertas de acuerdo con las redes que asignó.

En el caso de la simulación, por supuesto, solo le está diciendo al simulador que simule un circuito con dos compuertas AND, en lugar de construir un circuito real.

    
respondido por el The Photon
0

Dos objetos en C ++ son físicamente dos regiones en la memoria de algún sistema de microprocesador. Dos instancias de módulos en Verilog son dos paquetes de compuertas lógicas y flip-flops con conexiones separadas al mundo exterior. Es como comparar el domingo con un color azul, ¿son similares? ¿Cómo responderías? :)

Intente olvidar las comparaciones entre lenguajes de programación "normales" (C / C ++ / Java, etc.) y HDL - > Lenguajes de descripción de hardware (verilog, VHDL). Se supone que los primeros se ejecutan secuencialmente en un microprocesador, los últimos se implementan en hardware (como puertas lógicas, registros, flip-flops, bloques de RAM y muchos más).

Los conceptos son tan diferentes que no tiene sentido compararlos. Si intentas pensar en el código Verilog en términos de C ++, entonces te dará muchos dolores de cabeza.

Lee detenidamente algún buen libro sobre Verilog / VHDL, todo debería explicarse :) ¡Buena suerte!

    
respondido por el r00dY

Lea otras preguntas en las etiquetas