Verilog solo asigna el primer bit de un bus

1

Estoy intentando asignar un bus paralelo de 12 bits a un registro de 12 bits. He reducido el problema a esta asignación literal pero, al igual que en el caso anterior, solo se escribe el primer bit en cualquier cosa cuando compruebo la salida. He aislado el problema en esta sección, puedo cambiar los primeros datos de bit [0] pero nada más independientemente del orden.

Verilog incompleto obligatorio:

input [11:0] ADC_bus;
...
always @(posedge SPIClock)
begin
    count = count + 1;
    if (count == 32)
    begin
        ADC_data[0] <= 1'b1;
        ADC_data[1] <= 1'b1;
        ADC_data[2] <= 1'b1;
        ADC_data[3] <= 1'b1;
        ADC_data[4] <= 1'b1;
        ADC_data[5] <= 1'b1;
        ADC_data[6] <= 1'b1;
        ADC_data[7] <= 1'b1;
        ADC_data[8] <= 1'b1;
        ADC_data[9] <= 1'b1;
        ADC_data[10] <= 1'b1;
        ADC_data[11] <= 1'b1;
    end
    else if (count == 16)
        ADCss = 1;
    else if (count == 64)
    begin
        count = 0;
        ADCss = 0;
    end
end

Resultado: ADC_data [11: 0] siempre es 1

    
pregunta pdel

1 respuesta

1

Vaya, tuve un error tipográfico en el nivel superior que provocó que el quartus no viera la declaración wire[11:0] DAC_data; y asumiera que era un cable de bit único implícito sin lanzar una advertencia. Parece un buen modo de falla.

    
respondido por el pdel

Lea otras preguntas en las etiquetas