The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
May 5th, 2024, 6:43am
Pages: 1
Send Topic Print
global nodes in spectre post-layout simulation (Read 5071 times)
stephen
Junior Member
**
Offline



Posts: 24

global nodes in spectre post-layout simulation
Jun 08th, 2004, 12:09pm
 
I've met a problem. I labeled the power nets in the layout as vdd! and gnd!. They are supposed to be global labels. However, when I do post-layout simulations with config and extracted cellview, spectre doesn't consider those nodes as global. If I use the vdd and gnd power symbol in the top-level testing schematic, the vdd! and gnd! in the extracted sub-cell will be converted into something like _net0 and _net1. If I remove any vdd! and gnd! labels from the top-level schematic, vdd! and gnd! can be generated in the netlist. However, they are still not considered as global because I don't see ".global vdd! gnd!" on the top of the netlist. So I guess the automatic renaming is also based on the same problem. That is, it's to avoid conflict between a global net and a local net.

Is this a bug of spectre simulator? Anybody can help me on this one?

Thanks!!!

Back to top
 
 
View Profile   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: global nodes in spectre post-layout simulation
Reply #1 - Jun 8th, 2004, 2:24pm
 
Stephen,

No it's not a bug with the spectre simulator. If nothing in the netlist tells the simulator that they are global, it quite correctly treats them as local.

You didn't say which verification tool you're using - I suspect it's Diva. I recall there being an issue that Diva doesn't in itself mark the signals in the extracted view as being global - there isn't really such thing as a global signal in a physical layout. In the database itself, a signal is marked global by having the isGlobal attribute set on the signal (not the net) - this is often done by Composer for any net with a name ending with "!". It's not the fact that it ends with "!" that marks it as global in the database, but that the isGlobal attribute is set.

If you use the "Build Analog" button at the bottom of the Diva LVS form, and use this to build an "analog_extracted" view, and then use that in your config (rather than the original extracted view), then I believe this analog_extracted view has the signals with names ending in "!" marked as global.

Alternatively, the attributes can be set in the extracted view directly. The following SKILL code would do it:

Code:
/*******************************************************************
*											*
* (abMakePlingNetsGlobal @optional (cellView (geGetEditCellView))) *
*											*
*   Make sure that any net ending with "!" is marked as a global   *
*					 net.					 *
*											*
*******************************************************************/

(procedure (abMakePlingNetsGlobal @optional (cellView (geGetEditCellView)))
  (let (globs)
	 (if (equal (dbGetq cellView viewName) "extracted")
	   (progn
	    (printf "Processing cellView %s/%s/%s\n"
		    (dbGetq cellView libName)
		    (dbGetq cellView cellName)
		    (dbGetq cellView viewName))
	    (unless (dbReopen cellView "a")
		    (error "Failed to make cellView editable\n"))
	    (setq globs
		  (setof sig (dbGetq cellView signals)
			 (when (equal (index (dbGetq sig name) "!") "!")
				 (dbSetq sig t isGlobal)
				 )
			 ))
	    (when globs
		  (printf "Made the following nets global:\n")
		  (foreach glob globs
			   (printf "  %s\n" (dbGetq glob name)))
		  (dbDisablePropTimeStamp)
		  (dbReplaceProp cellView
				 "lastSchematicExtraction" "time" (getCurrentTime))
		  )
	    )
	   (warn "%s/%s/%s is not an extracted view\n"
		 (dbGetq cellView libName)
		 (dbGetq cellView cellName)
		 (dbGetq cellView viewName))
	   )
	 ))
 



Just type:

Code:
(abMakePlingNetsGlobal) 



with the extracted view as the current window (having loaded the SKILL code using:

Code:
(load "abMakePlingNetsGlobal.il") 



But really the Build Analog approach is the way it is supposed to be done.

With Assura RCX, I'm pretty certain this works directly without need to get the isGlobal attribute set.

Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
stephen
Junior Member
**
Offline



Posts: 24

Re: global nodes in spectre post-layout simulation
Reply #2 - Jun 8th, 2004, 2:54pm
 
Many thanks. The analog_extracted cellview works very well. I doubt whether this is a new feature introduced in cadence 5.0? I did post-layout simulation in some older version cadence about a year ago. As far as I can remember, I knew nothing about analog_extracted cellview then and I just used vdd! and gnd! in the layout.

Also, I found that, other than using the build analog button, I can simply rename the extracted cellview to analog_extracted. That does the trick too.

Thanks again.
Back to top
 
 
View Profile   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: global nodes in spectre post-layout simulation
Reply #3 - Jun 8th, 2004, 9:31pm
 
No, it's not a new feature. It's been there at least 10 years...

I'm surprised that renaming extracted to analog_extracted fixed the problem too - I can't see any reason why that should work, because I wouldn't have thought that there would be anything that would touch the signals in the database when it is renamed - it could only be if that
happened as a side effect of the rename (simply having a viewname of analog_extracted is not sufficient).

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.