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.