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