At 12:21 PM 2/10/2013, you wrote:
Electric's cell parameters are really powerful! They let you create a single cell that "varies" according to some parameter, like gate drive strength. These parameters can be passed down a very deep hierarchy. This means that if you have a library of gates parameterized by drive strength you can build very complex circuits (like an adder or an entire microprocessor) and give it a drive strength parameter; the drive strength chosen for the top-level cell then determines the drive strengths of the leaf level gates according to pretty much any expression you can write beanshell code for.

However, parameters can only be scalars or strings.

Is there any sort of equivalent allowing a cell to be parameterized by another cell rather than a scalar?

The main use case I have in mind is that I have two kinds of latches: one with scan capability (i.e. can be read from off-chip) and one without. I have a fairly complex circuit that will appear dozens of times on the chip. Due to debuggability concerns, I need one copy of the circuit to have all of its latches scannable. Due to area concerns, the other copies of the circuit must use the non-scannable latches. The chip will be uneconomical if I have to put scan on every latch, and it will be too risky if I don't put scan on any of the latches.

My circuit's hierarchy is very deep. Is there any way to avoid duplicating the entire hierarchy above every latch (basically the entire design!) simply so I can have one version where the leaf nodes are scannable-latches and another copy of the entire hierarchy where the leaf nodes are non-scannable latches? That turned into a maintainability nightmare; I wound up with two copies of everything!

Thanks!

Electric's parameter system is not layout-based...it is purely symbolic. For example, only schematics can really be parameterized, not geometry in layout cells.

However, you could possibly get around this by having two different base-level cells (with and without scan). Then, when you want to switch between the two, you do a "Change" of one cell with another (everywhere in the hierarchy). If you've wired them together at the higher levels of the hierarchy with rigid arcs, and other things that hold the hierarchy tightly, then the Change will make the entire chip grow or shrink correctly (I know this isn't necessarily an easy thing to do).

   -Steven Rubin

--
You received this message because you are subscribed to the Google Groups "Electric 
VLSI Editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to