/ files.py
files.py
  1  #!/bin/env python3
  2  """Python code for parsing a Cadence technology file"""
  3  # SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-or-later OR CERN-OHL-S-2.0+ OR Apache-2.0
  4  _pdkdir = "/home/verhaegs/eda/Chips4Makers/PDKs"
  5  
  6  techfiles = (
  7      ("test.tf", "testtech.yaml"),
  8      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/techfile",
  9       "TSMC_CM035_TechFile.yaml"),
 10      (_pdkdir+"/TSMCPDK_C018RF_1P6M_4X1U_20KUTM_2fFMIM/techfile",
 11       "TSMC_CM018RF_TechFile.yaml"),
 12      (_pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/techfiles/s8phirs_10r.tf",
 13       "SkyWater_s8phirs_10r_TechFile.yaml"),
 14      (_pdkdir+"/OnSemiPDK_amis350uc/lib/amis350uc/physical/dfii/amis350ucakxx/Rev3.13/techfile.tf",
 15       "OnSemi_amis350uc_TechFile.yaml"),
 16      (_pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4/techfile4.asc",
 17       "AMS_H35B4_TechFile.yaml"),
 18      (_pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4_VHV/techfile4.asc",
 19       "AMS_H35B4_VHV_TechFile.yaml"),
 20      (_pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4_THINMET4/techfile4.asc",
 21       "AMS_H35B4_THINMET4_TechFile.yaml"),
 22      (_pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/TECH_S35D4/techfile4.asc",
 23       "AMS_S35D4_TechFile.yaml"),
 24      (_pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/TECH_C35B4/techfile4.asc",
 25       "AMS_C35B4_TechFile.yaml"),
 26      (_pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/TECH_C35B4_THICKMET4/techfile4.asc",
 27       "AMS_C35B4_THICKMET4_TechFile.yaml"),
 28  )
 29  
 30  assurafiles = (
 31      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/drc/2p3m/UM35P_5V_3M.24a",
 32       "TSMC_CM035_2P3M_DRC.yaml"),
 33      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/drc/2p3m/UM35P_5V_3M.ANT.24a",
 34       "TSMC_CM035_2P3M_Antenna.yaml"),
 35      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/lvsrcx/2p3m/extract.rul",
 36       "TSMC_CM035_2P3M_Extract.yaml"),
 37      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/lvsrcx/2p3m/compare.rul",
 38       "TSMC_CM035_2P3M_LVS.yaml"),
 39      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/drc/2p4m/UM35P_5V_4M.24a",
 40       "TSMC_CM035_2P4M_DRC.yaml"),
 41      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/drc/2p4m/UM35P_5V_4M.ANT.24a",
 42       "TSMC_CM035_2P4M_Antenna.yaml"),
 43      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/lvsrcx/2p4m/extract.rul",
 44       "TSMC_CM035_2P4M_Extract.yaml"),
 45      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/Techfile/Assura/lvsrcx/2p4m/compare.rul",
 46       "TSMC_CM035_2P4M_LVS.yaml"),
 47      (_pdkdir+"/TSMCPDK_C018RF_1P6M_4X1U_20KUTM_2fFMIM/Assura/drc/assura.drc",
 48       "TSMC_CM018RF_DRC.yaml"),
 49      (_pdkdir+"/TSMCPDK_C018RF_1P6M_4X1U_20KUTM_2fFMIM/Assura/drc/ANTENNA/assura.ant",
 50       "TSMC_CM018RF_Antenna.yaml"),
 51      (_pdkdir+"/TSMCPDK_C018RF_1P6M_4X1U_20KUTM_2fFMIM/Assura/lvs_rcx/extract.rul",
 52       "TSMC_CM018RF_Extract.yaml"),
 53      (_pdkdir+"/TSMCPDK_C018RF_1P6M_4X1U_20KUTM_2fFMIM/Assura/lvs_rcx/compare.rul",
 54       "TSMC_CM018RF_LVS.yaml"),
 55      # No Assura files for SkyWater
 56      # No Assura files for OnSemi PDK
 57      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/c35b4/c35b4/drc.rul",
 58       "AMS_C35B4_DRC.yaml"),
 59      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/c35b4/c35b4/compare.rul",
 60       "AMS_C35B4_LVS.yaml"),
 61      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/c35b4/c35b4/extract.rul",
 62       "AMS_C35B4_Extract.yaml"),
 63      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/c35b4/c35b4/dfm.rul",
 64       "AMS_C35B4_DFM.yaml"),
 65      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/c35b4/c35b4/deviceInfo.rul",
 66       "AMS_C35B4_DevInfo.yaml"),
 67      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/c35b4/notchfill/notchfill.rul",
 68       "AMS_C35B4_NothFill.yaml"),
 69      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/c35b4/fillmettop/c35b4_fillmettop.rul",
 70       "AMS_C35B4_FillMetalTop.yaml"),
 71      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/drc.rul",
 72       "AMS_H35B4_DRC.yaml"),
 73      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/leak.rul",
 74       "AMS_H35B4_Leak_DRC.yaml"),
 75      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/leak2/leak.rul",
 76       "AMS_H35B4_Leak2_DRC.yaml"),
 77      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/compare.rul",
 78       "AMS_H35B4_LVS.yaml"),
 79      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/compare_hv.rul",
 80       "AMS_H35B4_HV_LVS.yaml"),
 81      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/extract.rul",
 82       "AMS_H35B4_Extract.yaml"),
 83      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/dfm.rul",
 84       "AMS_H35B4_DFM.yaml"),
 85      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/deviceInfo.rul",
 86       "AMS_H35B4_DevInfo.yaml"),
 87      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/notchfill/notchfill.rul",
 88       "AMS_H35B4_NothFill.yaml"),
 89      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/h35b4/fillmettop/h35b4_fillmettop.rul",
 90       "AMS_H35B4_FillMetalTop.yaml"),
 91      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/s35d4/drc.rul",
 92       "AMS_S35D4_DRC.yaml"),
 93      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/s35d4/compare.rul",
 94       "AMS_S35D4_LVS.yaml"),
 95      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/s35d4/compare_bip.rul",
 96       "AMS_S35D4_Bipolar_LVS.yaml"),
 97      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/s35d4/extract.rul",
 98       "AMS_S35D4_Extract.yaml"),
 99      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/s35d4/dfm.rul",
