pyucis UCIS 1.0
UCIS 1.0 XML interchange format as pyucis writes it: the elements in no namespace.
Read by pyEDAA.Reports.CodeCoverage.UCIS.PyUCIS.Document - see pyucis UCIS XML - for a
report, whose root <UCIS> of no namespace states ucisVersion="1.0".
pyucis’ XmlWriter binds the prefix ucis to the XML Schema instance namespace, but uses it for no element. This
schema is UCIS-1.0.xsd without a target namespace, with the changes of pyucis’ own schema
ucis.xsd: a coverpoint’s and a cross’ bin state a name and a key, a coverpoint’s bin’s type is
bins, default, ignore or illegal, and a covergroup instance may have no coverpoint. Otherwise it has
the standard’s complex types, elements, attributes, their order, occurrences, types and defaults.
Download
PyUCIS-1.0.xsd (25.3 kiB)
Validate a report
xmllint --schema PyUCIS-1.0.xsd --noout coverage.xml
Source
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 Copyright 2012 Accellera Systems Initiative, Inc.
4 Copyright 2020 NVIDIA Corporation
5 Copyright 2026-2026 Electronic Design Automation Abstraction (EDA²)
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18
19 SPDX-License-Identifier: Apache-2.0
20
21 Modified by EDA²: derived from 'ucis/UCIS.xsd' of https://github.com/accellera-official/fc4sc, commit 31b9339a. The
22 four changes made there in 2020 are reverted to the schema of the UCIS 1.0 standard (section 9.14), the target
23 namespace is removed, and the covergroup bins and instances changed as pyucis' own schema 'ucis.xsd' changes them.
24 The definitions are reformatted and grouped by coverage kind, the comments are replaced, the documentation is
25 added.
26-->
27<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
28 elementFormDefault="qualified" attributeFormDefault="unqualified">
29 <xs:annotation>
30 <xs:documentation>
31 UCIS 1.0 XML interchange format as pyucis writes it - e.g. for PyVSC or a converted Verilator coverage file -:
32 pyucis' 'XmlWriter' (checked: pyucis 0.2.0, commit 11c39fd0).
33
34 The elements are in no namespace; the root binds the prefix 'ucis' to the XML Schema instance namespace, but
35 uses it for no element. A coverpoint bin and a cross bin state a 'name' and a 'key'; a coverpoint bin's 'type'
36 is 'bins', 'default', 'ignore' or 'illegal'; a covergroup instance may have no coverpoint - as pyucis' own
37 schema 'ucis.xsd' has them. Otherwise it is the schema of the UCIS 1.0 standard (section 9.14), see
38 'UCIS-1.0.xsd': the same complex types, elements, attributes, their order, occurrences, types and defaults.
39 </xs:documentation>
40 </xs:annotation>
41
42 <!-- Common types -->
43 <xs:complexType name="NAME_VALUE">
44 <xs:sequence>
45 <xs:element name="name" type="xs:string"/>
46 <xs:element name="value" type="xs:string"/>
47 </xs:sequence>
48 </xs:complexType>
49
50 <xs:complexType name="USER_ATTR" mixed="true">
51 <xs:attribute name="key" type="xs:string" use="required"/>
52 <xs:attribute name="type" use="required">
53 <xs:simpleType>
54 <xs:restriction base="xs:string">
55 <xs:enumeration value="int"/>
56 <xs:enumeration value="float"/>
57 <xs:enumeration value="double"/>
58 <xs:enumeration value="str"/>
59 <xs:enumeration value="bits"/>
60 <xs:enumeration value="int64"/>
61 </xs:restriction>
62 </xs:simpleType>
63 </xs:attribute>
64 <xs:attribute name="len" type="xs:integer"/>
65 </xs:complexType>
66
67 <xs:complexType name="BIN_CONTENTS">
68 <xs:sequence>
69 <xs:element name="historyNodeId" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="unbounded"/>
70 </xs:sequence>
71 <xs:attribute name="nameComponent" type="xs:string"/>
72 <xs:attribute name="typeComponent" type="xs:string"/>
73 <xs:attribute name="coverageCount" type="xs:nonNegativeInteger" use="required"/>
74 </xs:complexType>
75
76 <xs:attributeGroup name="binAttributes">
77 <xs:attribute name="alias" type="xs:string"/>
78 <xs:attribute name="coverageCountGoal" type="xs:nonNegativeInteger"/>
79 <xs:attribute name="excluded" type="xs:boolean" default="false"/>
80 <xs:attribute name="excludedReason" type="xs:string"/>
81 <xs:attribute name="weight" type="xs:nonNegativeInteger" default="1"/>
82 </xs:attributeGroup>
83
84 <xs:complexType name="BIN">
85 <xs:sequence>
86 <xs:element name="contents" type="BIN_CONTENTS"/>
87 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
88 </xs:sequence>
89 <xs:attributeGroup ref="binAttributes"/>
90 </xs:complexType>
91
92 <xs:attributeGroup name="objAttributes">
93 <xs:attribute name="alias" type="xs:string"/>
94 <xs:attribute name="excluded" type="xs:boolean" default="false"/>
95 <xs:attribute name="excludedReason" type="xs:string"/>
96 <xs:attribute name="weight" type="xs:nonNegativeInteger" default="1"/>
97 </xs:attributeGroup>
98
99 <xs:attributeGroup name="metricAttributes">
100 <xs:attribute name="metricMode" type="xs:string"/>
101 <xs:attribute name="weight" type="xs:nonNegativeInteger" default="1"/>
102 </xs:attributeGroup>
103
104 <xs:complexType name="METRIC_MODE">
105 <xs:sequence>
106 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
107 </xs:sequence>
108 <xs:attribute name="metricMode" type="xs:string" use="required"/>
109 </xs:complexType>
110
111 <xs:complexType name="SOURCE_FILE">
112 <xs:attribute name="fileName" type="xs:string" use="required"/>
113 <xs:attribute name="id" type="xs:positiveInteger" use="required"/>
114 </xs:complexType>
115
116 <xs:complexType name="LINE_ID">
117 <xs:attribute name="file" type="xs:positiveInteger" use="required"/>
118 <xs:attribute name="line" type="xs:positiveInteger" use="required"/>
119 </xs:complexType>
120
121 <xs:complexType name="STATEMENT_ID">
122 <xs:attribute name="file" type="xs:positiveInteger" use="required"/>
123 <xs:attribute name="line" type="xs:positiveInteger" use="required"/>
124 <xs:attribute name="inlineCount" type="xs:positiveInteger" use="required"/>
125 </xs:complexType>
126
127 <xs:complexType name="DIMENSION">
128 <xs:attribute name="left" type="xs:integer" use="required"/>
129 <xs:attribute name="right" type="xs:integer" use="required"/>
130 <xs:attribute name="downto" type="xs:boolean" use="required"/>
131 </xs:complexType>
132
133 <!-- History nodes -->
134 <xs:complexType name="HISTORY_NODE">
135 <xs:sequence>
136 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
137 </xs:sequence>
138 <xs:attribute name="historyNodeId" type="xs:nonNegativeInteger" use="required"/>
139 <xs:attribute name="parentId" type="xs:nonNegativeInteger"/>
140 <xs:attribute name="logicalName" type="xs:string" use="required"/>
141 <xs:attribute name="physicalName" type="xs:string"/>
142 <xs:attribute name="kind" type="xs:string"/>
143 <xs:attribute name="testStatus" type="xs:boolean" use="required"/>
144 <xs:attribute name="simtime" type="xs:double"/>
145 <xs:attribute name="timeunit" type="xs:string"/>
146 <xs:attribute name="runCwd" type="xs:string"/>
147 <xs:attribute name="cpuTime" type="xs:double"/>
148 <xs:attribute name="seed" type="xs:string"/>
149 <xs:attribute name="cmd" type="xs:string"/>
150 <xs:attribute name="args" type="xs:string"/>
151 <xs:attribute name="compulsory" type="xs:string"/>
152 <xs:attribute name="date" type="xs:dateTime" use="required"/>
153 <xs:attribute name="userName" type="xs:string"/>
154 <xs:attribute name="cost" type="xs:decimal"/>
155 <xs:attribute name="toolCategory" type="xs:string" use="required"/>
156 <xs:attribute name="ucisVersion" type="xs:string" use="required"/>
157 <xs:attribute name="vendorId" type="xs:string" use="required"/>
158 <xs:attribute name="vendorTool" type="xs:string" use="required"/>
159 <xs:attribute name="vendorToolVersion" type="xs:string" use="required"/>
160 <xs:attribute name="sameTests" type="xs:nonNegativeInteger"/>
161 <xs:attribute name="comment" type="xs:string"/>
162 </xs:complexType>
163
164 <!-- Toggle coverage -->
165 <xs:complexType name="TOGGLE">
166 <xs:sequence>
167 <xs:element name="bin" type="BIN"/>
168 </xs:sequence>
169 <xs:attribute name="from" type="xs:string" use="required"/>
170 <xs:attribute name="to" type="xs:string" use="required"/>
171 </xs:complexType>
172
173 <xs:complexType name="TOGGLE_BIT">
174 <xs:sequence>
175 <xs:element name="index" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="unbounded"/>
176 <xs:element name="toggle" type="TOGGLE" minOccurs="1" maxOccurs="unbounded"/>
177 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
178 </xs:sequence>
179 <xs:attribute name="name" type="xs:string" use="required"/>
180 <xs:attribute name="key" type="xs:string" use="required"/>
181 <xs:attributeGroup ref="objAttributes"/>
182 </xs:complexType>
183
184 <xs:complexType name="TOGGLE_OBJECT">
185 <xs:sequence>
186 <xs:element name="dimension" type="DIMENSION" minOccurs="0" maxOccurs="unbounded"/>
187 <xs:element name="id" type="STATEMENT_ID"/>
188 <xs:element name="toggleBit" type="TOGGLE_BIT" minOccurs="1" maxOccurs="unbounded"/>
189 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
190 </xs:sequence>
191 <xs:attribute name="name" type="xs:string" use="required"/>
192 <xs:attribute name="key" type="xs:string" use="required"/>
193 <xs:attribute name="type" type="xs:string"/>
194 <xs:attribute name="portDirection" type="xs:string"/>
195 <xs:attributeGroup ref="objAttributes"/>
196 </xs:complexType>
197
198 <xs:complexType name="TOGGLE_COVERAGE">
199 <xs:sequence>
200 <xs:element name="toggleObject" type="TOGGLE_OBJECT" minOccurs="0" maxOccurs="unbounded"/>
201 <xs:element name="metricMode" type="METRIC_MODE" minOccurs="0" maxOccurs="unbounded"/>
202 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
203 </xs:sequence>
204 <xs:attributeGroup ref="metricAttributes"/>
205 </xs:complexType>
206
207 <!-- Statement and block coverage -->
208 <xs:complexType name="STATEMENT">
209 <xs:sequence>
210 <xs:element name="id" type="STATEMENT_ID"/>
211 <xs:element name="bin" type="BIN"/>
212 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
213 </xs:sequence>
214 <xs:attributeGroup ref="objAttributes"/>
215 </xs:complexType>
216
217 <xs:complexType name="BLOCK">
218 <xs:sequence>
219 <xs:element name="statementId" type="STATEMENT_ID" minOccurs="0" maxOccurs="unbounded"/>
220 <xs:element name="hierarchicalBlock" type="BLOCK" minOccurs="0" maxOccurs="unbounded"/>
221 <xs:element name="blockBin" type="BIN"/>
222 <xs:element name="blockId" type="STATEMENT_ID"/>
223 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
224 </xs:sequence>
225 <xs:attribute name="parentProcess" type="xs:string"/>
226 <xs:attributeGroup ref="objAttributes"/>
227 </xs:complexType>
228
229 <xs:complexType name="PROCESS_BLOCK">
230 <xs:sequence>
231 <xs:element name="block" type="BLOCK" minOccurs="0" maxOccurs="unbounded"/>
232 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
233 </xs:sequence>
234 <xs:attribute name="processType" type="xs:string" use="required"/>
235 <xs:attributeGroup ref="objAttributes"/>
236 </xs:complexType>
237
238 <xs:complexType name="BLOCK_COVERAGE">
239 <xs:sequence>
240 <xs:choice>
241 <xs:element name="process" type="PROCESS_BLOCK" minOccurs="1" maxOccurs="unbounded"/>
242 <xs:element name="block" type="BLOCK" minOccurs="1" maxOccurs="unbounded"/>
243 <xs:element name="statement" type="STATEMENT" minOccurs="1" maxOccurs="unbounded"/>
244 </xs:choice>
245 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
246 </xs:sequence>
247 <xs:attributeGroup ref="metricAttributes"/>
248 </xs:complexType>
249
250 <!-- Condition and expression coverage -->
251 <xs:complexType name="EXPR">
252 <xs:sequence>
253 <xs:element name="id" type="STATEMENT_ID"/>
254 <xs:element name="subExpr" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
255 <xs:element name="bin" type="BIN" minOccurs="1" maxOccurs="unbounded"/>
256 <xs:element name="hierarchicalExpr" type="EXPR" minOccurs="0" maxOccurs="unbounded"/>
257 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
258 </xs:sequence>
259 <xs:attribute name="name" type="xs:string" use="required"/>
260 <xs:attribute name="key" type="xs:string" use="required"/>
261 <xs:attribute name="exprString" type="xs:string" use="required"/>
262 <xs:attribute name="index" type="xs:nonNegativeInteger" use="required"/>
263 <xs:attribute name="width" type="xs:nonNegativeInteger" use="required"/>
264 <xs:attribute name="statementType" type="xs:string"/>
265 <xs:attributeGroup ref="objAttributes"/>
266 </xs:complexType>
267
268 <xs:complexType name="CONDITION_COVERAGE">
269 <xs:sequence>
270 <xs:element name="expr" type="EXPR" minOccurs="0" maxOccurs="unbounded"/>
271 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
272 </xs:sequence>
273 <xs:attributeGroup ref="metricAttributes"/>
274 </xs:complexType>
275
276 <!-- Branch coverage -->
277 <xs:complexType name="BRANCH">
278 <xs:sequence>
279 <xs:element name="id" type="STATEMENT_ID"/>
280 <xs:element name="nestedBranch" type="BRANCH_STATEMENT" minOccurs="0" maxOccurs="unbounded"/>
281 <xs:element name="branchBin" type="BIN"/>
282 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
283 </xs:sequence>
284 </xs:complexType>
285
286 <xs:complexType name="BRANCH_STATEMENT">
287 <xs:sequence>
288 <xs:element name="id" type="STATEMENT_ID"/>
289 <xs:element name="branch" type="BRANCH" minOccurs="0" maxOccurs="unbounded"/>
290 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
291 </xs:sequence>
292 <xs:attribute name="branchExpr" type="xs:string"/>
293 <xs:attribute name="statementType" type="xs:string" use="required"/>
294 <xs:attributeGroup ref="objAttributes"/>
295 </xs:complexType>
296
297 <xs:complexType name="BRANCH_COVERAGE">
298 <xs:sequence>
299 <xs:element name="statement" type="BRANCH_STATEMENT" minOccurs="0" maxOccurs="unbounded"/>
300 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
301 </xs:sequence>
302 <xs:attributeGroup ref="metricAttributes"/>
303 </xs:complexType>
304
305 <!-- FSM coverage -->
306 <xs:complexType name="FSM_STATE">
307 <xs:sequence>
308 <xs:element name="stateBin" type="BIN"/>
309 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
310 </xs:sequence>
311 <xs:attribute name="stateName" type="xs:string"/>
312 <xs:attribute name="stateValue" type="xs:string"/>
313 </xs:complexType>
314
315 <xs:complexType name="FSM_TRANSITION">
316 <xs:sequence>
317 <xs:element name="state" type="xs:string" minOccurs="2" maxOccurs="unbounded"/>
318 <xs:element name="transitionBin" type="BIN"/>
319 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
320 </xs:sequence>
321 </xs:complexType>
322
323 <xs:complexType name="FSM">
324 <xs:sequence>
325 <xs:element name="state" type="FSM_STATE" minOccurs="0" maxOccurs="unbounded"/>
326 <xs:element name="stateTransition" type="FSM_TRANSITION" minOccurs="0" maxOccurs="unbounded"/>
327 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
328 </xs:sequence>
329 <xs:attribute name="name" type="xs:string"/>
330 <xs:attribute name="type" type="xs:string"/>
331 <xs:attribute name="width" type="xs:positiveInteger"/>
332 <xs:attributeGroup ref="objAttributes"/>
333 </xs:complexType>
334
335 <xs:complexType name="FSM_COVERAGE">
336 <xs:sequence>
337 <xs:element name="fsm" type="FSM" minOccurs="0" maxOccurs="unbounded"/>
338 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
339 </xs:sequence>
340 <xs:attributeGroup ref="metricAttributes"/>
341 </xs:complexType>
342
343 <!-- Assertion coverage -->
344 <xs:complexType name="ASSERTION">
345 <xs:sequence>
346 <xs:element name="coverBin" type="BIN" minOccurs="0" maxOccurs="1"/>
347 <xs:element name="passBin" type="BIN" minOccurs="0" maxOccurs="1"/>
348 <xs:element name="failBin" type="BIN" minOccurs="0" maxOccurs="1"/>
349 <xs:element name="vacuousBin" type="BIN" minOccurs="0" maxOccurs="1"/>
350 <xs:element name="disabledBin" type="BIN" minOccurs="0" maxOccurs="1"/>
351 <xs:element name="attemptBin" type="BIN" minOccurs="0" maxOccurs="1"/>
352 <xs:element name="activeBin" type="BIN" minOccurs="0" maxOccurs="1"/>
353 <xs:element name="peakActiveBin" type="BIN" minOccurs="0" maxOccurs="1"/>
354 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
355 </xs:sequence>
356 <xs:attribute name="name" type="xs:string" use="required"/>
357 <xs:attribute name="assertionKind" type="xs:string" use="required"/>
358 <xs:attributeGroup ref="objAttributes"/>
359 </xs:complexType>
360
361 <xs:complexType name="ASSERTION_COVERAGE">
362 <xs:sequence>
363 <xs:element name="assertion" type="ASSERTION" minOccurs="0" maxOccurs="unbounded"/>
364 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
365 </xs:sequence>
366 <xs:attributeGroup ref="metricAttributes"/>
367 </xs:complexType>
368
369 <!-- Covergroup coverage -->
370 <xs:complexType name="SEQUENCE">
371 <xs:sequence>
372 <xs:element name="contents" type="BIN_CONTENTS"/>
373 <xs:element name="seqValue" type="xs:integer" minOccurs="1" maxOccurs="unbounded"/>
374 </xs:sequence>
375 </xs:complexType>
376
377 <xs:complexType name="RANGE_VALUE">
378 <xs:sequence>
379 <xs:element name="contents" type="BIN_CONTENTS"/>
380 </xs:sequence>
381 <xs:attribute name="from" type="xs:integer" use="required"/>
382 <xs:attribute name="to" type="xs:integer" use="required"/>
383 </xs:complexType>
384
385 <xs:complexType name="COVERPOINT_BIN">
386 <xs:sequence>
387 <xs:choice>
388 <xs:element name="range" type="RANGE_VALUE" minOccurs="1" maxOccurs="unbounded"/>
389 <xs:element name="sequence" type="SEQUENCE" minOccurs="1" maxOccurs="unbounded"/>
390 </xs:choice>
391 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
392 </xs:sequence>
393 <xs:attribute name="alias" type="xs:string"/>
394 <xs:attribute name="type" use="required">
395 <xs:simpleType>
396 <xs:restriction base="xs:string">
397 <xs:enumeration value="bins"/>
398 <xs:enumeration value="default"/>
399 <xs:enumeration value="ignore"/>
400 <xs:enumeration value="illegal"/>
401 </xs:restriction>
402 </xs:simpleType>
403 </xs:attribute>
404 <xs:attribute name="name" type="xs:string" use="required"/>
405 <xs:attribute name="key" type="xs:string" use="required"/>
406 </xs:complexType>
407
408 <xs:complexType name="CROSS_BIN">
409 <xs:sequence>
410 <xs:element name="index" type="xs:integer" minOccurs="1" maxOccurs="unbounded"/>
411 <xs:element name="contents" type="BIN_CONTENTS"/>
412 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
413 </xs:sequence>
414 <xs:attribute name="type" type="xs:string" default="default"/>
415 <xs:attribute name="alias" type="xs:string"/>
416 <xs:attribute name="name" type="xs:string" use="required"/>
417 <xs:attribute name="key" type="xs:string" use="required"/>
418 </xs:complexType>
419
420 <xs:complexType name="CROSS_OPTIONS">
421 <xs:attribute name="weight" type="xs:nonNegativeInteger" default="1"/>
422 <xs:attribute name="goal" type="xs:nonNegativeInteger" default="100"/>
423 <xs:attribute name="comment" type="xs:string" default=""/>
424 <xs:attribute name="at_least" type="xs:nonNegativeInteger" default="1"/>
425 <xs:attribute name="cross_num_print_missing" type="xs:nonNegativeInteger" default="0"/>
426 </xs:complexType>
427
428 <xs:complexType name="CROSS">
429 <xs:sequence>
430 <xs:element name="options" type="CROSS_OPTIONS"/>
431 <xs:element name="crossExpr" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
432 <xs:element name="crossBin" type="CROSS_BIN" minOccurs="0" maxOccurs="unbounded"/>
433 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
434 </xs:sequence>
435 <xs:attribute name="name" type="xs:string" use="required"/>
436 <xs:attribute name="key" type="xs:string" use="required"/>
437 <xs:attribute name="alias" type="xs:string"/>
438 </xs:complexType>
439
440 <xs:complexType name="COVERPOINT_OPTIONS">
441 <xs:attribute name="weight" type="xs:nonNegativeInteger" default="1"/>
442 <xs:attribute name="goal" type="xs:nonNegativeInteger" default="100"/>
443 <xs:attribute name="comment" type="xs:string" default=""/>
444 <xs:attribute name="at_least" type="xs:nonNegativeInteger" default="1"/>
445 <xs:attribute name="detect_overlap" type="xs:boolean" default="false"/>
446 <xs:attribute name="auto_bin_max" type="xs:nonNegativeInteger" default="64"/>
447 </xs:complexType>
448
449 <xs:complexType name="COVERPOINT">
450 <xs:sequence>
451 <xs:element name="options" type="COVERPOINT_OPTIONS"/>
452 <xs:element name="coverpointBin" type="COVERPOINT_BIN" minOccurs="1" maxOccurs="unbounded"/>
453 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
454 </xs:sequence>
455 <xs:attribute name="name" type="xs:string" use="required"/>
456 <xs:attribute name="key" type="xs:string" use="required"/>
457 <xs:attribute name="alias" type="xs:string"/>
458 <xs:attribute name="exprString" type="xs:string"/>
459 </xs:complexType>
460
461 <xs:complexType name="CG_ID">
462 <xs:sequence>
463 <xs:element name="cginstSourceId" type="STATEMENT_ID"/>
464 <xs:element name="cgSourceId" type="STATEMENT_ID"/>
465 </xs:sequence>
466 <xs:attribute name="cgName" type="xs:string" use="required"/>
467 <xs:attribute name="moduleName" type="xs:string" use="required"/>
468 </xs:complexType>
469
470 <xs:complexType name="CGINST_OPTIONS">
471 <xs:attribute name="weight" type="xs:nonNegativeInteger" default="1"/>
472 <xs:attribute name="goal" type="xs:nonNegativeInteger" default="100"/>
473 <xs:attribute name="comment" type="xs:string" default=""/>
474 <xs:attribute name="at_least" type="xs:nonNegativeInteger" default="1"/>
475 <xs:attribute name="detect_overlap" type="xs:boolean" default="false"/>
476 <xs:attribute name="auto_bin_max" type="xs:nonNegativeInteger" default="64"/>
477 <xs:attribute name="cross_num_print_missing" type="xs:nonNegativeInteger" default="0"/>
478 <xs:attribute name="per_instance" type="xs:boolean" default="false"/>
479 <xs:attribute name="merge_instances" type="xs:boolean" default="false"/>
480 </xs:complexType>
481
482 <xs:complexType name="CGINSTANCE">
483 <xs:sequence>
484 <xs:element name="options" type="CGINST_OPTIONS"/>
485 <xs:element name="cgId" type="CG_ID"/>
486 <xs:element name="cgParms" type="NAME_VALUE" minOccurs="0" maxOccurs="unbounded"/>
487 <xs:element name="coverpoint" type="COVERPOINT" minOccurs="0" maxOccurs="unbounded"/>
488 <xs:element name="cross" type="CROSS" minOccurs="0" maxOccurs="unbounded"/>
489 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
490 </xs:sequence>
491 <xs:attribute name="name" type="xs:string" use="required"/>
492 <xs:attribute name="key" type="xs:string" use="required"/>
493 <xs:attribute name="alias" type="xs:string"/>
494 <xs:attribute name="excluded" type="xs:boolean" default="false"/>
495 <xs:attribute name="excludedReason" type="xs:string"/>
496 </xs:complexType>
497
498 <xs:complexType name="COVERGROUP_COVERAGE">
499 <xs:sequence>
500 <xs:element name="cgInstance" type="CGINSTANCE" minOccurs="0" maxOccurs="unbounded"/>
501 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
502 </xs:sequence>
503 <xs:attributeGroup ref="metricAttributes"/>
504 </xs:complexType>
505
506 <!-- Instances -->
507 <xs:complexType name="INSTANCE_COVERAGE">
508 <xs:sequence>
509 <xs:element name="designParameter" type="NAME_VALUE" minOccurs="0" maxOccurs="unbounded"/>
510 <xs:element name="id" type="STATEMENT_ID"/>
511 <xs:element name="toggleCoverage" type="TOGGLE_COVERAGE" minOccurs="0" maxOccurs="unbounded"/>
512 <xs:element name="blockCoverage" type="BLOCK_COVERAGE" minOccurs="0" maxOccurs="unbounded"/>
513 <xs:element name="conditionCoverage" type="CONDITION_COVERAGE" minOccurs="0" maxOccurs="unbounded"/>
514 <xs:element name="branchCoverage" type="BRANCH_COVERAGE" minOccurs="0" maxOccurs="unbounded"/>
515 <xs:element name="fsmCoverage" type="FSM_COVERAGE" minOccurs="0" maxOccurs="unbounded"/>
516 <xs:element name="assertionCoverage" type="ASSERTION_COVERAGE" minOccurs="0" maxOccurs="unbounded"/>
517 <xs:element name="covergroupCoverage" type="COVERGROUP_COVERAGE" minOccurs="0" maxOccurs="unbounded"/>
518 <xs:element name="userAttr" type="USER_ATTR" minOccurs="0" maxOccurs="unbounded"/>
519 </xs:sequence>
520 <xs:attribute name="name" type="xs:string" use="required"/>
521 <xs:attribute name="key" type="xs:string" use="required"/>
522 <xs:attribute name="instanceId" type="xs:integer"/>
523 <xs:attribute name="alias" type="xs:string"/>
524 <xs:attribute name="moduleName" type="xs:string"/>
525 <xs:attribute name="parentInstanceId" type="xs:integer"/>
526 </xs:complexType>
527
528 <!-- Root -->
529 <xs:element name="UCIS">
530 <xs:complexType>
531 <xs:sequence>
532 <xs:element name="sourceFiles" type="SOURCE_FILE" minOccurs="1" maxOccurs="unbounded"/>
533 <xs:element name="historyNodes" type="HISTORY_NODE" minOccurs="1" maxOccurs="unbounded"/>
534 <xs:element name="instanceCoverages" type="INSTANCE_COVERAGE" minOccurs="1" maxOccurs="unbounded"/>
535 </xs:sequence>
536 <xs:attribute name="ucisVersion" type="xs:string" use="required"/>
537 <xs:attribute name="writtenBy" type="xs:string" use="required"/>
538 <xs:attribute name="writtenTime" type="xs:dateTime" use="required"/>
539 </xs:complexType>
540 </xs:element>
541</xs:schema>