Repository navigation
Expand file tree
/
Copy pathnetlist.xml
More file actions
123 lines (115 loc) · 4.95 KB
/
Copy pathnetlist.xml
File metadata and controls
123 lines (115 loc) · 4.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!--
=======================================================================
Copyright 2025 UCLA NanoCAD Laboratory
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
=======================================================================
Filename: netlist.xml
Author: Alexander Graening
Affiliation: University of California, Los Angeles
Email: agraening@ucla.edu
Netlist Format:
- IO Definition Reference: IO type is defined with the type parameter.
This name must reference an IO type in the io definition file.
- Directionality: If the IO type referenced from the io definition
file is defined as a bidirectional IO, there is no sense of direction.
Alternatively, if the IO is not defined as bidirectional, the
connections are directional with block0 as the TX block and block1
as the RX block.
- Area for Bidirectional Cells: If there is a bidirectional IO type
between blocks in different technology nodes it is possible the
TX and RX sides will have different areas despite being functionally
equivalent. In this case, the area of the bidirectional IO follows
the same format as above, block0 will have the area defined as TX
area in the IO definition.
- Black Box Count: This is the number of instances of the IO. This will
override the bandwidth calculation, so ignore leave this as the empty
string if you want the number of instances to be calculated from the
bandwidth and IO definition.
- Bandwidth: The bandwidth is defined in G-bit/s. This is the bandwidth
of the connection in one direction for a directional connection. If
the IO is bidirectional, this is the combined bandwidth in both
directions. This is assumed to be symmetric so 10G-bit/s would mean
5G-bit/s in each direction.
- Average Bandwidth Utilization: This is the average bandwidth utilization
of the connection. This is used for the power calculation and should be
a number between 0 and 1.
Description: Define connectivity between blocks for an example design. This
has some extra explanation below and can be used as a template for
defining your own designs.
Note that each parameter is required to be set to avoid throwing an error. Either
the bb_count or the bandwidth must be defined. If bb_count is defined, the
value set for bandwidth does not matter. To use the bandwidth calculation,
set bb_count="".
A list of required parameters is below:
- type
- block0
- block1
- bb_count
- bandwidth
- average_bandwidth_utilization
-->
<netlist>
<!-- UCIe_standard is bidirectional. -->
<net type="UCIe_standard"
block0="CPU"
block1="MEM"
bb_count=""
bandwidth="64"
average_bandwidth_utilization="0.5">
</net>
<!-- GPIO is not bidirectional. Defining connections from CPU to MEM. -->
<net type="GPIO"
block0="CPU"
block1="MEM"
bb_count=""
bandwidth="100"
average_bandwidth_utilization="0.5">
</net>
<!-- GPIO is not bidirectional. Now defining connections the opposite direction from MEM to CPU. -->
<net type="GPIO"
block0="MEM"
block1="CPU"
bb_count=""
bandwidth="100"
average_bandwidth_utilization="0.5">
</net>
<net type="UCIe_standard"
block0="CPU"
block1="GPU"
bb_count=""
bandwidth="128"
average_bandwidth_utilization="0.5">
</net>
<!-- GPIO is not bidirectional. Defining connections from CPU to GPU. -->
<net type="GPIO"
block0="CPU"
block1="GPU"
bb_count=""
bandwidth="10"
average_bandwidth_utilization="0.5">
</net>
<!-- GPIO is not bidirectional. Now defining connections the opposite direction from GPU to CPU. -->
<net type="GPIO"
block0="GPU"
block1="CPU"
bb_count=""
bandwidth="10"
average_bandwidth_utilization="0.5">
</net>
<!-- UCIe_standard is bidirectional. -->
<net type="UCIe_standard"
block0="GPU"
block1="MEM"
bb_count=""
bandwidth="64"
average_bandwidth_utilization="0.5">
</net>
</netlist>