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: 
Registered: ‎05-30-2018

Make use of ap_ctrl_chain

Hello everyone,

My project consists of a top function that calls a number of sub-functions as a stream under dataflow.

each sub-function represents a computation block that performs a certain task. I also have DMA for input and output in order to convert axilite (memory mapped) to axi stream and vice versa.

It looks something like :

TOP : [MM2S --> StreamBlock 1 --> StreamBlock  2 --> ... --> StreamBlock n --> S2MM]

Each time, I have to wait for the data to pass through the whole stream before the next input can be applied.

I would like to speed up the stream by making use of ap_ctrl_chain, so that whenever a block is done processing, a flag signal is sent out.

  1. Is it enough to add ap_ctrl_chain to the return port interface of the top level function? or should I synthesize each sub-function separately and use ap_ctrl_chain for it?

  2. In case I would like to synthesize each sub_function separately, do I have to specify the interface type and bundle for the function's arguments? Only the MM2S and S2MM of the DMA are actually going to be interfacing the PS using axilite.

  3. These sub-functions are using some global arrays as coefficients for calculations. Is it still possible for the separate blocks to access global arrays defined elsewhere somehow? or should they be made local in this case?

  4. Any other suggestions please?

Thank you so much !

0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
Registered: ‎09-05-2018

Re: Make use of ap_ctrl_chain

Hey @rashedkoutayni,

This seems to be a duplicate of this fourm post, we can discuss the issue there.

Nicholas Moellers

Xilinx Worldwide Technical Support
0 Kudos