Hi all,
I am still trying to find a suitable way to split up a file. I have
attached a sample file for your viewing pleasure. This file is a standard
text file that I need to work on.
Here is the basic idea of what I'm trying to do.
1. I ONLY want to work on the area from *DESCRIPTION to *ENDS. Everything
else is irrelavant, but needed in the final document.
2. Comments (";") should be ignored but carried with the document.
3. I want to be able to do an enhanced search and replace, where if you
don't find it, add in the line. For example in the test file, there is a line
OUTLIB = lvsout
replace this with OUTLIB = TEST. Now if you don't find it add in (just
before the *ENDS) OUTLIB = TEST
I don't know how to do this nicely. For 1. do I read in the document as a
whole or split it with \n^*\w (look for a newline with a * at the beginning
of a line - my regex is probably hosed..), And if I do this how do I keep the
comments?
How do I ignore the comments period if I split this up?
For number 3 I can't come up with a way to look in a section and if you don't
find it, add it to the end? I am clueless here.
Any help would be greatly appreciated.
Thanks so much
--
Steven M. Klass
Physical Design Manager
National Semiconductor Corp
15210 S. 50th Street
Suite 120, Mail Stop AZ4
Phoenix, AZ 85044
Ph:480-629-2503
Fax:480-629-2476
[EMAIL PROTECTED]
http://www.nsc.com
; Process : Standard LVS (common to all processes to date)
; : Compares Layout to an Hspice Schematic Netlist
; : Manditory for tape out
;
; Document # :
; (this may mess up older designs)
;
*DESCRIPTION
MINI-SUMMARY = NO
;INDISK = xxx.gds ; Database file to check ;input from drac prog
;PRIMARY = xxx_top ; Topcell to be checked ;input from drac prog
OUTLIB = lvsout ; Topcell for error flags
OUTDISK = lvsout.gds ; File name of error database
PRINTFILE = lvsprt ; Job name, print&log file names
LISTERROR = 100 ; Max # of errors listed per check
SCALE = .001 MICRON ; user units / GDS II DB unit
RESOLUTION = .001 MICRON ; Snapping grid
SYSTEM = GDS2 ; Data Base format
MODE = EXEC NOW ; Execution mode
FLAG-ACUTEANGLE = YES ; Print acute angles
FLAG-OFFGRID = YES ; Print geometries off-grid
FLAGNON45 = YES ; Print NON-45 degree lines
FLAG-SELFINTERS = YES ; Print self intersecting polygons
KEEPDATA = SMART ; Don't keep intermediate files
SCHEMATIC = LVSLOGIC.DAT ; Compiled Schematic
FIX-INPUT-ORDER = YES ; Don't swap logic inputs
;OUTPUT-ONE-LAYER= YES ; Put error layers on on layer
;TEXT-PRI-ONLY = YES ; Text only top level ;input from drac prog
;DELCEL = TESTCELL ; Cell to exclude from LVS - USE CAUTION !!
DELCEL = DROPIN ; Cell to exclude from LVS - USE CAUTION !!
;
*END
;
*INPUT-LAYER
;
ANWI = 1 ; N Well Implant
TOX = 2 ; Thin OXide
APOL = 4 TEXT 4 ATTACH = POL ; POLy
PPI = 5 ; P Plus Implant
CON = 7 ; CONtact
ME1 = 8 TEXT 8 ATTACH = ME1 ; MEtal 1
VIA = 9 ; VIA
ME2 = 10 TEXT 10 ATTACH = ME2 ; MEtal 2
PAS = 11 ; PASsivation
VA2 = 12 ; ViA 2
ME3 = 13 TEXT 13 ATTACH = ME3 ; MEtal 3
BMP = 15
BJT = 30 ; Bipolar recognition layer
RES = 31 ; Resistor recognition layer
DIO = 32 ; Diode recognition layer
LDD = 33 ; HV Nmos recognition layer
;
SUBSTRATE = PSUB 60
CONNECT-LAYER = PSUB NWI PSD NSD WNSD POL ME1 ME2 ME3
;
*END
;
*OPERATION
;
NOT PSUB ANWI PWI ; Pwell
NOT PSUB PPI NPI ; N+ Implant
;
AND TOX PPI PDIF ; P+ Diffusion
AND TOX NPI NDIF ; N+ Diffusion
;
AND APOL RES PORES ; Poly resistor region
NOT APOL PORES POL ; All Poly except resistors
;
NOT RES PORES RES1 ; Resid not over poly
;
AND ANWI RES1 NWRES ; Nwell resistors
NOT ANWI NWRES NWI ; All Nwell except resistors
;
AND POL PDIF PGAT ; P+ Gate
NOT PDIF PGAT PSD0 ; All P+ Excluding Gates
;
AND PSD0 RES PPRES ; P+ resistors
NOT PSD0 PPRES PSD ; P+ S/D and taps
;
AND POL NDIF NGAT0 ; N+ Gate
NOT NDIF NGAT0 ANSD ; All N+ Excluding Gates
;
AND ANSD RES NPRES ; N+ resistors
NOT ANSD NPRES NSD0 ; All N+ except resistors
;
AND NSD0 LDD WNSD ; LDD S/D
NOT NSD0 WNSD NSD ; N+ S/D and taps
;
AND NGAT0 LDD WNGAT
NOT NGAT0 WNGAT NGAT
;
AND PSD PWI SUBTIE ; Substrate tie
AND NSD NWI WELTIE ; Nwell tie
;
CONNECT ME1 PSD BY CON
CONNECT ME1 NSD BY CON
CONNECT ME1 WNSD BY CON
CONNECT ME1 POL BY CON
CONNECT ME2 ME1 BY VIA
CONNECT ME3 ME2 BY VA2
CONNECT PSD PSUB BY SUBTIE
CONNECT NSD NWI BY WELTIE
;
ELEMENT RES[PO] PORES POL ; Poly Resistors
;PARAMETER RES[PO] 10 ; Value checking (LG Value)
;PARAMETER RES[PO] 14.5 ; Value checking (OKI Value)
;PARAMETER RES[PO] 35 ; Value checking (NAT Value)
PARAMETER RES[PO] 8 ; Value checking (SHP Value)
ELEMENT RES[NW] NWRES NWI ; Nwell Resistors
;PARAMETER RES[NW] 630 ; Value checking (LG Value)
;PARAMETER RES[NW] 1010 ; Value checking (OKI Value)
;PARAMETER RES[NW] 1595 ; Value checking (NAT Value)
PARAMETER RES[NW] 1200 ; Value checking (SHP Value)
ELEMENT RES[NP] NPRES NSD ; Nplus Resistors
;PARAMETER RES[NP] 75 ; Value checking (LG Value)
;PARAMETER RES[NP] 115 ; Value checking (OKI Value)
;PARAMETER RES[NP] 65 ; Value checking (NAT Value)
PARAMETER RES[NP] 90 ; Value checking (SHP Value)
ELEMENT RES[PP] PPRES PSD ; Pplus Resistors
;PARAMETER RES[PP] 105 ; Value checking (LG Value)
;PARAMETER RES[PP] 230 ; Value checking (OKI Value)
;PARAMETER RES[PP] 115 ; Value checking (NAT Value)
PARAMETER RES[PP] 120 ; Value checking (SHP Value)
;
ELEMENT BJT[PV] BJT PSUB NSD PSD ; Verticle PNP
;
ELEMENT DIO[N] DIO PSUB NSD ; Nplus Diode to Substrate
;
ELEMENT MOS[MP] PGAT POL PSD NWI ; Pmos Devices
ELEMENT MOS[MN] NGAT POL NSD PSUB ; Nmos Devices
;
ELEMENT LDD[N] WNGAT POL WNSD NSD PSUB ; Nmos LDD device
;
MULTILAB OUTPUT SHORT 50 ; Plot shorts
SAMELAB OUTPUT OPENS 50 ; Plot opens
;
;LVSCHK PRINTLINE=10000 RESVAL=10 WPERCENT=5 LPERCENT=0 MOSCAP-AREA=5
;LVSCHK PRINTLINE=500 WPERCENT=5 LPERCENT=0 MOSCAP-AREA=5
LVSCHK PRINTLINE=10000
;
;Uncomment the following for debugging a real nasty run
;
LVSPLOT NODE TYPE 1 OUTPUT NOD01 50 ; mtch nod to no dev
LVSPLOT NODE TYPE 2 OUTPUT NOD02 50 ; mtch dev to unmtch nod
LVSPLOT MOS TYPE 2 OUTPUT MOS02 50 ;
LVSPLOT NODE TYPE 3 OUTPUT NOD03 50 ; inconsistant mtch dev
LVSPLOT MOS TYPE 3 OUTPUT MOS03 50 ;
LVSPLOT NODE TYPE 4 OUTPUT NOD04 50 ; mtch nod to extra lay dev
LVSPLOT MOS TYPE 4 OUTPUT MOS04 50 ;
LVSPLOT NODE TYPE 5 OUTPUT NOD05 50 ; mtch nod to extra sch dev
LVSPLOT NODE TYPE 6 OUTPUT NOD06 50 ; mtch nod to unmtch lay and sch
LVSPLOT MOS TYPE 6 OUTPUT MOS06 50 ;
LVSPLOT MOS TYPE 7 OUTPUT MOS07 50 ; other unmtch lay
LVSPLOT MOS TYPE 9 OUTPUT MOS09 50 ; dev subtype mismatch
LVSPLOT MOS TYPE 11 OUTPUT MOS11 50 ; mos reverse error
LVSPLOT MOS TYPE 12 OUTPUT MOS12 50 ; dev substrate mismatch
LVSPLOT NODE TYPE 13 OUTPUT NOD13 50 ; dev pwr mismatch
;
*END
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]