inp000.c 1.71 KB
/*
 *  vi_rand000.c - generate test vectors for rand module
 * 
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
 *  G l o b a l s
 */

int reset_l;
char *prog_name;

static void
  print_vectors()
{
  static int first_time = 1;
  if(first_time)
  {
    first_time = 0;
    printf("#\n");
    printf("#   created by %s.c\n", prog_name);
    printf("#\n");
    printf("vclk                @C 1(8) 0(8)\n");
    printf("reset_l             @I @E 0\n");
    printf("\n"); /* required newline */
  }

  /*
   *  print input signals
   */

  printf("%d \n", reset_l);
}

void usage(void)
{
    fprintf(stderr, "Try again \n");
    exit(1);
}

void initialize(void)
{
    reset_l             = 0;
}

void setwires(int reset_lval)
{
    reset_l = reset_lval & 0x01;

    print_vectors();
}

void PrimePipe(void)
{
    setwires(0);
}

void HandTests(void)
{    
}

void DoRandomTests(void)
{
    int i, j, jend;

    /* need to use a constant seed so that we can
       diff tab files against a golden set stored away
       to see if anything has broken later */

    srandom(100);
    
    reset_l = 0;
    for (i=0; i<40; i++)
	print_vectors();

    for (i=0; i<20; i++)
	{
	    jend = random() & 0xff;
	    reset_l = 0;
	    print_vectors();
	    reset_l = 1;
	    for (j=0; j< jend; j++)
		print_vectors();	    
	}

    reset_l = 1;
    for (i=0; i <= 20000; i++) 
	print_vectors();
}

int
  main(int argc, char **argv)
{
    int c;
    extern char *optarg;
    extern int optind;
    char *ofile = NULL;
    int i;

    prog_name = argv[0];

    /* Print Headers */
    print_vectors();

    initialize();

    HandTests();
    DoRandomTests(); 
    
    /* Flush pipe */

    setwires(0);
    for (i=0; i<10; i++)
	print_vectors();
}