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

FreeBSD Manual Pages

  
 
  

home | help
LIBPAT(3)		   cao-vlsi reference manual		     LIBPAT(3)

NAME
       PAT - Generic pattern data structure

DESCRIPTION
       PAT  is	a  generic data	structure supporting vlsi concepts.  It	allows
       representation of a sequence of simulation patterns in  a  data	struc-
       ture.

       The  goal of PAT	is to define an	ad hoc single data structure (object),
       with well known fixed meaning for each concept manipulated  in  pattern
       description.  So	any tools that needs to	access simulation patterns can
       be build	upon it, using these structures.

       For each	object (data structure), a set of functions has	 been  defined
       in  order to add, delete	or access it. These functions are defined in a
       low-level library libPat106.a. Some other functions are	higher	level.
       They  are  defined  in a	high-level library libPhl106.a.	There are also
       some parsers-drivers.  A	parser reads a pattern description file	 in  a
       given  format and build up a complete PAT data base. A driver creates a
       text file in a given  format  from  a  PAT  data	 base.	A  pat	format
       parser-driver is	available in the libPpt106.a library.

       Pattern description envolves the	following notions (for further details
       see pat(5)):

       input		   port	controlled by the user

       output		   signal or port observed by the user

       initialization	   forcing the value of	a register

       pattern sequence	   list	 of  values  to	 be  forced on inputs or to be
			   checked as the result of the	simulation on outputs

       The input-output	list is	represented by two data	structures: pagrp con-
       tains informations relative to actual or	 virtual  arraies  and,	 paiol
       represents  a one-bit input-output. Both	are simply chained lists. How-
       ever, to	make a more efficient access to	paiol structures, they are or-
       ganized in a table. So, a paiol can also	be addressed using an offset.

       Another group of	data structures	is used	to represent a pattern.	 paini
       contains	 values	to be forced into registers before processing the pat-
       tern.  An event (a modification of value) on an input-output  is	 given
       by  a paevt structure. A	third structure, papat gathers all information
       concerning a pattern (including initializations - paini - and events  -
       paevt).

       A pacom is used to represent a comment.

       Finally,	 all  these structures can be accessed through a unique	struc-
       ture, paseq, designed to	represent a complete  sequence	of  simulation
       patterns.

ORGANIZATION
       In  order  to  use  PAT,	 concepts on use of libraries are needed. And,
       since these libraries are under development, the	 code  is  subject  to
       change.

       To  enable work,	a static version of each library is always present for
       the user. Libraries and header files are	suffixed by a number (the  li-
       brary's	version).  The	programmer  can	prefer to work with an earlier
       version of a library rather than	the most recent	one.  However,	it  is
       recommended  to adapt softwares to libraries as soon as possible	in or-
       der to spotlight	potential compatibility	problems before	old  libraries
       are removed.

       A makefile is necessary for all PAT applications.  This is required be-
       cause  any soft must be easily recompilable, and	knowing	the needed li-
       braries for a PAT based program is not an easy  matter.	 It  can't  be
       achieved	by an other way, so do use makefile.

       In  terms  of software organization, PAT	is splitted into two libraries
       for the basic functions,	a header file for structures and variable dec-
       larations and, up to now, one parser-driver library for pat format.

       It is to	be noticed that	library's version number is incremented	 when,
       at  least, one function composing the library has been modified.	There-
       fore, PAT libraries may evolve independently form each other.

       Here follows the	list of	the libraries and their	contents.

       libPat106.a:	   pat_addpaseq,  pat_addpagrp,	pat_addpaiol,  pat_ad-
			   dpapat,   pat_addpaevt,  pat_addpaini,   pat_addpa-
			   com,	 pat_frepaini,	  pat_frepaiol,	 pat_frepacom,
			   pat_frepapat,  pat_frepaevt,	pat_crtpaiol

       libPhl106.a:	   pat_debug,	  pat_getcount

       libPpt106.a:	   pat_lodpaseq,  pat_savpaseq,		      pat_drv-
			   pat,	   pat_prspat

       The  libraries  are  organized  in  such	a way that no cycle can	appear
       through calls. It means that, if	in a given library  a  function	 calls
       another function	in another library, then none of the functions of this
       one does	call any function that belongs to the first library.

EXAMPLE
       In  order  to  use  PAT libraries, one needs something like this	in its
       makefile:

	      HEADER = -I/labo/include
	      LIB = -L/labo/lib	-lPat106 -lPhl106 -lPpt106 -lMut315

SEE ALSO
       mbk(1), pat(5)

ASIM/LIP6			October	1, 1997			     LIBPAT(3)

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

home | help