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,91 @@ 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
197-
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
203-
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
20486endif
20587
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
209-
210- export MIN_BUF_CELL_AND_PORTS = BUFx2_ASAP7_75t_SL A Y
211-
212- export HOLD_BUF_CELL = BUFx2_ASAP7_75t_SL
213-
214- export ABC_DRIVER_CELL = BUFx2_ASAP7_75t_SL
215-
216- export FILL_CELLS ?= FILLERxp5_ASAP7_75t_SL
217-
218- export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_SL
219-
220- export GDS_FILES = $(PLATFORM_DIR ) /gds/asap7sc7p5t_28_SL_220121a.gds \
221- $(ADDITIONAL_GDS )
222-
223- export SC_LEF = $(PLATFORM_DIR ) /lef/asap7sc7p5t_28_SL_1x_220121a.lef
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
22492
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
93+ # Used in synthesis
94+ export MIN_BUF_CELL_AND_PORTS ?= BUFx2_ASAP7_75t_$(VT_TAG ) A Y
22895
229- export BC_NLDM_DFF_LIB_FILE = $( LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_FF_nldm_220123.lib
96+ export HOLD_BUF_CELL ?= BUFx2_ASAP7_75t_ $( VT_TAG )
23097
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
98+ export ABC_DRIVER_CELL ?= BUFx2_ASAP7_75t_$(VT_TAG )
23699
237- export WC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_SS_nldm_220123.lib
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 )
238108
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
109+ export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_$(VT_TAG )
244110
245- export TC_NLDM_DFF_LIB_FILE = $(LIB_DIR ) /asap7sc7p5t_SEQ_SLVT_TT_nldm_220123.lib
111+ # GDS_FILES has to be = vs. ?= because GDS_FILES gets set in the ORFS Makefile
112+ export GDS_FILES = $(PLATFORM_DIR ) /gds/asap7sc7p5t_28_$(VT_TAG ) _220121a.gds \
113+ $(ADDITIONAL_GDS )
246114
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
115+ export SC_LEF ?= $(PLATFORM_DIR ) /lef/asap7sc7p5t_28_$(VT_TAG ) _1x_220121a.lef
252116
117+ # Yosys mapping files
118+ export LATCH_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_latch_$(VT_TAG ) .v
119+ export CLKGATE_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_clkgate_$(VT_TAG ) .v
120+ export ADDER_MAP_FILE ?= $(PLATFORM_DIR ) /yoSys/cells_adders_$(VT_TAG ) .v
121+
122+ export BC_NLDM_DFF_LIB_FILE ?= $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_FF_nldm_220123.lib
123+
124+ export BC_NLDM_LIB_FILES ?= $(LIB_DIR ) /asap7sc7p5t_AO_$(VT_TAG ) VT_FF_nldm_211120.lib.gz \
125+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_$(VT_TAG ) VT_FF_nldm_220122.lib.gz \
126+ $(LIB_DIR ) /asap7sc7p5t_OA_$(VT_TAG ) VT_FF_nldm_211120.lib.gz \
127+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_$(VT_TAG ) VT_FF_nldm_211120.lib.gz \
128+ $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_FF_nldm_220123.lib
129+
130+ export BC_CCS_LIB_FILES ?= $(LIB_DIR ) /asap7sc7p5t_AO_$(VT_TAG ) VT_FF_ccs_211120.lib.gz \
131+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_$(VT_TAG ) VT_FF_ccs_220122.lib.gz \
132+ $(LIB_DIR ) /asap7sc7p5t_OA_$(VT_TAG ) VT_FF_ccs_211120.lib.gz \
133+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_$(VT_TAG ) VT_FF_ccs_211120.lib.gz \
134+ $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_FF_ccs_220123.lib \
135+ $(BC_ADDITIONAL_LIBS )
136+
137+ export BC_CCS_DFF_LIB_FILE ?= $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_FF_ccs_220123.lib
138+
139+ export WC_NLDM_DFF_LIB_FILE ?= $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_SS_nldm_220123.lib
140+
141+ export WC_NLDM_LIB_FILES ?= $(LIB_DIR ) /asap7sc7p5t_AO_$(VT_TAG ) VT_SS_nldm_211120.lib.gz \
142+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_$(VT_TAG ) VT_SS_nldm_220122.lib.gz \
143+ $(LIB_DIR ) /asap7sc7p5t_OA_$(VT_TAG ) VT_SS_nldm_211120.lib.gz \
144+ $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_SS_nldm_220123.lib \
145+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_$(VT_TAG ) VT_SS_nldm_211120.lib.gz
146+
147+ export TC_NLDM_DFF_LIB_FILE ?= $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_TT_nldm_220123.lib
148+
149+ export TC_NLDM_LIB_FILES ?= $(LIB_DIR ) /asap7sc7p5t_AO_$(VT_TAG ) VT_TT_nldm_211120.lib.gz \
150+ $(LIB_DIR ) /asap7sc7p5t_INVBUF_$(VT_TAG ) VT_TT_nldm_220122.lib.gz \
151+ $(LIB_DIR ) /asap7sc7p5t_OA_$(VT_TAG ) VT_TT_nldm_211120.lib.gz \
152+ $(LIB_DIR ) /asap7sc7p5t_SEQ_$(VT_TAG ) VT_TT_nldm_220123.lib \
153+ $(LIB_DIR ) /asap7sc7p5t_SIMPLE_$(VT_TAG ) VT_TT_nldm_211120.lib.gz
154+
155+ ifeq ($(CLUSTER_FLOPS ) ,1)
156+ # Add the multi-bit FF for clustering. These are single corner libraries.
157+ export ADDITIONAL_LIBS += $(LIB_DIR ) /asap7sc7p5t_DFFHQNH2V2X_$(VT_TAG ) VT_TT_nldm_FAKE.lib \
158+ $(LIB_DIR ) /asap7sc7p5t_DFFHQNV2X_$(VT_TAG ) VT_TT_nldm_FAKE.lib
159+
160+ export ADDITIONAL_LEFS += $(PLATFORM_DIR ) /lef/asap7sc7p5t_DFFHQNH2V2X.lef \
161+ $(PLATFORM_DIR ) /lef/asap7sc7p5t_DFFHQNV2X.lef
162+ export ADDITIONAL_SITES += asap7sc7p5t_pg
163+ export GDS_ALLOW_EMPTY ?= DFFHQN[VH][24].*
253164endif
254165
255166# Dont use SC library based on CORNER selection
0 commit comments