From cgupta Fri Dec 18 12:13:51 1992 Date: Fri, 18 Dec 92 12:13:50 -0600 From: cgupta (C. N. Gupta) To: evans Subject: C program for random-fault generation for 9x8 multiplier Status: R _______________________________________________________________ /** BEGIN CODE **/ #include #include #define IB1 1 #define IB3 4 #define IB4 8 #define IB8 128 #define IB9 256 #define BITS 9 #define IB1 1 #define IB2 2 #define IB4 8 #define IB13 4096 #define BITS8 8 main() { unsigned i,j,k; char s1[5],s2[4]; int *seed, *seed2; int temp_var1, temp_var2; printf("vector x x8 x7 x6 x5 x4 x3 x2 x1 x0\n"); printf("vector y y7 y6 y5 y4 y3 y2 y1 y0\n"); printf("vector z z16 z15 z14 z13 z12 z11 z10 z9 "); printf("z8 z7 z6 z5 z4 z3 z2 z1 z0\n"); printf("watch x y z\n"); printf("observe z\n"); printf("fault *@0 *@1\n"); seed = &temp_var1; seed2 = &temp_var2; *seed2 = 30; for (i=0; i < 512; i++) { *seed = 1; for (j=0; j < 256; j++) { lfsr8(seed); lfsr9(seed2); printf("cycle\n"); printf("time\n"); } } printf("exit\n"); } lfsr9(iseed) int *iseed; { int i; int newbit; int sequence; { newbit = (*iseed & IB9) >> 8 ^ (*iseed & IB4) >> 3; *iseed=(*iseed << 1) | newbit; printf("set x:"); print_binary(*iseed,BITS); printf("\n"); } } lfsr8(iseed) int *iseed; { int i; int newbit; int sequence; { newbit = (*iseed & IB8) >> 7 ^ (*iseed & IB4) >> 3 ^ (*iseed & IB3 ) >> 2 ^ (*iseed & IB2) >> 1; *iseed=(*iseed << 1) | newbit; printf("set y:"); print_binary(*iseed,BITS8); printf("\n"); } } ______________________________________________________________ MAKEFILE ______________________________________________________________ # # circuit verification software makefile. # jbe, 7/25/88 # # set up make variables LIB = -lm -lc # use -f68881 and -O on Sun-3's # use -fsky on Sun-2's # use -O on Vaxen and Sun-4's CFLAGS = -O OBJS = io.o XFILES = wrt_src wrt_src9 seq8x9 # lfsr5 lfsr4 # make various files all: $(XFILES) $(OBJS): # cc $(CFLAGS) -c lfsr4.c cc $(CFLAGS) -c $*.c seq8x9: $(OBJS) seq8x9.c cc $(CFLAGS) seq8x9.c $(OBJS) $(LIB) -o seq8x9 wrt_src9: $(OBJS) wrt_src9.c cc $(CFLAGS) wrt_src9.c $(OBJS) $(LIB) -o wrt_src9 wrt_src: $(OBJS) wrt_src.c cc $(CFLAGS) wrt_src.c $(OBJS) $(LIB) -o wrt_src lfsr4: $(OBJS) binary.h lfsr4.c cc $(CFLAGS) lfsr4.c $(OBJS) $(LIB) -o lfsr4 lfsr5: $(OBJS) binary.h lfsr5.c cc $(CFLAGS) lfsr5.c $(OBJS) $(LIB) -o lfsr5 shar: shar Makefile *.c *.h *.b > verify.shar clean: -rm -f *.o realclean: -rm -f *.o $(XFILES) *.shar