Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 23078f4

Browse files
committed
initial cace support
1 parent 658e44a commit 23078f4

File tree

5 files changed

+95
-61
lines changed

5 files changed

+95
-61
lines changed

cace/scripts/run_lvs.tcl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Generic Tcl script to run LVS through CACE
2+
# to use this script with any block, just add any extra needed libraries
3+
4+
5+
if {[catch {set PDK_ROOT $::env(PDK_ROOT)}]} {set PDK_ROOT /usr/local/share/pdk}
6+
if {[catch {set PDK $::env(PDK)}]} {set PDK sky130A}
7+
8+
set pdklib ${PDK_ROOT}/${PDK}
9+
set techlibs ${pdklib}/libs.tech
10+
set reflibs ${pdklib}/libs.ref
11+
#CACE_ROOT is an env vairable that's set during the proccess of running CACE
12+
set CACE_ROOT $::env(CACE_ROOT)
13+
14+
set setupfile ${techlibs}/netgen/${PDK}_setup.tcl
15+
set hvlib ${reflibs}/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice
16+
set hdlib ${reflibs}/sky130_fd_sc_hd/spice/sky130_fd_sc_hd.spice
17+
18+
#ipname is set to the ip directory name
19+
set ipname [file tail $CACE_ROOT]
20+
21+
set circuit1 [readnet spice $CACE_ROOT/netlist/layout/${ipname}.spice]
22+
set circuit2 [readnet spice $hvlib]
23+
24+
25+
#readnet spice $hdlib $circuit2
26+
readnet spice $CACE_ROOT/netlist/schematic/${ipname}.spice $circuit2
27+
28+
#debug on
29+
30+
lvs "$circuit1 ${ipname}" "$circuit2 ${ipname}" $setupfile ${ipname}_comp.out -json

cace/scripts/run_project_lvs.tcl

Lines changed: 0 additions & 21 deletions
This file was deleted.

cace/sky130_ef_ip__rdac3v_8bit.yaml

Lines changed: 63 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ name: sky130_ef_ip__rdac3v_8bit
66
description: 8-bit DAC with 3.3V supply and enable input
77
commit: N/A
88
PDK: sky130A
9-
cace_format: 5.0
9+
cace_format: 5.2
1010

1111
authorship:
1212
designer: Tim Edwards
@@ -16,17 +16,16 @@ authorship:
1616

1717
paths:
1818
root: ..
19-
documentation: doc
19+
documentation: docs
2020
schematic: xschem
2121
magic: mag
2222
layout: gds
2323
netlist: netlist
2424

2525
dependencies:
2626
sky130_ef_ip__samplehold:
27-
path: ../dependencies/
27+
path: ../
2828
repository: https://github.com/RTimothyEdwards/sky130_ef_ip__samplehold
29-
commit: N/A
3029

3130
pins:
3231
b7:0:
@@ -147,7 +146,7 @@ default_conditions:
147146
typical: tt
148147
maximum: ff
149148

150-
electrical_parameters:
149+
parameters:
151150
Idd_enabled:
152151
description: Current draw through analog supply, DAC enabled
153152
display: Idd
@@ -160,7 +159,7 @@ electrical_parameters:
160159
maximum:
161160
value: '250'
162161
fail: true
163-
simulate:
162+
tool:
164163
ngspice:
165164
template: dccurrent_vdd.spice
166165
format: ascii
@@ -193,7 +192,7 @@ electrical_parameters:
193192
maximum:
194193
value: '250'
195194
fail: true
196-
simulate:
195+
tool:
197196
ngspice:
198197
template: dccurrent_vdd.spice
199198
format: ascii
@@ -228,7 +227,7 @@ electrical_parameters:
228227
maximum:
229228
value: '2'
230229
fail: true
231-
simulate:
230+
tool:
232231
ngspice:
233232
template: voltage_output.spice
234233
format: ascii
@@ -267,7 +266,7 @@ electrical_parameters:
267266
value: '2'
268267
fail: true
269268
measurement: std3p-below
270-
simulate:
269+
tool:
271270
ngspice:
272271
template: voltage_output.spice
273272
collate: iterations
@@ -311,7 +310,7 @@ electrical_parameters:
311310
maximum:
312311
value: '2'
313312
fail: true
314-
simulate:
313+
tool:
315314
ngspice:
316315
template: voltage_output.spice
317316
collate: b[7:0]
@@ -360,7 +359,7 @@ electrical_parameters:
360359
maximum:
361360
value: '0.01'
362361
fail: true
363-
simulate:
362+
tool:
364363
ngspice:
365364
template: voltage_output.spice
366365
format: ascii
@@ -400,7 +399,7 @@ electrical_parameters:
400399
maximum:
401400
value: '0.02'
402401
fail: true
403-
simulate:
402+
tool:
404403
ngspice:
405404
template: voltage_output.spice
406405
collate: b[7:0]
@@ -434,7 +433,7 @@ electrical_parameters:
434433
description: Digital sine wave transient response
435434
display: out
436435
unit: V
437-
simulate:
436+
tool:
438437
ngspice:
439438
template: transient_sine.spice
440439
format: ascii
@@ -469,31 +468,57 @@ electrical_parameters:
469468
corner:
470469
typical: tt
471470

