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!

cancel
Showing results for
Did you mean:
Observer
393 Views
Registered: ‎06-11-2019

## How to calculate throughput for a hdl code using vivado software

Hello

I am working on designing pipeline architecture of 1-D DCT and want to know how to calculate throughput for the hdl code using Vivado software.

Thanks

Regards

Neha

1 Solution

Accepted Solutions
Scholar
360 Views
Registered: ‎04-26-2015

## Re: How to calculate throughput for a hdl code using vivado software

You calculate it based on how you design the HDL, not using Vivado.

When you design it, you'll obviously be designing to achieve a specific number of clock cycles per input/output data set. You will need to specify how fast you want it to run and optimize it until you achieve that speed. Once that's done, assuming that you run the block continuously (ie pipeline is always full), your throughput is going to be <clock speed in Hz> / <clock cycles per input/output>.

Say your design reads 298 input values at one per cycle (eg. from an AXI Stream), and on the cycle after those are loaded it starts producing 57 output products (also one per cycle). When it finishes this it spends 12 cycles cleaning up internal buffers before it's ready to start again. Your target clock speed is 200MHz. The total number of clock cycles here will be 298 + 57 + 12. Throughput is therefore 200,000,000/367 = about 545K datasets per second.

If you pipeline that design so that as soon as it finishes reading the first data set it's ready to make a start on the next one (and outputs happen while it's reading the next one) then total clock cycles is 298, and throughput is about 671K datasets per second.

3 Replies
Scholar
361 Views
Registered: ‎04-26-2015

## Re: How to calculate throughput for a hdl code using vivado software

You calculate it based on how you design the HDL, not using Vivado.

When you design it, you'll obviously be designing to achieve a specific number of clock cycles per input/output data set. You will need to specify how fast you want it to run and optimize it until you achieve that speed. Once that's done, assuming that you run the block continuously (ie pipeline is always full), your throughput is going to be <clock speed in Hz> / <clock cycles per input/output>.

Say your design reads 298 input values at one per cycle (eg. from an AXI Stream), and on the cycle after those are loaded it starts producing 57 output products (also one per cycle). When it finishes this it spends 12 cycles cleaning up internal buffers before it's ready to start again. Your target clock speed is 200MHz. The total number of clock cycles here will be 298 + 57 + 12. Throughput is therefore 200,000,000/367 = about 545K datasets per second.

If you pipeline that design so that as soon as it finishes reading the first data set it's ready to make a start on the next one (and outputs happen while it's reading the next one) then total clock cycles is 298, and throughput is about 671K datasets per second.

Observer
328 Views
Registered: ‎06-11-2019

## Re: How to calculate throughput for a hdl code using vivado software

Hello how to find target speed in Vivado software. Is it set by default or can be manipulated as per requriement. I am intially giving 8 input values which are then passed through rgister which acts as buffer and then this value is multiplied with DCT coefficient value. So i have to consider for how long it is taking for the input to pass through these registers and multipliers ?? And i have getting only one output value at the end of each clock cycle. This is the scenario i am working in. Please help with this as in how to calculate throughput for this scenario.

Thanks

Regards

Neha

Scholar
191 Views
Registered: ‎09-16-2009