11export PLATFORM = asap7
22export PROCESS = 7
3+ export ASAP7_USE_VT ?= RVT
34
45ifeq ($(LIB_MODEL ) ,)
56 export LIB_MODEL = NLDM
@@ -8,61 +9,6 @@ export LIB_DIR ?= $(PLATFORM_DIR)/lib/$(LIB_MODEL)
89
910# Library Setup variable
1011export TECH_LEF = $(PLATFORM_DIR ) /lef/asap7_tech_1x_201209.lef
11- export SC_LEF = $(PLATFORM_DIR ) /lef/asap7sc7p5t_28_R_1x_220121a.lef
12-
13- export GDS_FILES = $(PLATFORM_DIR ) /gds/asap7sc7p5t_28_R_220121a.gds \
14- $(ADDITIONAL_GDS )
15-
16- export BC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_RVT_FF_nldm_211120.lib.gz \
17- $(LIB_DIR ) /asap7sc7p5t_INVBUF_RVT_FF_nldm_220122.lib.gz \
18- $(LIB_DIR ) /asap7sc7p5t_OA_RVT_FF_nldm_211120.lib.gz \
19- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_RVT_FF_nldm_211120.lib.gz \
20- $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib \
21- $(BC_ADDITIONAL_LIBS )
22-
23- export BC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_FF_nldm_220123.lib
24-
25- export BC_CCS_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_RVT_FF_ccs_211120.lib.gz \
26- $(LIB_DIR ) /asap7sc7p5t_INVBUF_RVT_FF_ccs_220122.lib.gz \
27- $(LIB_DIR ) /asap7sc7p5t_OA_RVT_FF_ccs_211120.lib.gz \
28- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_RVT_FF_ccs_211120.lib.gz \
29- $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_FF_ccs_220123.lib \
30- $(BC_ADDITIONAL_LIBS )
31-
32- export BC_CCS_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_FF_ccs_220123.lib
33-
34- export WC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_RVT_SS_nldm_211120.lib.gz \
35- $(LIB_DIR ) /asap7sc7p5t_INVBUF_RVT_SS_nldm_220122.lib.gz \
36- $(LIB_DIR ) /asap7sc7p5t_OA_RVT_SS_nldm_211120.lib.gz \
37- $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_SS_nldm_220123.lib \
38- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_RVT_SS_nldm_211120.lib.gz \
39- $(WC_ADDITIONAL_LIBS )
40-
41- export WC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_SS_nldm_220123.lib
42-
43- export TC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_RVT_TT_nldm_211120.lib.gz \
44- $(LIB_DIR ) /asap7sc7p5t_INVBUF_RVT_TT_nldm_220122.lib.gz \
45- $(LIB_DIR ) /asap7sc7p5t_OA_RVT_TT_nldm_211120.lib.gz \
46- $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_TT_nldm_220123.lib \
47- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_RVT_TT_nldm_211120.lib.gz \
48- $(TC_ADDITIONAL_LIBS )
49-
50- export TC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_RVT_TT_nldm_220123.lib
51-
52- ifdef CLUSTER_FLOPS
53- # Add the multi-bit FF for clustering. These are single corner libraries.
54- export ADDITIONAL_LIBS += $(LIB_DIR ) /asap7sc7p5t_DFFHQNH2V2X_RVT_TT_nldm_FAKE.lib \
55- $(LIB_DIR ) /asap7sc7p5t_DFFHQNV2X_RVT_TT_nldm_FAKE.lib
56- # $(LIB_DIR)/asap7sc7p5t_DFFHQNV4X_RVT_TT_nldm_FAKE.lib
57-
58- export ADDITIONAL_LEFS += $(PLATFORM_DIR ) /lef/asap7sc7p5t_DFFHQNH2V2X.lef \
59- $(PLATFORM_DIR ) /lef/asap7sc7p5t_DFFHQNV2X.lef
60- # $(PLATFORM_DIR)/lef/asap7sc7p5t_DFFHQNV4X.lef
61- export ADDITIONAL_SITES += asap7sc7p5t_pg
62- export GDS_ALLOW_EMPTY ?= DFFHQN[VH][24].*
63- endif
64-
65-
6612
6713export BC_TEMPERATURE = 25C
6814export TC_TEMPERATURE = 0C
@@ -77,24 +23,11 @@ export WC_VOLTAGE = 0.63
7723export DONT_USE_CELLS = *x1p*_ASAP7* *xp*_ASAP7*
7824export DONT_USE_CELLS += SDF* ICG*
7925
80- # Yosys mapping files
81- export LATCH_MAP_FILE = $(PLATFORM_DIR ) /yoSys/cells_latch_R.v
82- export CLKGATE_MAP_FILE = $(PLATFORM_DIR ) /yoSys/cells_clkgate_R.v
83- export ADDER_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_adders_R.v
8426export SYNTH_MINIMUM_KEEP_SIZE ?= 1000
8527
86- export ABC_DRIVER_CELL = BUFx2_ASAP7_75t_R
87-
8828# BUF_X1, pin (A) = 0.974659. Arbitrarily multiply by 4
8929export ABC_LOAD_IN_FF = 3.898
9030
91- # Set the TIEHI/TIELO cells
92- # These are used in yosys synthesis to avoid logical 1/0's in the netlist
93- export TIEHI_CELL_AND_PORT = TIEHIx1_ASAP7_75t_R H
94- export TIELO_CELL_AND_PORT = TIELOx1_ASAP7_75t_R L
95-
96- # Used in synthesis
97- export MIN_BUF_CELL_AND_PORTS = BUFx2_ASAP7_75t_R A Y
9831
9932# Placement site for core cells
10033# This can be found in the technology lef
@@ -126,17 +59,6 @@ export PLACE_DENSITY ?= 0.60
12659# Endcap and Welltie cells
12760export TAPCELL_TCL ?= $(PLATFORM_DIR ) /openRoad/tapcell.tcl
12861
129- # Fill cells used in fill cell insertion
130- export FILL_CELLS ?= FILLERxp5_ASAP7_75t_R \
131- FILLER_ASAP7_75t_R \
132- DECAPx1_ASAP7_75t_R \
133- DECAPx2_ASAP7_75t_R \
134- DECAPx4_ASAP7_75t_R \
135- DECAPx6_ASAP7_75t_R \
136- DECAPx10_ASAP7_75t_R
137-
138- export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_R
139-
14062export SET_RC_TCL = $(PLATFORM_DIR ) /setRC.tcl
14163
14264# Route options
@@ -154,102 +76,90 @@ export KLAYOUT_DRC_FILE = $(PLATFORM_DIR)/drc/asap7.lydrc
15476export RCX_RULES = $(PLATFORM_DIR ) /rcx_patterns.rules
15577
15678# XS - defining function for using LVT
157- ifeq ($(ASAP7_USELVT ) , 1)
158- export TIEHI_CELL_AND_PORT = TIEHIx1_ASAP7_75t_L H
159- export TIELO_CELL_AND_PORT = TIELOx1_ASAP7_75t_L L
160-
161- export MIN_BUF_CELL_AND_PORTS = BUFx2_ASAP7_75t_L A Y
162-
163- export HOLD_BUF_CELL = BUFx2_ASAP7_75t_L
164-
165- export ABC_DRIVER_CELL = BUFx2_ASAP7_75t_L
166-
167- export FILL_CELLS ?= FILLERxp5_ASAP7_75t_L
168-
169- export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_L
170-
171- export GDS_FILES = $(PLATFORM_DIR ) /gds/asap7sc7p5t_28_L_220121a.gds \
172- $(ADDITIONAL_GDS )
173-
174- export SC_LEF = $(PLATFORM_DIR ) /lef/asap7sc7p5t_28_L_1x_220121a.lef
175-
176- export LATCH_MAP_FILE = $(PLATFORM_DIR ) /yoSys/cells_latch_L.v
177- export CLKGATE_MAP_FILE = $(PLATFORM_DIR ) /yoSys/cells_clkgate_L.v
178- export ADDER_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_adders_L.v
179-
180- export BC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_LVT_FF_nldm_220123.lib
181-
182- export BC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_LVT_FF_nldm_211120.lib.gz \
183- $(LIB_DIR ) /asap7sc7p5t_INVBUF_LVT_FF_nldm_220122.lib.gz \
184- $(LIB_DIR ) /asap7sc7p5t_OA_LVT_FF_nldm_211120.lib.gz \
185- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_LVT_FF_nldm_211120.lib.gz \
186- $(LIB_DIR ) /asap7sc7p5t_SEQ_LVT_FF_nldm_220123.lib
187-
188- export WC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_LVT_SS_nldm_220123.lib
189-
190- export WC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_LVT_SS_nldm_211120.lib.gz \
191- $(LIB_DIR ) /asap7sc7p5t_INVBUF_LVT_SS_nldm_220122.lib.gz \
192- $(LIB_DIR ) /asap7sc7p5t_OA_LVT_SS_nldm_211120.lib.gz \
193- $(LIB_DIR ) /asap7sc7p5t_SEQ_LVT_SS_nldm_220123.lib \
194- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_LVT_SS_nldm_211120.lib.gz
195-
196- export TC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_LVT_TT_nldm_220123.lib
79+ ifeq ($(ASAP7_USE_VT ) , LVT)
80+ export VT_TAG = L
81+ else ifeq ($(ASAP7_USE_VT), SLVT)
82+ export VT_TAG = SL
83+ else
84+ # Default to RVT
85+ export VT_TAG = R
86+ endif
19787
198- export TC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_LVT_TT_nldm_211120.lib.gz \
199- $(LIB_DIR ) /asap7sc7p5t_INVBUF_LVT_TT_nldm_220122.lib.gz \
200- $(LIB_DIR ) /asap7sc7p5t_OA_LVT_TT_nldm_211120.lib.gz \
201- $(LIB_DIR ) /asap7sc7p5t_SEQ_LVT_TT_nldm_220123.lib \
202- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_LVT_TT_nldm_211120.lib.gz
88+ # Set the TIEHI/TIELO cells
89+ # These are used in yosys synthesis to avoid logical 1/0's in the netlist
90+ export TIEHI_CELL_AND_PORT ?= TIEHIx1_ASAP7_75t_$(VT_TAG ) H
91+ export TIELO_CELL_AND_PORT ?= TIELOx1_ASAP7_75t_$(VT_TAG ) L
20392
204- endif
93+ # Used in synthesis
94+ export MIN_BUF_CELL_AND_PORTS ?= BUFx2_ASAP7_75t_$(VT_TAG ) A Y
20595
206- ifeq ($(ASAP7_USESLVT ) , 1)
207- export TIEHI_CELL_AND_PORT = TIEHIx1_ASAP7_75t_SL H
208- export TIELO_CELL_AND_PORT = TIELOx1_ASAP7_75t_SL L
96+ export HOLD_BUF_CELL ?= BUFx2_ASAP7_75t_$(VT_TAG )
20997
210- export MIN_BUF_CELL_AND_PORTS = BUFx2_ASAP7_75t_SL A Y
98+ export ABC_DRIVER_CELL ?= BUFx2_ASAP7_75t_ $( VT_TAG )
21199
212- export HOLD_BUF_CELL = BUFx2_ASAP7_75t_SL
100+ # Fill cells used in fill cell insertion
101+ export FILL_CELLS ?= FILLERxp5_ASAP7_75t_$(VT_TAG ) \
102+ FILLER_ASAP7_75t_$(VT_TAG ) \
103+ DECAPx1_ASAP7_75t_$(VT_TAG ) \
104+ DECAPx2_ASAP7_75t_$(VT_TAG ) \
105+ DECAPx4_ASAP7_75t_$(VT_TAG ) \
106+ DECAPx6_ASAP7_75t_$(VT_TAG ) \
107+ DECAPx10_ASAP7_75t_$(VT_TAG )
213108
214- export ABC_DRIVER_CELL = BUFx2_ASAP7_75t_SL
109+ export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_ $( VT_TAG )
215110
216- export FILL_CELLS ?= FILLERxp5_ASAP7_75t_SL
111+ export GDS_FILES ?= $(PLATFORM_DIR ) /gds/asap7sc7p5t_28_$(VT_TAG ) _220121a.gds \
112+ $(ADDITIONAL_GDS )
217113
218- export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_SL
114+ export SC_LEF ?= $( PLATFORM_DIR ) /lef/asap7sc7p5t_28_ $( VT_TAG ) _1x_220121a.lef
219115
220- export GDS_FILES = $(PLATFORM_DIR ) /gds/asap7sc7p5t_28_SL_220121a.gds \
221- $(ADDITIONAL_GDS )
116+ # Yosys mapping files
117+ export LATCH_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_latch_$(VT_TAG ) .v
118+ export CLKGATE_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_clkgate_$(VT_TAG ) .v
119+ export ADDER_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_adders_$(VT_TAG ) .v
222120
223- export SC_LEF = $(PLATFORM_DIR ) /lef/asap7sc7p5t_28_SL_1x_220121a.lef
121+ export BC_NLDM_DFF_LIB_FILE ? = $(LIB_DIR ) /asap7sc7p5t_SEQ_ $( VT_TAG ) VT_FF_nldm_220123.lib
224122
225- export LATCH_MAP_FILE = $(PLATFORM_DIR ) /yoSys/cells_latch_SL.v
226- export CLKGATE_MAP_FILE = $(PLATFORM_DIR ) /yoSys/cells_clkgate_SL.v
227- export ADDER_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_adders_SL.v
123+ export BC_NLDM_LIB_FILES ?= $(LIB_DIR ) /asap7sc7p5t_AO_$(VT_TAG ) VT_FF_nldm_211120.lib.gz \
124+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_$(VT_TAG ) VT_FF_nldm_220122.lib.gz \
125+ $(LIB_DIR ) /asap7sc7p5t_OA_$(VT_TAG ) VT_FF_nldm_211120.lib.gz \
126+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_$(VT_TAG ) VT_FF_nldm_211120.lib.gz \
127+ $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_FF_nldm_220123.lib
228128
229- export BC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_FF_nldm_220123.lib
129+ export BC_CCS_LIB_FILES ?= $(LIB_DIR ) /asap7sc7p5t_AO_$(VT_TAG ) VT_FF_ccs_211120.lib.gz \
130+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_$(VT_TAG ) VT_FF_ccs_220122.lib.gz \
131+ $(LIB_DIR ) /asap7sc7p5t_OA_$(VT_TAG ) VT_FF_ccs_211120.lib.gz \
132+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_$(VT_TAG ) VT_FF_ccs_211120.lib.gz \
133+ $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_FF_ccs_220123.lib \
134+ $(BC_ADDITIONAL_LIBS )
230135
231- export BC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_SLVT_FF_nldm_211120.lib.gz \
232- $(LIB_DIR ) /asap7sc7p5t_INVBUF_SLVT_FF_nldm_220122.lib.gz \
233- $(LIB_DIR ) /asap7sc7p5t_OA_SLVT_FF_nldm_211120.lib.gz \
234- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_SLVT_FF_nldm_211120.lib.gz \
235- $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_FF_nldm_220123.lib
136+ export BC_CCS_DFF_LIB_FILE ?= $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_FF_ccs_220123.lib
236137
237- export WC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_SS_nldm_220123 .lib
138+ export WC_NLDM_DFF_LIB_FILE ? = $(LIB_DIR ) /asap7sc7p5t_SEQ_ $( VT_TAG ) VT_SS_nldm_220123 .lib
238139
239- export WC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_SLVT_SS_nldm_211120 .lib.gz \
240- $(LIB_DIR ) /asap7sc7p5t_INVBUF_SLVT_SS_nldm_220122 .lib.gz \
241- $(LIB_DIR ) /asap7sc7p5t_OA_SLVT_SS_nldm_211120 .lib.gz \
242- $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_SS_nldm_220123 .lib \
243- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_SLVT_SS_nldm_211120 .lib.gz
140+ export WC_NLDM_LIB_FILES ? = $(LIB_DIR ) /asap7sc7p5t_AO_ $( VT_TAG ) VT_SS_nldm_211120 .lib.gz \
141+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_ $( VT_TAG ) VT_SS_nldm_220122 .lib.gz \
142+ $(LIB_DIR ) /asap7sc7p5t_OA_ $( VT_TAG ) VT_SS_nldm_211120 .lib.gz \
143+ $(LIB_DIR ) /asap7sc7p5t_SEQ_ $( VT_TAG ) VT_SS_nldm_220123 .lib \
144+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_ $( VT_TAG ) VT_SS_nldm_211120 .lib.gz
244145
245- export TC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_TT_nldm_220123 .lib
146+ export TC_NLDM_DFF_LIB_FILE ? = $(LIB_DIR ) /asap7sc7p5t_SEQ_ $( VT_TAG ) VT_TT_nldm_220123 .lib
246147
247- export TC_NLDM_LIB_FILES = $(LIB_DIR ) /asap7sc7p5t_AO_SLVT_TT_nldm_211120 .lib.gz \
248- $(LIB_DIR ) /asap7sc7p5t_INVBUF_SLVT_TT_nldm_220122 .lib.gz \
249- $(LIB_DIR ) /asap7sc7p5t_OA_SLVT_TT_nldm_211120 .lib.gz \
250- $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_TT_nldm_220123 .lib \
251- $(LIB_DIR ) /asap7sc7p5t_SIMPLE_SLVT_TT_nldm_211120 .lib.gz
148+ export TC_NLDM_LIB_FILES ? = $(LIB_DIR ) /asap7sc7p5t_AO_ $( VT_TAG ) VT_TT_nldm_211120 .lib.gz \
149+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_ $( VT_TAG ) VT_TT_nldm_220122 .lib.gz \
150+ $(LIB_DIR ) /asap7sc7p5t_OA_ $( VT_TAG ) VT_TT_nldm_211120 .lib.gz \
151+ $(LIB_DIR ) /asap7sc7p5t_SEQ_ $( VT_TAG ) VT_TT_nldm_220123 .lib \
152+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_ $( VT_TAG ) VT_TT_nldm_211120 .lib.gz
252153
154+ ifdef CLUSTER_FLOPS
155+ # Add the multi-bit FF for clustering. These are single corner libraries.
156+ export ADDITIONAL_LIBS += $(LIB_DIR ) /asap7sc7p5t_DFFHQNH2V2X_$(VT_TAG ) VT_TT_nldm_FAKE.lib \
157+ $(LIB_DIR ) /asap7sc7p5t_DFFHQNV2X_$(VT_TAG ) VT_TT_nldm_FAKE.lib
158+
159+ export ADDITIONAL_LEFS += $(PLATFORM_DIR ) /lef/asap7sc7p5t_DFFHQNH2V2X.lef \
160+ $(PLATFORM_DIR ) /lef/asap7sc7p5t_DFFHQNV2X.lef
161+ export ADDITIONAL_SITES += asap7sc7p5t_pg
162+ export GDS_ALLOW_EMPTY ?= DFFHQN[VH][24].*
253163endif
254164
255165# Dont use SC library based on CORNER selection
0 commit comments