1LIBPAT(3)                  cao-vlsi reference manual                 LIBPAT(3)
2
3
4

NAME

6       PAT - Generic pattern data structure
7
8

DESCRIPTION

10       PAT  is  a  generic data structure supporting vlsi concepts.  It allows
11       representation of a sequence of simulation patterns in  a  data  struc‐
12       ture.
13
14
15       The  goal of PAT is to define an ad hoc single data structure (object),
16       with well known fixed meaning for each concept manipulated  in  pattern
17       description.  So any tools that needs to access simulation patterns can
18       be build upon it, using these structures.
19
20
21       For each object (data structure), a set of functions has  been  defined
22       in  order to add, delete or access it. These functions are defined in a
23       low-level library libPat106.a. Some other functions are  higher  level.
24       They  are  defined  in a high-level library libPhl106.a. There are also
25       some parsers-drivers.  A parser reads a pattern description file  in  a
26       given  format and build up a complete PAT data base. A driver creates a
27       text file in a given  format  from  a  PAT  data  base.  A  pat  format
28       parser-driver is available in the libPpt106.a library.
29
30
31       Pattern description envolves the following notions (for further details
32       see pat(5)):
33
34
35       input               port controlled by the user
36
37       output              signal or port observed by the user
38
39       initialization      forcing the value of a register
40
41       pattern sequence    list of values to be forced  on  inputs  or  to  be
42                           checked as the result of the simulation on outputs
43
44
45       The input-output list is represented by two data structures: pagrp con‐
46       tains informations relative to actual or  virtual  arraies  and,  paiol
47       represents  a one-bit input-output. Both are simply chained lists. How‐
48       ever, to make a more efficient access to  paiol  structures,  they  are
49       organized  in  a table. So, a paiol can also be addressed using an off‐
50       set.
51
52
53       Another group of data structures is used to represent a pattern.  paini
54       contains  values to be forced into registers before processing the pat‐
55       tern.  An event (a modification of value) on an input-output  is  given
56       by  a paevt structure. A third structure, papat gathers all information
57       concerning a pattern (including initializations - paini - and events  -
58       paevt).
59
60
61       A pacom is used to represent a comment.
62
63
64       Finally,  all  these structures can be accessed through a unique struc‐
65       ture, paseq, designed to represent a complete  sequence  of  simulation
66       patterns.
67
68

ORGANIZATION

70       In  order  to  use  PAT,  concepts on use of libraries are needed. And,
71       since these libraries are under development, the  code  is  subject  to
72       change.
73
74
75       To  enable work, a static version of each library is always present for
76       the user. Libraries and header files are  suffixed  by  a  number  (the
77       library's  version).  The programmer can prefer to work with an earlier
78       version of a library rather than the most recent one.  However,  it  is
79       recommended  to  adapt  softwares  to  libraries as soon as possible in
80       order  to  spotlight  potential  compatibility  problems   before   old
81       libraries are removed.
82
83
84       A  makefile  is  necessary  for all PAT applications.  This is required
85       because any soft must be easily recompilable, and  knowing  the  needed
86       libraries  for  a PAT based program is not an easy matter.  It can't be
87       achieved by an other way, so do use makefile.
88
89
90       In terms of software organization, PAT is splitted into  two  libraries
91       for the basic functions, a header file for structures and variable dec‐
92       larations and, up to now, one parser-driver library for pat format.
93
94
95       It is to be noticed that library's version number is incremented  when,
96       at  least, one function composing the library has been modified. There‐
97       fore, PAT libraries may evolve independently form each other.
98
99
100       Here follows the list of the libraries and their contents.
101
102
103       libPat106.a:        pat_addpaseq,  pat_addpagrp,
104                           pat_addpaiol,  pat_addpapat,
105                           pat_addpaevt,  pat_addpaini,             pat_addpa‐
106                           com,  pat_frepaini,    pat_frepaiol,  pat_frepacom,
107                           pat_frepapat,  pat_frepaevt, pat_crtpaiol
108
109
110       libPhl106.a:        pat_debug,     pat_getcount
111
112
113       libPpt106.a:        pat_lodpaseq,  pat_savpaseq,               pat_drv‐
114                           pat,    pat_prspat
115
116
117       The  libraries  are  organized  in  such a way that no cycle can appear
118       through calls. It means that, if in a given library  a  function  calls
119       another function in another library, then none of the functions of this
120       one does call any function that belongs to the first library.
121
122

EXAMPLE

124       In order to use PAT libraries, one needs something  like  this  in  its
125       makefile:
126
127              HEADER = -I/labo/include
128              LIB = -L/labo/lib -lPat106 -lPhl106 -lPpt106 -lMut315
129
130

SEE ALSO

132       mbk(1), pat(5)
133
134
135
136
137
138
139ASIM/LIP6                       October 1, 1997                      LIBPAT(3)
Impressum