Este programa está en Verilog y simulando en Modelsim. Estoy tratando de transferir datos de 48 bits de 192 bits a Parallel in Parallel Out (Registro) en 4 ranuras.
No estoy obteniendo salida en PIPO. Los datos no se transfieren a la salida de PIPO. En aras de la simplicidad he utilizado para transferir 96 bits. Los datos deben aparecer cada 48 sclk y sclk se cuenta con cnt (contador). El tamaño de PIPO es de 48 bits y el tamaño de Latch es de 192 bits.
/*LATCH FOR 192 BITS */
Parameter 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 DATA FROM LATCH TO 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
/* counter for grayscale to count upto 192 bits */
always@(posedge sclk,posedge rst)
begin
if(rst)
cnt <= 0;
else
if(cnt != N)
cnt <= cnt + 1;
else
cnt <= 0;
end