¿Qué representan los corchetes en verilog?

-2

¿Alguien puede ayudar? Sé que debe ser muy simple, pero todavía estoy confundido con lo siguiente:

M41_1 (input0 [1], input1 [1], input2 [1], input3 [1], sel0, sel1, out [1]);

¿Qué representan los números entre corchetes?

    
pregunta sotiris

2 respuestas

2

El [ ] es una selección de parte .

El término input0[1] significa: tome el segundo del cable más bajo del bus input0 .

Entonces, si input0 es un bus de 4 bits, entonces input0[1] es un cable de 1 bit formado a partir de ese bus.

Entonces si: wire [3:0] input0 = 4'b0010;

entonces input0[1] es igual a 1'b1.

    
respondido por el Tim
1

Refiriéndose a su pregunta anterior , cuando declare

input [3:0] input0;

estás diciendo que input0 es un bus con 4 cables. Los cables individuales son input0[0] , input0[1] , etc.

Como dice Tim, esta construcción se denomina formalmente "selección de parte" en Verilog. Puede hacer más que simplemente tomar cables individuales. Por ejemplo, si desea tomar los dos cables de orden inferior como un bus, por ejemplo, podría usar input0[1:0] .

El código en su pregunta no está bien formado por Verilog por sí solo. La línea completa de tu pregunta anterior era

 multiplexer_41 M41_0(input0[0],input1[0],input2[0],input3[0],sel0,sel1,out[0]);

multiplexer_41 es el nombre de otro módulo, que está creando una instancia de esta línea de código. M41_0 es el nombre de la instancia que está creando. input0[0] y así sucesivamente son las señales de su módulo que está conectando a las entradas y salidas del multiplexor_41 llamado M41_0.

Pero sin el nombre de otro módulo, como lo muestra en esta pregunta, el compilador Verilog no tendrá idea de lo que está intentando crear una instancia.

    
respondido por el The Photon

Lea otras preguntas en las etiquetas