#include <stdio.h>
void main() {
int iter;
unsigned char S=255, R=0, Q, Qn;
for(iter=0; iter<10; iter++) {
SR_latch(S,R,&Q,&Qn);
printf("S=%3d R=%3d Q=%3d Qn=%3d\n",S,R,Q,Qn);
}
S=0; R=255;
for(iter=0; iter<10; iter++) {
SR_latch(S,R,&Q,&Qn);
printf("S=%3d R=%3d Q=%3d Qn=%3d\n",S,R,Q,Qn);
}
S=0; R=0;
for(iter=0; iter<10; iter++) {
SR_latch(S,R,&Q,&Qn);
printf("S=%3d R=%3d Q=%3d Qn=%3d\n",S,R,Q,Qn);
}
S=255; R=255;
for(iter=0; iter<10; iter++) {
SR_latch(S,R,&Q,&Qn);
printf("S=%3d R=%3d Q=%3d Qn=%3d\n",S,R,Q,Qn);
}
}
Como puede verse, la simulaci'on trata de comprobar la tabla de verdad 1. Crear un fichero fuente con las tres funciones descritas (void NAND(), void SR_latch() y void main()), compilar el c'odigo y ejecutar. La salida debiera ser:
S=255 R= 0 Q=255 Qn=211 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S=255 R= 0 Q=255 Qn= 0 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R=255 Q= 0 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S= 0 R= 0 Q=255 Qn=255 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0 S=255 R=255 Q=255 Qn= 0
> Se confirma la tabla de verdad ?. > Se sigue confirmando si alteramos el orden de llamada de las puertas NAND ?. La respuesta debiera ser que sí.