Error: multiplexor 4: 1

-3

Estoy obteniendo un error de compilación mientras estoy en 2'b100, ya que dice que Bounds of part-select into 'mux_out' are reversed . ¿Es esta la forma correcta de hacerlo?

  /* 4:1  MUX */

   always@(gs_latch[47:0] or gs_latch[95:48] or gs_latch[143:96] or gs_latch[191:144] or xlat_cnt[1:0])

     begin
    case(xlat_cnt[2:0])
      3'b001 : mux_out[47:0] = gs_latch[47:0];
      3'b010 : mux_out[95:48]= gs_latch[95:48];
      3'b011 : mux_out[143:96]= gs_latch[143:96];
      3'b100 : mux_out[144:191] = gs_latch[144:191];
      default : mux_out = 47'bx
    endcase // case (xlat_cnt[1:0])
     end
    
pregunta Manzer

1 respuesta

2

Su bus mux_out tiene solo 48 bits de ancho, ¿verdad? (No mostró esto). Por lo tanto, los lados izquierdos de sus asignaciones tienen los índices de bits incorrectos, que en realidad podrían eliminarse por completo:

/* 4:1  MUX */

always @(gs_latch, xlat_cnt) begin
  case (xlat_cnt[2:0])
    3'b001 : mux_out = gs_latch[47:0];
    3'b010 : mux_out = gs_latch[95:48];
    3'b011 : mux_out = gs_latch[143:96];
    3'b100 : mux_out = gs_latch[191:144];
    default : mux_out = 47'bx
  endcase
end

En realidad, tu problema original es simplemente que dijiste 144:191 en lugar de 191:144 para ese caso en particular.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas