1BEH(3) cao-vlsi reference manual BEH(3)
2
3
4
6 BEH - Generic behavioural data structures
7
8
10 BEH is a generic data structure supporting vlsi concepts. It allows
11 representation of a behavioral description in a data structure.
12
13
14 The goal of BEH is to define an ad hoc single data structure (object),
15 with well known fixed meaning for each concept manipulated within a
16 behavioural description. So any tools that needs to work with a behav‐
17 ioral view can be build upon it using these structures.
18
19
20 For each object (data structure), a set of functions has been defined
21 in order to add, delete or access it. These functions are defined in a
22 low-level library libBeh108.a. Some other functions are higher level.
23 They are defined in a high-level library libBhl108.a. There are also
24 some parsers-drivers. A pareser reads a behavioural description file
25 in a given format and build up a complete BEH data base. A driver cre‐
26 ates a text file in a given behavioural description format from a BEH
27 data base. A VHDL parser-driver is available in the libBvl103.a
28 library.
29
30
31 The behavioural view envolves the following notions:
32
33
34 figure behavioural representation of a circuit (see
35 BEFIG).
36
37 port list ordered list of the circuit's logical ports (see
38 BEPOR).
39
40 generic a global data (constants) relative to a circuit
41 other than logical ports (see BEGEN).
42
43 simple output a simple output port of the circuit (see BEOUT).
44
45 bused output a bused output port of the circuit (see BEBUS).
46
47 input an input port of the circuit (see BERIN).
48
49 internal register an internal memorizing element (see BEREG).
50
51 internal signal an internal simple signal of the circuit (see
52 BEAUX).
53
54 internal bus an internal bused signal of the circuit (see
55 BEBUX).
56
57 assert a condition, noticed by the circuit designer, that
58 insures a correct usage of the circuit. The valid‐
59 ity of these conditions is to be checked continu‐
60 ously at run time (see BEMSG).
61
62
63 In order to use BEH, concepts on use of libraries are needed. And,
64 since these libraries are under development, the code is subject to
65 change.
66
67
68 To enable work, a static version of each library is always present for
69 the user. Libraries and header files are suffixed by a number (the
70 library's version). The programmer can prefer to work with an earlier
71 version of a library rather than the most recent one. However, it is
72 recommended to adapt software to libraries as soon as possible in order
73 to spotlight potential compatibility problems before old libraries are
74 removed.
75
76
77 A makefile is necessary for all BEH applications. This is required
78 because any soft must be easily recompilable, and knowing the needed
79 libraries for a BEH based program is not an easy matter. It can't be
80 achieved an other way, so do use makefile.
81
82
83 For each behavioural description format a parser and a driver have been
84 developed . These are organized in as many separate libraries as
85 description format. So if a parser or driver changes it is not needed
86 to recompile BEH. Only a relink of the application is needed.
87
88
89 In terms of software organization, BEH is split into two libraries for
90 the basic functions, a header file for structures and variable declara‐
91 tions, and , up to now, one parser-driver library for VHDL format.
92
93
94 It is to be noticed that library's version number is incremented when,
95 at least, one function composing the library has been modified. There‐
96 fore, BEH libraries may evolve independently form each other.
97
98
99 Here follows the list of the libraries and their contents.
100
101
102 libBeh108.a: beh_addbefig, beh_addbeaux, beh_addbebux,
103 beh_addbegen, beh_addbebus, beh_addbemsg,
104 beh_addbeout, beh_addbepor, beh_addbereg,
105 beh_addberin, beh_addbiabl, beh_addbinode,
106 beh_delbefig, beh_delbeaux, beh_delbebux,
107 beh_delbegen, beh_delbebus, beh_delbemsg,
108 beh_delbeout, beh_delbepor, beh_delbereg,
109 beh_delberin, beh_delbiabl, beh_delbinode,
110 beh_frebefig, beh_frebeaux, beh_frebebux,
111 beh_frebegen, beh_frebebus, beh_frebemsg,
112 beh_frebeout, beh_frebepor, beh_frebereg,
113 beh_freberin, beh_frebiabl, beh_frebinode,
114 beh_rmvbefig, beh_rmvbeaux, beh_rmvbebux,
115 beh_rmvbegen, beh_rmvbebus, beh_rmvbemsg,
116 beh_rmvbeout, beh_rmvbepor, beh_rmvbereg,
117 beh_rmvberin
118
119
120 libBhl108.a: beh_debug
121
122
123 The libraries are organized in such a way that no cycle can appear
124 through calls. It means that if a given library a function calls
125 another function in another library, then none of the functions of this
126 one does call any function that belongs to the first library.
127
128
130 In order to use BEH libraries, one needs something like that in its
131 makefile:
132
133 HEADER = -I/labo/include
134 LIB = -L/labo/lib -lBeh108 -lBhl108 -lBvl109 -llog200 -lMut315
135
136
138 mbk(1), log(3)
139
140
141
142
143
144
145ASIM/LIP6 October 1, 1997 BEH(3)