/*
* test_regs.c -- Prueba de los registros.
* Ultima modificación: 2-11-00.
* gse.
*/
#include <stdio.h>
#include "defs.h"
#include "gates.h"
#include "latches.h"
#include "flip-flops.h"
#include "regs.h"
#include "clock.h"
#ifdef _REG_8_
void main() {
FILE *data=fopen("data","w");
FILE *data_sdl=fopen("data.sdl","w");
int iter=3000,j;
WIRE i[8],o[8],ck;
REG_8 reg;
fprintf(data,"ck");
for(j=0;j<8;j++) {
i[j]=GND;
fprintf(data," i[%d]",j);
}
for(j=0;j<8;j++) {
o[j]=GND;
fprintf(data," o[%d]",j);
}
// fprintf(data,"\n");
while(iter--) {
Clock(iter,17,ck);
for(j=0;j<8;j++) {
Clock(iter,1<<(j+5),i[j]);
}
reg.run(ck,i,o);
fprintf(data_sdl," %3d",ck);
for(j=0;j<8;j++) {
fprintf(data_sdl," %3d",i[j]);
}
for(j=0;j<8;j++) {
fprintf(data_sdl," %3d",o[j]);
}
fprintf(data_sdl,"\n");
}
}
#endif
Compilar los registros y simular el registro de 8 bits. Además, escribir la simulación del registro de 32 bits. Comprobar que ambas simulaciones son correctas. ¿Cuánto es el tiempo de retardo de un registro de 8 bits? ¿Cuánto es el tiempo de retardo de un registro de 32 bits?
Intentar también la implementación de un registro de tamaño variable.