¿Cuál es el significado de wire [a:b] c
? ¿Es diferente de wire [b:a] c
? ¿O verilog los considera iguales? ¿Hay alguna sintaxis para convertir diferentes matrices entre sí?
¿Cuál es el significado de wire [a:b] c
? ¿Es diferente de wire [b:a] c
? ¿O verilog los considera iguales? ¿Hay alguna sintaxis para convertir diferentes matrices entre sí?
cuál es el significado de cable [a: b] c ?? es diferente de cable [b: a] c
Verilog no asume la Endianness de los autobuses.
Por ejemplo
wire [7:0] C; //Little endian [7] [6] [5] [4] [3] [2] [1] [0]
wire [0:7] D; //Big endian [0] [1] [2] [3] [4] [5] [6] [7]
Para seleccionar el bit más significativo de C, debe hacer referencia a C [7]. Mientras que para esto para D, necesita hacer referencia a D [0]
Si intenta conectar dos buses juntos en Verilog, están conectados MSB a MSB y LSB a LSB
En el ejemplo anterior, si intentamos conectar C y D, el LSB de C que es C [0] se conectará al LSB de D que es D [7]
Si C y D no tienen la misma longitud
wire [7:0] C;
wire [0:3] D;
Cuando intenta conectarlos juntos en Verilog, se conectan a partir del LSB
En este caso;
C: [7] [6] [5] [4] [3] [2] [1] [0]
........................... | .... | .... | .... |
D: .................... [0] [1] [2] [3]
C [0] = > D [3]
C [1] = > D [2]
C [2] = > D [1]
C [3] = > D [0]
¿Verilog los considera iguales?
Bueno, ambos son cables de múltiples bits, no hay diferencia entre ellos
¿Cómo usarlo?
Simplemente no conectes big-endian a little-endian a menos que realmente quieras hacer esto. De lo contrario, esto podría no darte los resultados que esperas
Lea otras preguntas en las etiquetas verilog