Project

General

Profile

Chip Package Co-Simulation » History » Version 1

jun chen, 03/29/2025 10:03 PM

1 1 jun chen
# Chip Package Co-Simulation
2
3
## Overall Flow
4
```
5
1. Import Chip Design Data
6
    1.Def-in flow
7
    2.DB-in flow
8
2. Import Package Data
9
    1.Import Package SPICE netlist
10
    2.Import chip-package port mapping file
11
3. Run chip-package co-simulation
12
    1.DC simulation: static IR analysis
13
    2.Transient simulation: dynamic IR analysis
14
```
15
16
## Tcl Commands
17
18
### 1. import_package_model
19
```
20
import—package—model  [-spice—netlist  <package—netlist—file>]  [-port—name—map  <chip—to—package—port
21
—name—map—csv>] [-reset]
22
```
23
24
Import package model components including a package SPICE netlist file and a chip-to-package port name map CSV file.
25
26
#### Examples
27
28
1. Import package SPICE netlist file pkg.sp.
29
30
```
31
import—package—model -spice—netlist pkg.sp
32
```
33
34
2. Import chip-to-package port name map CSV file.
35
36
```
37
import—package—model -port—name—map chip-to-package-port-name-map.csv
38
```
39
40
chip-to-package-port-name-map.csv, saying, PLOC file, is a column-based CSV text file. We support a two-column PLOC file:  
41
* the 1st column contains chip port names (i.e. source node);
42
* the 2nd column contains package port names. 
43
  chip-to-package-port-name-map.csv example:
