Escribí a algún tipo de prescaler en verilog para hacer la señal sclk_adc desde clk_i. por ahora mi código se ve como:
always @(posedge clk_i)
begin
//generation of sclk_adc
end
ahora me pregunto ¿hay alguna probabilidad de cargar registros de turnos en pos / negedge del reloj generado en el bloque siempre @ (posedge clk_i)?
Cuando escribí esto fuera del bloque principal siempre
always @(negedge sclk_adc)
begin
transdata = transtmp;
dataInCh[ch_cnt][15:0] = transdata;
end
always @(posedge sclk_adc)
begin
dout = shiftOut [ch_cnt] [15];
shiftOut [ch_cnt][15:0] = { shiftOut[ch_cnt] [14:0], 1'b0};
end
Se simula bien en el GTKwave, pero el quartus comenzó a quejarse de la referencia múltiple a dout (mi salida), creo que, merecidamente. Así que parece que tengo que cargarlos en el bloque principal, pero cuando agrego esas líneas allí, los registros de desplazamiento comienzan a cargarse con clk_i, no con sclk_adc, ¿qué es lógico, pero cómo evitar esto? Por favor, dame alguna pista, gracias