Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Lvs error for NOR gate

Status
Not open for further replies.

jhasan

Newbie level 4
Joined
Dec 15, 2008
Messages
7
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,350
I am designing a simple two input nor gate.

But I get an LVS error.It seems that the nmos which are parallel are not merging.

In the LVS error report I get:

=================================================
=========Matched Instances with Bad Net Connections======
=================================================

Schematic Instance: MN2 enm
Layout Instance: avD62_1 n

Pin SchNet LayNet
---- ------- -------

S gnd! Out
D Out gnd!



Looking at this it seems the parallel mosfets in th pulldown network of NOR gate are not merging.Is there a way I can solve this problem?Any help would be greatly appreciated.
 

It seems it did not swap S/D device terminals - to make it a match. MOS device should have source & drain swappable. Check the MOS component CDF - if it has those permutable S/D or not. Also check, if by something you | someone have asked Assura to not to swap. BTW which assura version?
 

I still am not able to swap S/D terminals.

I do not how I can enable swapp S/D terminals in assura.

I am using assura version 4.10.Also, my process is AMI C5 N/F.

I looked at the properties of my nmos but there are no option to swap the S/D terminals.

Do I need to change the CDF.att file for my nmos.

Thanks

---------- Post added at 01:30 ---------- Previous post was at 01:13 ----------

On the Edit Instance Property window in cadence

I only have this options

Finger width
length
Number of fingers
Multiplier
Drain Diffusion res squares
Source Diffusion res squares
Drain Diffusion area
Source Diffusion area
Drain Diffusion periphery
Source Diffusion periphery
Drain Diffusion length
Source Diffusion length
Temp rise from ambient
Estimated operation region
Ignore in CDL
Matching Group
Matching Level
Gate M1 Contacts
Source M1 Contacts
Drain M1 Contacts
Connect source to bulk
Guardbar Type
 

Your LVS rules file must contain appropriate permute rules.
See below. Replace the "device" names by your cell names, where necessary.

;*********************************************
;Call the permutation & comparison procedures.
;*********************************************
permuteDevice( parallel "nmos" parallelMOS )
permuteDevice( parallel "pmos" parallelMOS )
/* Uncomment next two lines if you want to reduce nfet
devices in AND or OR configurations and swap input
terminals during comparison. */
; permuteDevice( MOS "nmos" )
; permuteDevice( MOS "pmos" )
permuteDevice( parallel "nplusres" parallelRES )
permuteDevice( parallel "polyres" parallelRES )
permuteDevice( series "nplusres" seriesRES )
permuteDevice( series "polyres" seriesRES )
permuteDevice( parallel "nmoscap" parallelCAP )
permuteDevice( parallel "mimcap" parallelMIMCAP )
permuteDevice( parallel "vpnp" parallelBjt )
permuteDevice( parallel "npn" parallelBjt )
permuteDevice( parallel "pnp" parallelBjt )
permuteDevice( parallel "ndio" parallelDIO )
permuteDevice( parallel "pdio" parallelDIO )
 

I still am not able to swap S/D terminals.

I do not how I can enable swapp S/D terminals in assura.

I am using assura version 4.10.Also, my process is AMI C5 N/F.

I looked at the properties of my nmos but there are no option to swap the S/D terminals.

Do I need to change the CDF.att file for my nmos.

Thanks

In general - neat thing is you can ask Assura to do a pin-swap analysis for you [ I know that works good for cell, not sure, but I think it'll work for device as well ], use autoPinSwap or simpleAutoiPinSwap, under generic avCompareRules() - then after LVS - check the file named <runName>.cps [comparison pin-swap file] inside assura rundir.


1. Assura supports 2 type of comparison rules.
a. Generic : which applies to both the netlists.
b. Network Specific.
In your case - quick medicine would be to try to use netlist specific LVS comparison rules.

SYNTAX::
swapPins( {"cell_name"|"device_name"} "([f|p] pin_name)" )

In your case - add the above option under avComparerules on the layout-netlist.
- perhaps your "device_name" would be "n" or "nmos" or whatever applicable.
- you should use p, because --> p stands for permutable --> f stands for fixed, or no pin-permutation.
- S D would be pinName I guess.
swapPins( "n" "(p S D)" ).

Hope the above will help.

///////// some general comments //////////
Editing cell-CDF [component description format] which usually comes with, foundry or IP vendor provided PDK, CDK; is not recommended.
It is a rare scenario, where MOS S/D is not swappable - check if someone already played with the PDK and rules and LVS setup etc..
permuteDevice is not related to pin permutation, that is used for series, parallel, merging devices.
BTW, all that I asked you to add in network specific [either schematic side or layout side] can also be done very well from Assura Run LVS GUI as well.
 
  • Like
Reactions: erikl

    erikl

    Points: 2
    Helpful Answer Positive Rating
Thanks finally it worked.I really appreciate your help.

swapPins("enm" "(p S D)")
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top