Este programa está en Verilog y se está simulando en Modelsim. Estoy tratando de transferir datos de 48 bits desde una retención de 192 bits hacia una salida en paralelo en paralelo (registro) en 4 ranuras.
No estoy recibiendo salida en PIPO. Los datos no se están transfiriendo en la salida de PIPO. Por simplicidad, he utilizado para la transferencia 96 bits. Los datos deben venir en cada 48 sclk y sclk es contado por cnt(contador). El tamaño de PIPO es de 48 bits y el tamaño de la retención es de 192 bits.
/* RETENCION PARA 192 BITS */
Parámetro N = 192;
always@(xlat,dcsel,sipo_out_gs,rst)
begin
if(rst)
gs_latch <= gs_latch;
else
if(xlat == 1)
gs_latch <= sipo_out_gs;
else
gs_latch <= gs_latch;
end
/* 48 BITS DE DATOS DE LA RETENCION A PIPO */
always@(posedge sclk,posedge rst,cnt)
begin
if(rst)
pipo_lat <= pipo_lat;
else
if(cnt >= 47 & cnt <= 94)
pipo_lat <= gs_latch[47:0];
end
always@(posedge sclk,posedge rst,cnt)
begin
if(rst)
pipo_lat <= pipo_lat;
else
if(cnt >= 95 && cnt <=142)
pipo_lat <= gs_latch[95:48];
else
pipo_lat <= gs_latch[95:48];
end
/* contador para escala de grises para contar hasta 192 bits */
always@(posedge sclk,posedge rst)
begin
if(rst)
cnt <= 0;
else
if(cnt != N)
cnt <= cnt + 1;
else
cnt <= 0;
end