next up previous
Next: About this document ... Up: Práctica 9. Registros Previous: regs.c

test_regs.c

/*
 * 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.




2000-11-02