100       "AMS_S35D4_DFM.yaml"),
101      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/s35d4/deviceInfo.rul",
102       "AMS_S35D4_DevInfo.yaml"),
103      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/notchfill/notchfill.rul",
104       "AMS_S35D4_NothFill.yaml"),
105      (_pdkdir+"/AMSPDK_HK_C35H35S35/assura/s35d4/fillmettop/s35d4_fillmettop.rul",
106       "AMS_S35D4_FillMetalTop.yaml"),
107  # TODO:
108  
109  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m6/extract.rul
110  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m6/bind.rul
111  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m6/drc.rul
112  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m6/compare.rul
113  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m6/dfm.rul
114  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m6/deviceInfo.rul
115  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4all/dfm.rul
116  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thinall/extract.rul
117  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thinall/bind.rul
118  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thinall/drc.rul
119  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thinall/compare.rul
120  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thinall/dfm.rul
121  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thinall/deviceInfo.rul
122  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4o0/dfm.rul
123  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4o1/extract.rul
124  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4o1/bind.rul
125  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4o1/drc.rul
126  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4o1/compare.rul
127  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4o1/dfm.rul
128  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4o1/deviceInfo.rul
129  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thickall/extract.rul
130  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thickall/bind.rul
131  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thickall/drc.rul
132  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thickall/compare.rul
133  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thickall/dfm.rul
134  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4thickall/deviceInfo.rul
135  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m3/extract.rul
136  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m3/bind.rul
137  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m3/drc.rul
138  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m3/compare.rul
139  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m3/dfm.rul
140  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4m3/deviceInfo.rul
141  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4t1/extract.rul
142  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4t1/bind.rul
143  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4t1/drc.rul
144  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4t1/compare.rul
145  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4t1/dfm.rul
146  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4t1/deviceInfo.rul
147  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c3/extract.rul
148  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c3/bind.rul
149  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c3/drc.rul
150  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c3/compare.rul
151  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c3/dfm.rul
152  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c3/deviceInfo.rul
153  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c0/extract.rul
154  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c0/bind.rul
155  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c0/drc.rul
156  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c0/compare.rul
157  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c0/dfm.rul
158  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4c0/deviceInfo.rul
159  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/notchfill/notchfill.rul
160  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/fillmettop/c35b4_thick_fillmettop.rul
161  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/extract.rul
162  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/bind.rul
163  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/compare.rul
164  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/drc.rul
165  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/dfm.rul
166  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/fillpattern/c35b4_thick_fillpattern.rul
167  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4_thick/deviceInfo.rul
168  # ./AMSPDK_HK_C35H35S35/assura/c35b4/fillpattern/c35b4_fillpattern.rul
169  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4oa/dfm.rul
170  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4z1/extract.rul
171  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4z1/bind.rul
172  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4z1/drc.rul
173  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4z1/compare.rul
174  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4z1/dfm.rul
175  # ./AMSPDK_HK_C35H35S35/assura/c35b4/c35b4z1/deviceInfo.rul
176  
177  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/compare_hv.rul
178  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/extract.rul
179  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/bind.rul
180  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/leak.rul
181  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/drc.rul
182  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/compare.rul
183  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/dfm.rul
184  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4d3/deviceInfo.rul
185  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/bind.rul
186  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4/leak2/text.rul
187  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/notchfill/notchfill.rul
188  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/compare_hv.rul
189  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/fillmettop/h35b4_thin_fillmettop.rul
190  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/extract.rul
191  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/bind.rul
192  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/leak.rul
193  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/drc.rul
194  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/compare.rul
195  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/dfm.rul
196  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin/deviceInfo.rul
197  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/compare_hv.rul
198  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/extract.rul
199  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/bind.rul
200  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/leak.rul
201  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/drc.rul
202  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/compare.rul
203  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/dfm.rul
204  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s1/deviceInfo.rul
205  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin_mim5v/extract.rul
206  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_thin_mim5v/dfm.rul
207  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/compare_hv.rul
208  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/extract.rul
209  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/bind.rul
210  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/leak.rul
211  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/drc.rul
212  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/compare.rul
213  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/dfm.rul
214  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4jd/deviceInfo.rul
215  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/compare_hv.rul
216  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/extract.rul
217  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/bind.rul
218  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/leak.rul
219  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/drc.rul
220  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/compare.rul
221  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/dfm.rul
222  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4v1/deviceInfo.rul
223  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/compare_hv.rul
224  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/extract.rul
225  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/bind.rul
226  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/leak.rul
227  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/drc.rul
228  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/compare.rul
229  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/dfm.rul
230  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4vhvall/deviceInfo.rul
231  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/compare_hv.rul
232  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/extract.rul
233  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/bind.rul
234  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/leak.rul
235  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/drc.rul
236  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/compare.rul
237  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/dfm.rul
238  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4kc/deviceInfo.rul
239  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/compare_hv.rul
240  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/extract.rul
241  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/bind.rul
242  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/leak.rul
243  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/drc.rul
244  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/compare.rul
245  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/dfm.rul
246  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thickall/deviceInfo.rul
247  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/compare_hv.rul
248  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/extract.rul
249  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/bind.rul
250  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/leak.rul
251  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/drc.rul
252  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/compare.rul
253  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/dfm.rul
254  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4l3/deviceInfo.rul
255  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/compare_hv.rul
256  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/extract.rul
257  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/bind.rul
258  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/leak.rul
259  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/drc.rul
260  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/compare.rul
261  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/dfm.rul
262  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s2/deviceInfo.rul
263  # ./AMSPDK_HK_C35H35S35/assura/h35b4/fillpattern/h35b4_fillpattern.rul
264  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/compare_hv.rul
265  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/extract.rul
266  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/bind.rul
267  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/leak.rul
268  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/drc.rul
269  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/compare.rul
270  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/dfm.rul
271  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4ld/deviceInfo.rul
272  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_vhv/compare_hv.rul
273  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_vhv/extract.rul
274  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_vhv/bind.rul
275  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_vhv/drc.rul
276  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_vhv/compare.rul
277  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_vhv/dfm.rul
278  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4_vhv/deviceInfo.rul
279  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/compare_hv.rul
280  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/extract.rul
281  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/bind.rul
282  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/leak.rul
283  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/drc.rul
284  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/compare.rul
285  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/dfm.rul
286  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4s5/deviceInfo.rul
287  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/compare_hv.rul
288  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/extract.rul
289  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/bind.rul
290  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/leak.rul
291  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/drc.rul
292  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/compare.rul
293  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/dfm.rul
294  # ./AMSPDK_HK_C35H35S35/assura/h35b4/h35b4thinall/deviceInfo.rul
295  
296  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h2/compare_bip.rul
297  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h2/extract.rul
298  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h2/bind.rul
299  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h2/drc.rul
300  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h2/compare.rul
301  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h2/dfm.rul
302  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h2/deviceInfo.rul
303  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4/bind.rul
304  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4hp/compare_bip.rul
305  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4hp/extract.rul
306  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4hp/bind.rul
307  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4hp/drc.rul
308  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4hp/compare.rul
309  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4hp/dfm.rul
310  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4hp/deviceInfo.rul
311  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m5/compare_bip.rul
312  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m5/extract.rul
313  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m5/bind.rul
314  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m5/drc.rul
315  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m5/compare.rul
316  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m5/dfm.rul
317  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m5/deviceInfo.rul
318  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h5/compare_bip.rul
319  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h5/extract.rul
320  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h5/bind.rul
321  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h5/drc.rul
322  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h5/compare.rul
323  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h5/dfm.rul
324  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4h5/deviceInfo.rul
325  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4all/compare_bip.rul
326  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4all/extract.rul
327  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4all/bind.rul
328  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4all/drc.rul
329  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4all/compare.rul
330  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4all/dfm.rul
331  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4all/deviceInfo.rul
332  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m6/dfm.rul
333  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m7/compare_bip.rul
334  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m7/extract.rul
335  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m7/bind.rul
336  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m7/drc.rul
337  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m7/compare.rul
338  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m7/dfm.rul
339  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m7/deviceInfo.rul
340  # ./AMSPDK_HK_C35H35S35/assura/s35d4/fillpattern/s35d4_fillpattern.rul
341  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m2/compare_bip.rul
342  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m2/extract.rul
343  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m2/bind.rul
344  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m2/drc.rul
345  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m2/compare.rul
346  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m2/dfm.rul
347  # ./AMSPDK_HK_C35H35S35/assura/s35d4/s35d4m2/deviceInfo.rul
348  
349  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4_THINMET4/icc.data/icc_device.rul
350  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4_THINMET4/icc.data/icc_block.rul
351  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4_VHV/icc.data/icc_device.rul
352  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4_VHV/icc.data/icc_block.rul
353  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B3/icc.data/icc_device.rul
354  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B3/icc.data/icc_block.rul
355  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4/icc.data/icc_device.rul
356  # ./AMSPDK_HK_C35H35S35/cds/HK_H35/TECH_H35B4/icc.data/icc_block.rul
357  # ./AMSPDK_HK_C35H35S35/cds/HK_ALL/LEADFRAMES/bonding_dv.rul
358  # ./AMSPDK_HK_C35H35S35/cds/HK_ALL/LEADFRAMES/bonding.rul
359  # ./AMSPDK_HK_C35H35S35/cds/HK_ALL/LEADFRAMES/bonding_pinpad.rul
360  # ./AMSPDK_HK_C35H35S35/cds/HK_S35/TECH_S35D4/icc.data/icc_device.rul
361  # ./AMSPDK_HK_C35H35S35/cds/HK_S35/TECH_S35D4/icc.data/icc_block.rul
362  # ./AMSPDK_HK_C35H35S35/cds/HK_S35/TECH_S35D3/icc.data/icc_device.rul
363  # ./AMSPDK_HK_C35H35S35/cds/HK_S35/TECH_S35D3/icc.data/icc_block.rul
364  # ./AMSPDK_HK_C35H35S35/cds/HK_C35/TECH_C35B4/icc.data/icc_device.rul
365  # ./AMSPDK_HK_C35H35S35/cds/HK_C35/TECH_C35B4/icc.data/icc_block.rul
366  # ./AMSPDK_HK_C35H35S35/cds/HK_C35/TECH_C35B3/icc.data/icc_device.rul
367  # ./AMSPDK_HK_C35H35S35/cds/HK_C35/TECH_C35B3/icc.data/icc_block.rul
368  
369  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4m6/extview.rul
370  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4thinall/extview.rul
371  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4o1/extview.rul
372  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4m3/extview.rul
373  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4t1/extview.rul
374  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4c3/extview.rul
375  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4c0/extview.rul
376  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4_thick/extview.rul
377  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4oa/extview.rul
378  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4/extview.rul
379  # ./AMSPDK_HK_C35H35S35/pvs/c35b4/c35b4z1/extview.rul
380  )
381  
382  ilfiles = (
383      _pdkdir+"/SkyWaterPDK_s8/MODELS/SPECTRE/skill/modelguiconfig.il",
384      _pdkdir+"/SkyWaterPDK_s8/MODELS/SPECTRE/skill/skywater_menu.il",
385      _pdkdir+"/SkyWaterPDK_s8/MODELS/SPECTRE/skill/modelgui.il",
386      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/SKILL/001-59001/s8/s8phirs-10r/info/devices.il",
387      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/SKILL/config/tech/info/devices.il",
388      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/SKILL/config/pcios/s8/s8phirs-10r/info/devices.il",
389      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/SKILL/config/pcios/s8/s8phirs-10r/info/edr.il",
390      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/SKILL/SkyWater.il",
391      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/libs/technology_library/libInit.il",
392      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/libs/tech/libInit.il",
393      _pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/libs/s8phirs_10r/libInit.il",
394      _pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/tsmc35mm/libInit.il",
395      _pdkdir+"/TSMCPDK_C018RF_1P6M_4X1U_20KUTM_2fFMIM/tsmc18/libInit.il",
396      _pdkdir+"/OnSemiPDK_amis350uc/lib/amis350uc/physical/dfii/amis350ucakxx/Rev3.13/libInit.il",
397      _pdkdir+"/OnSemiPDK_amis350uc/lib/amis350uc/physical/dfii/amis350ucatxx/Rev5.3/libInit.il",
398      _pdkdir+"/OnSemiPDK_amis350uc/lib/amis350uc/physical/dfii/amis350ucatxx/Rev5.3/AmisDeviceChecks.il",
399      _pdkdir+"/OnSemiPDK_amis350uc/lib/tech/dklibs/tech_indep/eda/sheet/none/dfii/onSheetLib/Rev5.8/libInit.il",
400      _pdkdir+"/OnSemiPDK_amis350uc/lib/tech/dklibs/tech_indep/eda/sheet/none/dfii/onSheetLib/Rev5.8/titleBlock.il",
401      _pdkdir+"/OnSemiPDK_amis350uc/lib/tech/dklibs/tech_indep/eda/sheet/none/dfii/onSheetLib/Rev5.8/schConfig.il",
402      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/s35/modelMap.il",
403      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/s35/soac/modelMap.il",
404      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/h35/modelMap.il",
405      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/h35/soac/modelMap.il",
406      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/c35/modelMap.il",
407      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/c35/soac/modelMap.il",
408      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/c35/soac/.deviceMap.il",
409      _pdkdir+"/AMSPDK_HK_C35H35S35/spectre/c35/.deviceMap.il",
410      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/skill/ams_sdl.il",
411      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/skill/processes_h35b3.il",
412      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/skill/tips_h35b4.il",
413      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/skill/processes_h35b4.il",
414      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/skill/AMS_deviceAreaTable.il",
415      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/skill/tips_h35b3.il",
416      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_H35/PRIMLIB/libInit.il",
417      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_ALL/skill/ansCdlCompPrim.il",
418      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_ALL/skill/ams_env.il",
419      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_ALL/skill/ams_callBacks.il",
420      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_ALL/skill/ams_customParametersAsSpectre.il",
421      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_ALL/BORDERS/libInit.il",
422      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_ALL/BORDERS/borders.il",
423      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/ams_sdl.il",
424      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/processes_internal_s35d4.il",
425      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/processes_s35d3.il",
426      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/tips_s35d4.il",
427      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/processes_s35d4.il",
428      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/processes_internal_s35d3.il",
429      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/AMS_deviceAreaTable.il",
430      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/skill/tips_s35d3.il",
431      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_S35/PRIMLIB/libInit.il",
432      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/ams_sdl.il",
433      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/processes_c35b3.il",
434      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/tips_c35b4.il",
435      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/tips_c35b3.il",
436      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/processes_internal_c35b4.il",
437      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/processes_c35b4.il",
438      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/AMS_deviceAreaTable.il",
439      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/processes_internal_c35b3.il",
440      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/skill/processes_c35a3.il",
441      _pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_C35/PRIMLIB/libInit.il",
442      _pdkdir+"/AMSPDK_HK_C35H35S35/hspiceS/s35/ams_hspiceS.il",
443      _pdkdir+"/AMSPDK_HK_C35H35S35/hspiceS/h35/ams_hspiceS.il",
444      _pdkdir+"/AMSPDK_HK_C35H35S35/hspiceS/h35/soac/ams_hspiceS.il",
445      _pdkdir+"/AMSPDK_HK_C35H35S35/hspiceS/c35/ams_hspiceS.il", 
446  )
447  
448  displayfiles = (
449      (_pdkdir+"/SkyWaterPDK_s8/VirtuosoOA/libs/display.drf",
450      "SkyWater_s8_Display.yaml"),
451      (_pdkdir+"/TSMCPDK_tsmc035mm_3d3v_5v/display.drf",
452      "TSMC_CM035_Display.yaml"),
453      (_pdkdir+"/TSMCPDK_C018RF_1P6M_4X1U_20KUTM_2fFMIM/display.drf",
454      "TSMC_CM018RF_Display.yaml"),
455      (_pdkdir+"/OnSemiPDK_amis350uc/lib/amis350uc/physical/dfii/amis350ucakxx/Rev3.13/display.drf",
456      "OnSemi_amis350uc_Display.yaml"),
457      (_pdkdir+"/AMSPDK_HK_C35H35S35/cds/HK_ALL/env/display.drf",
458      "AMS_HK_ALL_Display.yaml"),
459  )