472-
physical_parameters:
473-
area:
474-
description: Total circuit layout area
475-
display: area
476-
unit: µm²
471+
magic_area:
477472
spec:
478-
maximum:
479-
value: '50000'
480-
fail: true
481-
evaluate: cace_area
482-
LVS_errors:
483-
description: LVS errors
484-
display: LVS errors
473+
area:
474+
display: Area
475+
description: Total circuit layout area
476+
unit: µm²
477+
maximum:
478+
value: 50000
479+
width:
480+
display: Width
481+
description: Total circuit layout width
482+
unit: µm
483+
maximum:
484+
value: any
485+
height:
486+
display: Height
487+
description: Total circuit layout height
488+
unit: µm
489+
maximum:
490+
value: any
491+
tool:
492+
magic_area
493+
494+
magic_drc:
495+
description: Magic DRC
496+
display: Magic DRC
485497
spec:
486-
maximum:
487-
value: '0'
488-
fail: true
489-
evaluate:
490-
cace_lvs:
491-
script: run_project_lvs.tcl
492-
DRC_errors:
493-
description: DRC errors
494-
display: DRC errors
498+
drc_errors:
499+
maximum:
500+
value: 0
501+
tool:
502+
magic_drc
503+
504+
netgen_lvs:
505+
description: Netgen LVS
506+
display: Netgen LVS
495507
spec:
496-
maximum:
497-
value: '0'
498-
fail: true
499-
evaluate: cace_drc
508+
lvs_errors:
509+
maximum:
510+
value: 0
511+
tool:
512+
netgen_lvs:
513+
script: run_lvs.tcl
514+
515+
klayout_drc_full:
516+
description: KLayout DRC full
517+
display: KLayout DRC full
518+
spec:
519+
drc_errors:
520+
maximum:
521+
value: 0
522+
tool:
523+
klayout_drc:
524+
args: ['-rd', 'feol=true', '-rd', 'beol=true', '-rd', 'offgrid=true']

mag/sky130_ef_ip__rdac3v_8bit.mag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1526,7 +1526,7 @@ array 0 7 2132 0 0 15270
15261526
timestamp 1653060931
15271527
transform 1 0 8398 0 1 322
15281528
box -20 -7 1049 15263
1529-
use follower_amp follower_amp_0 ../dependencies/sky130_ef_ip__samplehold/mag
1529+
use follower_amp follower_amp_0 ../../sky130_ef_ip__samplehold/mag
15301530
timestamp 1718228583
15311531
transform 0 1 12491 1 0 16882
15321532
box 0 0 4377 11129

xschem/sky130_ef_ip__rdac3v_8bit.sch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ C {devices/ipin.sym} -1040 -2410 0 0 {name=p14 lab=b7}
491491
C {devices/lab_pin.sym} -1050 -3150 0 0 {name=l39 sig_type=std_logic lab=vdd}
492492
C {devices/iopin.sym} -1030 -3250 0 1 {name=p15 lab=dvdd}
493493
C {devices/iopin.sym} -1030 -3220 0 1 {name=p16 lab=dvss}
494-
C {../dependencies/sky130_ef_ip__samplehold/xschem/follower_amp.sym} 1160 -2720 0 0 {name=x6}
494+
C {../../sky130_ef_ip__samplehold/xschem/follower_amp.sym} 1160 -2720 0 0 {name=x6}
495495
C {devices/lab_pin.sym} 940 -2730 0 0 {name=l2 sig_type=std_logic lab=out_unbuf}
496496
C {passtrans.sym} 690 -2470 0 0 {name=x15}
497497
C {dac_column_dummy.sym} 150 -2090 0 0 {name=x18}

0 commit comments

Comments
 (0)