We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Participant sarit8
Registered: ‎08-15-2016

BRAM - Why using output register improve performance?

I read the documentation of xilinx regarding BRAM and I don't understand for what reason should I use the output register. According the document:

Note that each optional register stage used adds an additional clock cycle of latency to the
Read operation.





0 Kudos
3 Replies
Registered: ‎11-09-2015

Re: BRAM - Why using output register improve performance?

Hi @sarit8,


From UG473 p20:

"The optional output registers improve design performance by eliminating routing delay to the CLB flip-flops for pipelined operation. An independent clock and clock enable input is provided for these output registers. As a result the output data registers hold the value independent of the input register operation."





Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Registered: ‎08-14-2007

Re: BRAM - Why using output register improve performance?

You didn't mention which part you're using, but as an example Artix-7 in a -2 speed grade lists a maximum BRAM frequency of 460.83 MHz.  This represents a period of 2.17 ns.  The clock to output without the output register is listed at 2.13 ns for the same parts.  That means you have only 40 ps of available time for routing delay and setup to a fabric flip-flop if you don't use the internal registers.  With the internal registers, the clock to output is specified as 0.74 ns, which gives you much more time (1.43 ns) to meet setup to the next sequential element in the design.


If your design is running at much lower frequencies, then it's often preferable not to use the internal registers so you can reduce the address to data out delay by one clock cycle.

-- Gabor
0 Kudos
Teacher muzaffer
Registered: ‎03-31-2012

Re: BRAM - Why using output register improve performance?

@sarit8 as you mention, using the output register adds a cycle of latency but not having it causes a long combinational path from the last driver in the ram to the first flop in the fabric. This reduces the realizable clock speed of the system. Memory read latency can usually be compensated for in the rest of the system so a higher clock frequency is preferable in most cases. If you fall into this case, it is suggested that you use the output register. If you can't tolerate the latency this will cause you will have a lower clock speed overall but one fewer cycles in the critical #of cycles to decision path.

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos