Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GENPAT(1)		    ALLIANCE USER COMMANDS		     GENPAT(1)

NAME
       genpat, A procedural pattern file generator

SYNOPSIS
       genpat [-v] [-k]	[file]

DESCRIPTION
       Genpat  is a set	of C fonctions that allows a procedural	description of
       input pattern file for the logic	simulator ASIMUT. The Unix genpat com-
       mand accepts a C	file as	input and produces a pattern description  file
       as output. The extension	".c" is	not to be given. The file generated by
       genpat  is  in  pat format, so IT IS STRONGLY RECOMMENDED TO SEE	pat(5)
       BEFORE THIS MANUAL.

OPTIONS
       -v	      verbose mode

       -k	      keeps the	executable along with the compilation Makefile
		      after completion

GENPAT FILE FORMAT
       From a user point of view, genpat is a pattern description language us-
       ing all standard	C facilities (include, define, variables, loop,	 ...).
       Fonctions  provided  by	genpat	are to be used in a given order. Using
       them in a different order won't crash the system, but  will  result  in
       execution errors. Here follows the description of the input file.

       A  pat  format  file  can be divided in two parts : declaration and de-
       scription part.

       The declaration part is the list	of inputs, outputs,  internal  signals
       and  registers.	Inputs are to be forced	to a certain value and all the
       others are to be	observed during	simulation.

       The description part is a set of	patterns, where	each  pattern  defines
       the value of inputs and outputs.	The pattern number represents actually
       the absolute time for the simulator.

       Similarly,  a genpat file can be	divided	in two parts : declaration and
       description part. Functions related to the declaration must  be	called
       before any function related to the description part.

       declaration part
		 The  first  thing  you	 should	do in this part	is to give the
		 output	file's name (see DEF_GENPAT(3)). Then, this  part  al-
		 lows you to declare the inputs, the outputs, and internal ob-
		 serving points	(see DECLAR(3)). It is also possible to	create
		 virtual arraies (see ARRAY(3)).

       description part
		 After all signals are declared, you can begin to define input
		 values	 which	are to be applied to the inputs	of the circuit
		 or output values which	are to be compare with the values pro-
		 duced during the simulation.  (see  AFFECT(3)).   Genpat  de-
		 scribes  the  stimulus	by event : only	signal transitions are
		 described.  This part also allows you to give instructions to
		 the simulation	tool to	save the state of the circuit  at  the
		 end  of  the simulation. (see SAVE(3)). Last thing you	should
		 do in this part is to generate	the output file	(see  SAV_GEN-
		 PAT(3)).

FUNCTIONS
       DEF_GENPAT()   defines the output file's	name.

       SAV_GENPAT()   make the output file be generated

       DECLAR()	      declares	inputs,	 outputs,  and	the internal observing
		      points.

       ARRAY()	      allows signals of	the same type to  be  groupped	in  an
		      "virtual array" in order to ease their manipulation

       INIT()	      changes the values of registers between two patterns.

       AFFECT()	      assigns  a value to a signal, at a given pattern number.
		      This value is kept on the	signal until a	new  value  is
		      assigned to the signal.

       SAVE()	      informs  the  simulation	tool  to save the state	of the
		      circuit at the end of simulation

       LABEL()	      gives a label to the current pattern

       GETCPAT()      return the number	of the current pattern

EXAMPLES
       #include	<stdio.h>
       #include	"genpat.h"

       char *inttostr(entier)
       int entier;
	 {
	 char *str;
	 str = (char *)	mbkalloc (32 * sizeof (char));
	 sprintf (str, "%d",entier);
	 return(str);
	 }
	  /*------------------------------*/
	  /* end of the	description	  */
	  /*------------------------------*/

	main ()
	{
	int i;
	int j;
	int cur_vect = 0;

	DEF_GENPAT("example");

	/* interface */
	DECLAR ("a", ":2", "X",	IN, "3	downto 0", "" );
	DECLAR ("b", ":2", "X",	IN, "3	downto 0", "" );
	DECLAR ("s", ":2", "X",	OUT, "3	downto 0", "" );
	DECLAR ("vdd", ":2", "B", IN, "", "" );
	DECLAR ("vss", ":2", "B", IN, "", "" );

	LABEL ("adder");
	AFFECT ("0", "vdd", "0b1");
	AFFECT ("0", "vss", "0b0");

	for (i=0; i<16;	i++)
	{
	    for	(j=0; j<16; j++)
	    {
		AFFECT (inttostr(cur_vect), "a", inttostr(i) );
		AFFECT (inttostr(cur_vect), "b", inttostr(j) );
		cur_vect++;
	    }
	}

	SAV_GENPAT ();
	}

ENVIRONMENT VARIABLES
       Genpat reads the	environment variable VH_PATSFX to give the result file
       an extension.

SEE ALSO
       AFFECT(3), ARRAY(3), DECLAR(3), DEF_GENPAT(3), GETCPAT(3), INIT(3), LA-
       BEL(3), SAVE(3),	SAV_GENPAT(3), pat(5), asimut(1)

ASIM/LIP6			October	1, 1997			     GENPAT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=genpat&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help