Continue to Site

Welcome to EDAboard.com

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

Generated vs Inferred RAM

Status
Not open for further replies.

z3ke

Newbie level 3
Newbie level 3
Joined
Oct 22, 2012
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,309
Since synthesis recognizes RAM primitives, why would anyone ever want to use the Xilinx Core Generator (Block Memory Generator) to instantiate a RAM? It just seems to complicate things from my point of view, as a new version of the software has a new version of Block Memory Generator that then wants to regenerate every time I bring my design to a new version (like when loaning to a colleague). Plus, then I can name the ports whatever I want. The only possible advantages I can see are the more advanced features in the IP like error detection/correction. Anyone have better knowledge of this?
 

Looking for reasons to bear the overhead of Xilinx's Block Memory Generator vs. writing HDL that will be inferred as RAM and can be easier to port from project to project and also freedom to choose my port names and conventions... Only reason I can think of right now is for the special features like ECC.
 

The only reason I use core blocks, is when it wont infer them for me. Like when I need dual clock true dual port rams with mixed data sizes.
And I dont trust it to infer correct read-before-write behaviour either. If I need something specific, I would use a core.
 
  • Like
Reactions: FvM

    FvM

    Points: 2
    Helpful Answer Positive Rating
You would also use the Core Generator if you want to design a re-useable block that will be used in both ASICs and FPGAs.

Then you can easily replace the instantiation of the generated core with a compiled memory from the ASIC vendor's library.

Of course, with that in mind, you could have also written your inferred FPGA memory in a module and instantiated it like a memory core.

r.b.
 
Last edited:

Okay, so one idea is basically to keep a blank RAM template around in it's own module so it can be set to be whatever size (depth and width). This will help with a design that I would like to generalize with constant parameters. It sounds like there should be no real issue with this. thanks for sharing!
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top