Continue to Site

Welcome to

Welcome to our site! 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.

Multiplicity in HSPICE and its use in subcircuit defenition

Not open for further replies.


Full Member level 1
Apr 27, 2011
Reaction score
Trophy points
Activity points
Hi to all,
I am gonna design a 128*128 memory array with use of a parameter in HSPICE called "multiplicity".
But I don't know how to develop my code. Plz guide me through your useful advice if you have a record in this issue.

The "multiplicity" parameter m (or M) is the shunt multiplicity factor of an instance, that is, the number of identical devices that are combined in parallel - see any HSPICE manual. You can't use it for an array.
Thanks. But I want to apply this method to a 128*128 array while I don't know how to assign this parameter to a row and a column. Would you mind guiding me more?

See above! You can't use it for an array!

See above! You can't use it for an array!
Ok. thanks for ur reply

- - - Updated - - -

But I found a PDF file on the internet whose link is provided below implies that it is possible to implement an SRAM array through this method. (on the first page of below link).

I also provided this piece of writing below:

We will simulate a 256x32 bit memory array (256 rows and 32 columns). Each memory array has
three components: bitline conditioning circuitry (aka. precharge logic), the memory array, the write
driver and the sense amplifiers. In our experiments, as all of these components interact with the
bitlines, we can simplify our designs by carefully defining/reading the bitline values. Thus, we need
not to simulate the entire circuit, just the memory array.
Useful functionalities of spice:
1) M=xx (multiplier). Add this to an instantiation of a module/subcircuit to reflect that there are
xx of these modules/subcircuits in parallel.
2) Define initial values of nodes with the IC command.

Thanks in advance

1) M=xx (multiplier). Add this to an instantiation of a module/subcircuit to reflect that there are xx of these modules/subcircuits in parallel.

Ok, then ... you could define your cell as an array memcell<1:128>,<1:128> (or memcell<0:127>,<0:127>) - the exact type of braces and the separator depends on your design system.

I don't know if SPICE supports such 2-dimensional arrays (if ever a 1-dimensional array). I found an Undocumented LTspice note, that seems to support at least a 1-dimensional array.

And then you'd have to connect all nodes WL[0,0] ... WL[127,127], as well as BL[0,0] ... BL[127,127] and BL_bar[0,0] ... BL_bar[127,127], i.e. 3*16384 nodes to the correct places. This could only be done with a schematic design system and a SPICE netlister. Anyway I'd suggest to begin with a 2*2 or 4*4 array - s. here e.g.: View attachment zemi_main117.pdf

This array terminology actually has nothing to do with multiplicity and its multiplier M, because this one would connect all cells - i.e. all their inputs and outputs in parallel.
Not open for further replies.

Part and Inventory Search

Welcome to