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

  
 
  

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 repre-
     sentation of a sequence of simulation patterns in a data structure.

     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 descrip-
     tion. 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 for-
     mat  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  avail-
     able 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 contains
     informations relative to actual or virtual arraies and, paiol represents  a
     one-bit  input-output.  Both  are	simply chained lists. However, to make a
     more efficient access to paiol structures, they are organized 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 con-
     tains values to be forced into registers before processing the pattern.  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 structure,
     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  library'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 order to spotlight po-
     tential compatibility problems before old libraries are removed.

     A makefile is necessary for all PAT applications.	This is required because
     any soft must be easily recompilable, and knowing the needed libraries  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 declarations
     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. Therefore, 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_addpa-
			 pat,	    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_drvpat,    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  func-
     tion  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  make-
     file:

	    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.1.quarterly>

home | help