IEEE 1603 2004
$156.00
IEEE Standard for an Advanced Library Format (ALF) Describing Integrated Circuit (IC) Technology, Cells, and Blocks
Published By | Publication Date | Number of Pages |
IEEE | 2004 | 293 |
New IEEE Standard – Inactive – Withdrawn. Superseded by IEC/IEEE 62265-2005 (SH/SS95361) ALF shall serve as the data specification language of library elements for design applications used to implement integrated circuits. The range of abstraction shall include from the register-transfer level (RTL) to the physical level. The language shall model behavior, timing, power, signal integrity, physical abstraction and physical implementation rules of library elements. The purpose of ALF is to provide a modeling language and semantics for functional, physical and electrical performance description of technology-specific libraries for cell-based and block-based design. Without a standard, design implementation tools would use multiple proprietary and tool-specific library descriptions. The semantics would be defined by tool implementations only, which are subject to change and prone to mis- interpretation. Also there would be redundancy using multiple descriptions for similar library aspects. Therefore a standard is proposed to create a consistent library view suitable as a reference for all design implementation applications.
PDF Catalog
PDF Pages | PDF Title |
---|---|
1 | IEEE Standard for an Advanced Library Format (ALF) Describing Integrated Circuit (IC) Technology, Cells, and Blocks |
4 | Introduction |
6 | Participants |
7 | Contents |
14 | 1. Overview 1.1 Scope and purpose |
15 | 1.2 Application of this standard 1.2.1 Creation and characterization of library elements |
17 | 1.2.2 Basic implementation and performance analysis of an IC |
18 | 1.2.3 Hierarchical implementation and virtual prototyping of an IC |
21 | 1.3 Conventions used in this standard 1.4 Contents of this standard |
22 | 2. References 3. Definitions |
23 | 4. Acronyms |
24 | 5. ALF language construction principles |
25 | 5.1 ALF metalanguage |
26 | 5.2 Categories of ALF statements |
28 | 5.3 Generic objects and library-specific objects |
30 | 5.4 Singular statements and plural statements |
31 | 5.5 Instantiation statement and assignment statement |
33 | 5.6 Annotation, arithmetic model, and related statements |
34 | 5.7 Statements for parser control |
35 | 5.8 Name space and visibility of statements 6. Lexical rules 6.1 Character set |
37 | 6.2 Comment |
38 | 6.3 Delimiter 6.4 Operator |
39 | 6.4.1 Arithmetic operator 6.4.2 Boolean operator |
40 | 6.4.3 Relational operator |
41 | 6.4.4 Shift operator 6.4.5 Event operator 6.4.6 Meta operator |
42 | 6.5 Number 6.6 Index value and index |
43 | 6.7 Multiplier prefix symbol and multiplier prefix value |
44 | 6.8 Bit literal |
45 | 6.9 Based literal 6.10 Boolean value 6.11 Arithmetic value |
46 | 6.12 Edge literal and edge value 6.13 Identifier |
47 | 6.13.1 Non-escaped identifier 6.13.2 Placeholder identifier 6.13.3 Indexed identifier 6.13.4 Full hierarchical identifier |
48 | 6.13.5 Partial hierarchical identifier 6.13.6 Escaped identifier |
49 | 6.13.7 Keyword identifier 6.14 Quoted string |
50 | 6.15 String value 6.16 Generic value |
51 | 6.17 Vector expression macro 6.18 Rules for whitespace usage 6.19 Rules against parser ambiguity |
52 | 7. Generic objects and related statements 7.1 Generic object 7.2 All purpose item |
53 | 7.3 Annotation 7.4 Annotation container 7.5 ATTRIBUTE statement |
54 | 7.6 PROPERTY statement 7.7 ALIAS declaration |
55 | 7.8 CONSTANT declaration 7.9 KEYWORD declaration |
56 | 7.10 SEMANTICS declaration |
57 | 7.11 Annotations and rules related to a KEYWORD or a SEMANTICS declaration 7.11.1 VALUETYPE annotation |
59 | 7.11.2 VALUES annotation 7.11.3 DEFAULT annotation |
60 | 7.11.4 CONTEXT annotation |
61 | 7.11.5 REFERENCETYPE annotation |
62 | 7.11.6 SI_MODEL annotation |
63 | 7.11.7 Rules for legal usage of KEYWORD and SEMANTICS declaration |
64 | 7.12 CLASS declaration 7.13 Annotations related to a CLASS declaration 7.13.1 General CLASS reference annotation |
65 | 7.13.2 USAGE annotation |
66 | 7.14 GROUP declaration |
67 | 7.15 TEMPLATE declaration |
68 | 7.16 TEMPLATE instantiation |
71 | 7.17 INCLUDE statement 7.18 ASSOCIATE statement and FORMAT annotation |
72 | 7.19 REVISION statement |
73 | 8. Library-specific objects and related statements 8.1 Library-specific object |
74 | 8.2 LIBRARY and SUBLIBRARY declaration 8.3 Annotations related to a LIBRARY or a SUBLIBRARY declaration 8.3.1 LIBRARY reference annotation |
75 | 8.3.2 INFORMATION annotation container |
76 | 8.4 CELL declaration |
77 | 8.5 Annotations related to a CELL declaration 8.5.1 CELL reference annotation 8.5.2 CELLTYPE annotation |
78 | 8.5.3 RESTRICT_CLASS annotation |
80 | 8.5.4 SWAP_CLASS annotation 8.5.5 SCAN_TYPE annotation |
81 | 8.5.6 SCAN_USAGE annotation |
82 | 8.5.7 BUFFERTYPE annotation 8.5.8 DRIVERTYPE annotation |
83 | 8.5.9 PARALLEL_DRIVE annotation 8.5.10 PLACEMENT_TYPE annotation |
84 | 8.5.11 SITE reference annotation for a CELL 8.5.12 ATTRIBUTE values for a CELL |
86 | 8.6 PIN declaration |
87 | 8.7 PINGROUP declaration |
88 | 8.8 Annotations related to a PIN or a PINGROUP declaration 8.8.1 PIN reference annotation 8.8.2 MEMBERS annotation 8.8.3 VIEW annotation |
89 | 8.8.4 PINTYPE annotation |
90 | 8.8.5 DIRECTION annotation |
91 | 8.8.6 SIGNALTYPE annotation |
93 | 8.8.7 ACTION annotation |
94 | 8.8.8 POLARITY annotation |
95 | 8.8.9 CONTROL_POLARITY annotation container |
96 | 8.8.10 DATATYPE annotation |
97 | 8.8.11 INITIAL_VALUE annotation 8.8.12 SCAN_POSITION annotation 8.8.13 STUCK annotation |
98 | 8.8.14 SUPPLYTYPE annotation |
99 | 8.8.15 SIGNAL_CLASS annotation 8.8.16 SUPPLY_CLASS annotation |
101 | 8.8.17 DRIVETYPE annotation |
102 | 8.8.18 SCOPE annotation 8.8.19 CONNECT_CLASS annotation |
103 | 8.8.20 SIDE annotation 8.8.21 ROW and COLUMN annotation |
104 | 8.8.22 ROUTING_TYPE annotation |
105 | 8.8.23 PULL annotation |
106 | 8.8.24 ATTRIBUTE values for a PIN or a PINGROUP |
108 | 8.9 PRIMITIVE declaration 8.10 WIRE declaration 8.11 Annotations related to a WIRE declaration 8.11.1 WIRE reference annotation |
109 | 8.11.2 WIRETYPE annotation 8.11.3 SELECT_CLASS annotation |
110 | 8.12 NODE declaration |
111 | 8.13 Annotations related to a NODE declaration 8.13.1 NODE reference annotation 8.13.2 NODETYPE annotation |
112 | 8.13.3 NODE_CLASS annotation |
113 | 8.14 VECTOR declaration 8.15 Annotations related to a VECTOR declaration 8.15.1 VECTOR reference annotation |
114 | 8.15.2 PURPOSE annotation |
115 | 8.15.3 OPERATION annotation 8.15.4 LABEL annotation |
116 | 8.15.5 EXISTENCE_CONDITION annotation 8.15.6 EXISTENCE_CLASS annotation |
117 | 8.15.7 CHARACTERIZATION_CONDITION annotation 8.15.8 CHARACTERIZATION_VECTOR annotation 8.15.9 CHARACTERIZATION_CLASS annotation |
118 | 8.15.10 MONITOR annotation 8.16 LAYER declaration |
119 | 8.17 Annotations related to a LAYER declaration 8.17.1 LAYER reference annotation 8.17.2 LAYERTYPE annotation |
120 | 8.17.3 PITCH annotation 8.17.4 PREFERENCE annotation 8.18 VIA declaration |
121 | 8.19 Annotations related to a VIA declaration 8.19.1 VIA reference annotation 8.19.2 VIATYPE annotation |
122 | 8.20 RULE declaration 8.21 ANTENNA declaration |
123 | 8.22 BLOCKAGE declaration 8.23 PORT declaration |
124 | 8.24 Annotations related to a PORT declaration 8.24.1 Reference to a PORT using PIN reference annotation 8.24.2 PORTTYPE annotation |
125 | 8.25 SITE declaration 8.26 Annotations related to a SITE declaration 8.26.1 SITE reference annotation 8.26.2 ORIENTATION_CLASS annotation |
126 | 8.26.3 SYMMETRY_CLASS annotation 8.27 ARRAY declaration |
127 | 8.28 Annotations related to an ARRAY declaration 8.28.1 ARRAYTYPE annotation 8.28.2 LAYER reference annotation for ARRAY |
128 | 8.28.3 SITE reference annotation for ARRAY 8.29 PATTERN declaration 8.30 Annotations related to a PATTERN declaration 8.30.1 PATTERN reference annotation 8.30.2 SHAPE annotation |
130 | 8.30.3 VERTEX annotation |
131 | 8.30.4 ROUTE annotation |
132 | 8.30.5 LAYER reference annotation for PATTERN 8.31 REGION declaration 8.32 Annotations related to a REGION declaration 8.32.1 REGION reference annotation |
133 | 8.32.2 BOOLEAN annotation 9. Description of functional and physical implementation 9.1 FUNCTION statement 9.2 TEST statement |
134 | 9.3 Definition and usage of a pin variable 9.3.1 Pin variable and pin value 9.3.2 Pin assignment |
135 | 9.3.3 Usage of a pin variable in the context of a FUNCTION or a TEST statement |
136 | 9.4 BEHAVIOR statement |
137 | 9.5 STRUCTURE statement and CELL instantiation |
138 | 9.6 STATETABLE statement |
139 | 9.7 NON_SCAN_CELL statement |
140 | 9.8 RANGE statement |
141 | 9.9 Boolean expression |
142 | 9.10 Boolean value system 9.10.1 Scalar boolean value 9.10.2 Vectorized boolean value |
144 | 9.10.3 Non-assignable boolean value 9.11 Boolean operations and operators 9.11.1 Logical operation |
146 | 9.11.2 Bitwise operation |
148 | 9.11.3 Conditional operation 9.11.4 Integer arithmetic operation |
149 | 9.11.5 Shift operation 9.11.6 Comparison operation |
151 | 9.12 Vector expression and control expression |
152 | 9.13 Specification of a pattern of events 9.13.1 Specification of a single event |
153 | 9.13.2 Specification of a compound event |
154 | 9.13.3 Specification of a compound event with alternatives |
156 | 9.13.4 Evaluation of a specified pattern of events against a realized pattern of events |
158 | 9.13.5 Specification of a conditional pattern of events 9.14 Predefined PRIMITIVE |
159 | 9.14.1 Predefined PRIMITIVE ALF_BUF 9.14.2 Predefined PRIMITIVE ALF_NOT 9.14.3 Predefined PRIMITIVE ALF_AND 9.14.4 Predefined PRIMITIVE ALF_NAND |
160 | 9.14.5 Predefined PRIMITIVE ALF_OR 9.14.6 Predefined PRIMITIVE ALF_NOR 9.14.7 Predefined PRIMITIVE ALF_XOR 9.14.8 Predefined PRIMITIVE ALF_XNOR 9.14.9 Predefined PRIMITIVE ALF_BUFIF1 |
161 | 9.14.10 Predefined PRIMITIVE ALF_BUFIF0 9.14.11 Predefined PRIMITIVE ALF_NOTIF1 9.14.12 Predefined PRIMITIVE ALF_NOTFIF0 9.14.13 Predefined PRIMITIVE ALF_MUX |
162 | 9.14.14 Predefined PRIMITIVE ALF_LATCH 9.14.15 Predefined PRIMITIVE ALF_FLIPFLOP 9.15 WIRE instantiation |
164 | 9.16 Geometric model |
166 | 9.17 Predefined geometric models using TEMPLATE 9.17.1 Predefined TEMPLATE RECTANGLE |
167 | 9.17.2 Predefined TEMPLATE LINE 9.18 Geometric transformation |
169 | 9.19 ARTWORK statement 9.20 VIA instantiation |
170 | 10. Description of electrical and physical measurements 10.1 Arithmetic expression |
171 | 10.2 Arithmetic operations and operators 10.2.1 Sign inversion 10.2.2 Floating point arithmetic operation |
172 | 10.2.3 Macro arithmetic operator 10.3 Arithmetic model |
174 | 10.4 HEADER, TABLE, and EQUATION statements |
176 | 10.5 MIN, MAX, and TYP statements |
178 | 10.6 Auxiliary arithmetic model 10.7 Arithmetic submodel |
179 | 10.8 Arithmetic model container 10.8.1 General arithmetic model container 10.8.2 Arithmetic model container LIMIT |
180 | 10.8.3 Arithmetic model container EARLY and LATE 10.9 Generally applicable annotations for arithmetic models 10.9.1 UNIT annotation |
181 | 10.9.2 CALCULATION annotation |
182 | 10.9.3 INTERPOLATION annotation |
183 | 10.9.4 DEFAULT annotation |
184 | 10.9.5 MODEL reference annotation |
185 | 10.10 VIOLATION statement, MESSAGE TYPE, and MESSAGE annotation |
187 | 10.11 Arithmetic models for timing, power, and signal integrity 10.11.1 TIME |
188 | 10.11.2 FREQUENCY |
189 | 10.11.3 DELAY |
190 | 10.11.4 RETAIN |
191 | 10.11.5 SLEWRATE |
192 | 10.11.6 SETUP and HOLD |
193 | 10.11.7 RECOVERY and REMOVAL |
194 | 10.11.8 NOCHANGE and ILLEGAL |
195 | 10.11.9 PULSEWIDTH |
196 | 10.11.10 PERIOD |
197 | 10.11.11 JITTER |
198 | 10.11.12 SKEW |
199 | 10.11.13 THRESHOLD |
200 | 10.11.14 NOISE and NOISE_MARGIN |
203 | 10.11.15 POWER and ENERGY |
204 | 10.12 FROM and TO statements |
205 | 10.13 Annotations related to timing, power, and signal integrity 10.13.1 EDGE_NUMBER annotation 10.13.2 PIN reference and EDGE_NUMBER annotation for FROM and TO |
206 | 10.13.3 PIN reference and EDGE_NUMBER annotation for SLEWRATE 10.13.4 PIN reference and EDGE_NUMBER annotation for PULSEWIDTH |
207 | 10.13.5 PIN reference and EDGE_NUMBER annotation for SKEW 10.13.6 PIN reference annotation for NOISE and NOISE_MARGIN 10.13.7 MEASUREMENT annotation |
209 | 10.14 Arithmetic models for environmental conditions 10.14.1 PROCESS 10.14.2 DERATE_CASE |
210 | 10.14.3 TEMPERATURE |
211 | 10.15 Arithmetic models for electrical circuits 10.15.1 VOLTAGE |
212 | 10.15.2 CURRENT |
213 | 10.15.3 CAPACITANCE |
215 | 10.15.4 RESISTANCE |
216 | 10.15.5 INDUCTANCE |
217 | 10.16 Annotations for electrical circuits 10.16.1 NODE reference annotation for electrical circuits |
218 | 10.16.2 COMPONENT reference annotation |
219 | 10.16.3 PIN reference annotation for electrical circuits |
220 | 10.16.4 FLOW annotation |
221 | 10.17 Miscellaneous arithmetic models 10.17.1 DRIVE STRENGTH |
222 | 10.17.2 SWITCHING_BITS with PIN reference annotation 10.18 Arithmetic models related to structural implementation 10.18.1 CONNECTIVITY |
223 | 10.18.2 DRIVER and RECEIVER |
224 | 10.18.3 FANOUT, FANIN, and CONNECTIONS |
225 | 10.19 Arithmetic models related to layout implementation 10.19.1 SIZE |
226 | 10.19.2 AREA |
227 | 10.19.3 PERIMETER |
228 | 10.19.4 EXTENSION |
229 | 10.19.5 THICKNESS |
230 | 10.19.6 HEIGHT 10.19.7 WIDTH |
231 | 10.19.8 LENGTH |
232 | 10.19.9 DISTANCE |
233 | 10.19.10 OVERHANG 10.19.11 DENSITY |
234 | 10.20 Annotations related to arithmetic models for layout implementation 10.20.1 CONNECT_RULE annotation |
235 | 10.20.2 BETWEEN annotation 10.20.3 BETWEEN annotation for CONNECTIVITY |
236 | 10.20.4 BETWEEN annotation for DISTANCE, LENGTH, OVERHANG |
237 | 10.20.5 MEASURE annotation |
238 | 10.20.6 REFERENCE annotation container |
239 | 10.20.7 ANTENNA reference annotation 10.20.8 TARGET annotation |
240 | 10.20.9 PATTERN reference annotation |
241 | 10.21 Arithmetic submodels for timing and electrical data |
242 | 10.22 Arithmetic submodels for physical data |
243 | Annex A |
259 | Annex B |
286 | Annex C |
292 | Annex D |