How to simulate and model memory by using verilog?

L

Li Yijun

Guest
I use array of verylog to write SRAM. I can verify its logic in
ModelSim. But how to simulate its power consuption and area? Can I use
Synopsys Design_analyzer to do that?Just read my verilog file into
Synopsys.

I appreciate your answer!
 
Hi,
Typically memories (especially large ones) are NOT synthesized rather
are obtained as hard macros and used in back end. For simulation
purposes, your memory vendor should provide memory models, for
instance Micron does it. Also, Denali provides more accurate models
based on PLI. And if you are using Verilog-2001, you may want to try
Sparse arrays for memory modeling.

Now about area - as I mentioned before, if you are using memory from
hard macros, your vendor should give the area estimate and also the
power estimate. If you want to do some power computation, try tools
such as Simplex which can do power distribution analysis based on SDF
& netlist.

HTH,
Ajeetha
http://www.noveldv.com

Li Yijun <yxl4444@louisiana.edu> wrote in message news:<3F1231BF.1ACF5C97@louisiana.edu>...
I use array of verylog to write SRAM. I can verify its logic in
ModelSim. But how to simulate its power consuption and area? Can I use
Synopsys Design_analyzer to do that?Just read my verilog file into
Synopsys.

I appreciate your answer!
 
aji@noveldv.com (Ajeetha Kumari) wrote in message news:<8df95881.0307141708.1cabf7ba@posting.google.com>...

And if you are using Verilog-2001, you may want to try
Sparse arrays for memory modeling.
I am not aware of any support for sparse arrays in Verilog-2001.
 
Hi,
Thanks for correcting me, yes I mixed up reading that VCS supports
sparse array to LRM, apologies. BTW, does Cadence intend to support
something similar without the $damem?

Thanks,
Ajeetha
http://www.noveldv.com

sharp@cadence.com (Steven Sharp) wrote in message news:<3a8e124e.0307161608.2d13f316@posting.google.com>...
aji@noveldv.com (Ajeetha Kumari) wrote in message news:<8df95881.0307141708.1cabf7ba@posting.google.com>...

And if you are using Verilog-2001, you may want to try
Sparse arrays for memory modeling.

I am not aware of any support for sparse arrays in Verilog-2001.
 
aji@noveldv.com (Ajeetha Kumari) wrote in message news:<8df95881.0307252037.39391bf8@posting.google.com>...
Thanks for correcting me, yes I mixed up reading that VCS supports
sparse array to LRM, apologies. BTW, does Cadence intend to support
something similar without the $damem?
It is on our list of things we would like to support in NC-Verilog.
We have had some customer requests for it, and it is easy to see
that it would be very useful. It is just a matter of prioritizing
it against the other things we have to do. For example, while our
next release will almost finish our Verilog-2001 support, there
are still a few things to be done on it.
 
sharp@cadence.com (Steven Sharp) wrote in message news:<3a8e124e.0307262013.4d58c49f@posting.google.com>...
aji@noveldv.com (Ajeetha Kumari) wrote in message news:<8df95881.0307252037.39391bf8@posting.google.com>...
Thanks for correcting me, yes I mixed up reading that VCS supports
sparse array to LRM, apologies. BTW, does Cadence intend to support
something similar without the $damem?

It is on our list of things we would like to support in NC-Verilog.
We have had some customer requests for it, and it is easy to see
that it would be very useful. It is just a matter of prioritizing
it against the other things we have to do. For example, while our
next release will almost finish our Verilog-2001 support, there
are still a few things to be done on it.
Intresting discussion... Just want to add a little here... Most of the
time, when people use large memories, they are aware of who their ASIC
vendor is going to be and get memory models, hardcore black boxes etc.
However, if someone intends to use a fixed memory block (such as ones
available on FPGAs EBRs or block rams), they already know what it is.
In an other case of distributed ram (flop based), used for small
buffers, pipelining and very small depth FIFOs, some people use arrays
for which they can actually use library_compiler commands such as
report_lib for the flops and get the numbers for the cell.

- Prasanna
 

Welcome to EDABoard.com

Sponsor

Back
Top