44
45
```
46
VDD8—15388—2591210,Vo·T—0 
47
VDD8—15388—923,Vo·T—1 
48
VDD8—l290l—2591210,Vo·T—2 
49
VDD8—l290l—923,Vo·T—3
50
......
51
```
52
53
3. Remove all old results created by last import_package_model and then import package SPICE netlist file pkg.sp and chip-to-package port map file chip-to-package-port-name-map.csv
54
Note: -reset clean up all old results before importing anything.
55
56
```
57
import—package—model -spice—netlist pkg.sp -port—name—map chip-to-package-port-name-map.csv -r eset
58
```
59
### 2. report_package
60
61
report—package
62
63
Report package netlist statistics, such as the number of resistors(R), capacitors(C), inductors(L), mutual inductors(K), voltage sources (V), etc..
64
65
Print the records to console. For example,
66
67
```
68
% report—package      髻C = 6
69
髻K = 190653
70
髻l . = 618
71
髻R = 292
72
髻V = 2
73
```
74
report_package also does package static diagnostic before running the chip-package co-simulation. It checks following items:
75
76
1.Connection between package and chip. For example, short/open bump or pad.
77
2.Package internal short check.
78
79
For example, regression case ut_run/ir/package_flow/qa_static_ir_with_package generate following package diagnostic report:
80
81
![](clipboard-202503292156-b2xu4.png)
82
![](clipboard-202503292156-qa0bl.png)
83
84
85
### 3.set_package_port_current* 
86
87
**Caution:** set_package_port_current is a hidden Tcl command as part of the built-in static IR drop Tcl iteration procedure: work/src/emirTcl/pkgIteration.tcl
88
![](clipboard-202503292156-jfdnr.png)
89
90
```
91
set—package—port—current -type [staticldynamic] -file <supply—location—current—file> -reset
92
```
93
Load the output dumped by continue_analyze_power_network -report_supply_location_current.
94
95
* -reset removes last package port current data before setting new package port current data.  
96
* type static is default for static IR drop with package.
97
* -type dynamic is used for dynamic IR drop with package. (Deprecated since 2022/7/25) 
98
* <supply_location_current_file> is created by VP Tcl commands as follows:
99
100
>  Static IR drop
101
102
continue—analy江e—power—network  -report—supply—location—current  >  supply—location—current—f ile.static.txt
103
104
> Dynamic IR drop (Deprecated since 2022/7/25)
105
106
continue—analy江e—power—network -report—supply—location—current -simtime 0.5 > supply—locat ion—current—file.dynamic.txt
107
108
### 4. run_package_simulation*
109
**Caution:** run_package_simulation is a hidden Tcl command as part of the built-in static IR drop Tcl iteration procedure: work/src/emirTcl/pkgIteration.tcl
110
You should NOT use it directly in customer cases. See also set_package_port_current.
111
```
112
run—package—simulation -type [staticldynamic] -file <supply—location—current—file> -reset
113
```
114
Run package SPICE simulation.
115
116
* -reset removes last package port current data before setting new package port current data.
117
* -type static is default for static package SPICE simulation.
118
* -type dynamic is used for dynamic package SPICE simulation. (Deprecated since 2022/07/25)
119
120
### 5. report_package_voltage*
121
**Caution:** report_package_voltage is a hidden Tcl command as part of the built-in static IR drop Tcl iteration procedure: work/src/emirTcl/pkgIteration.tcl
122
You should NOT use it directly in customer cases. See also set_package_port_current.
123
```
124
report—package—voltage
125
```
126
127
Report package port voltages to console for both static and dynamic IR drop analysis. Report contents are a group of Tcl command set_supply_location_voltage .
128
Redirect the output to a Tcl file and source the Tcl file for next IR drop analysis iteration.
129
130
**Examples**
131
132
```
133
% report—package—voltage > "pkg—port—voltage.tcl" 
134
% source "pkg—port—voltage.tcl"            
135
髻 next IR drop iteration
136
```
137
138
pkg_port_voltage.tcl looks like
139
140
```
141
set—supply—location—voltage -port—name VDD8—15388—2591210 -voltage—value 1.08 
142
set—supply—location—voltage -port—name VDD8—15388—923 -voltage—value 1.08 
143
set—supply—location—voltage -port—name VDD8—l290l—2591210 -voltage—value 1.08 
144
set—supply—location—voltage -port—name VDD8—l290l—923 -voltage—value 1.08
145
......
146
```
147
148
Chip updates supply node voltage with values given by -voltage_value and continue to analyze the power network.
149
150
### 6.Report Generation
151
152
For either VDD or VSS analysis, following report commands dumps the IR drop/bounce reports for dynamic IR with package analysis.
153
154
```
155
report—misc -dynamic—ir vdd—inst—dvd.rpt  髻 Generate instance-based IR report
156
report—misc -ploc—current vdd—ploc—current.rpt  髻 Generate current waveforms for every supply loca tion
157
report—misc -ploc—voltage vdd—ploc—voltage.rpt  髻 Generate voltage waveforms for every supply loca tion
158
report—supply—location—current -output—file vdd—supply—current.inc -format spice 髻 Generate curre nt  waveform  in  SPICF  PWl  .  current  source  format  for  every  supply  location report—supply—location—current -output—file vdd—supply—sumup.rpt -sum—up 髻 Generate the total cur rent waveform of VDD or VSS
159
```
160
161
**Typical Supply Node Voltage/Current Waveform Example - Dynamic IR with Package**
162
The waveform files are generated by report_supply_location_current and report_misc .
163
1.Supply node voltage waveform
164
![](clipboard-202503292201-8zgl9.png)
165
2.Supply node current waveform
166
![](clipboard-202503292201-cgn2k.png)
167
168
169
## Static IR Drop with Package
170
171
After importing chip and package design data, static IR drop with package analysis only need an extra -with_package option.
172
173
* VDD static anlaysis: analyze_power_network -net VDD -with_package  
174
* VSS static analysis: analyze_power_network -net VDD -with_package
175
176
Regression case: ut_run/ir/package_flow/qa_static_ir_with_package
177
178
## Dynamic IR Drop with Package
179
Since 2022/07/25, -with_package is deprecated for dynamic IR drop with package.
180
For package flow, only need to add following Tcl command to no package dynamic IR drop flow:
181
182
```
183
import—package—model -spice—netslit <package—top—spice—netlist—file—name> \
184
	-port—name—map <two—column—csv—Pl.oC—file—name> \
185
	-integ—method be -skip—calc—ix -skip—calc—source—i -package—dim 10000
186
```
187
188
Regression case: ut_run/ir/package_flow/qa_dynamic_ir_vector_base_with_L0_newflow
189
190
191
## TODO (202208-01)
192
193
1. Multi-solver solution: GSS solver for chip matrix and spsolver for package matrix.
194
2. Combined PG package flow