Hi Dave

> It would be good to add an optional "Latency" parameter to the Shared BRAM 
> block and allow the user to select "1" (current value that does not use the 
> BRAMs optional output register) or "2" (new value that does use the BRAM's 
> optional output register).  I think this would help ROACH2 designs meet 
> timing more easily.  I will look at this in more detail to see how involved 
> it would be to add this feature.  Once added, I think we'll want to set the 
> default to 2.  It would also be good to make sure the PPC side of the shared 
> BRAM also uses the optional output registers.

This is on a (rather long) list of library upgrades we are keen on here
in SA. Other BRAM related things are;
* distributed RAM implementation option (for small, 32 bit BRAMs)
* configurable initial values

Not sure when we will get to them and would love it if others could help
out.

> I think we should also be recommending that regular (i.e. non-yellow) BRAM 
> blocks be set to a latency of 2 at a minimum.  Maybe we are already?

> This also seems like an issue for ROACH as well (though the smaller chip 
> seems faster to cross so maybe not so important as on ROACH2?).

The majority of timing problems I have run across in ROACH are BRAM to
multiplier paths. BRAM followed by logic often seems ok. Maybe a
separate 'BRAM to multiplier latency' parameter with a default of 2?
Would that be worth the effort? Probably not but worth looking at.

Cheers
Andrew




Reply via email to