cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
zz110
Adventurer
Adventurer
1,676 Views
Registered: ‎09-08-2017

HLS Managing Interfaces

Jump to solution

When I read the chapter of the HLS interface synthesis in the UG902 document, it mentions a Block-Level interface protocol. The interface protocol uses the ap_ctrl_hs protocol by default, and the ap_ctrl_hs protocol contains four signals: ap_start, ap_idle, ap_done, and ap_ready. The document mentions:These signal control the block, independently of any port-level I/O protocols. These ports control when the "block" can start processing "data" (ap_start), indicate when it is ready to accept new inputs (ap_ready) and indicate if the design is idle (ap_idle) or has completed operation (ap_done). My question is: for the passage described in the above document. What does the block here specifically refer to? Does the data here refer to image data?

0 Kudos
1 Solution

Accepted Solutions
jprice
Scholar
Scholar
2,082 Views
Registered: ‎01-28-2014

Block is a colloquial term used pretty heavily by HDL designers. A decent synonym would be module. We often think of connecting instantiating and connecting modules as stacking blocks (remember in hardware everything exists concurrently). One of my systems engineers jokes that he thinks of HDL as building with legos. The block mentioned in your cited passage is referring to the design or project being worked on. The output of HLS is a single "module" or block that implements your design (it may be scattered across multiple files, but it's one design). The block level interface is how individual instances of the block are controlled. 

View solution in original post

4 Replies
jprice
Scholar
Scholar
2,083 Views
Registered: ‎01-28-2014

Block is a colloquial term used pretty heavily by HDL designers. A decent synonym would be module. We often think of connecting instantiating and connecting modules as stacking blocks (remember in hardware everything exists concurrently). One of my systems engineers jokes that he thinks of HDL as building with legos. The block mentioned in your cited passage is referring to the design or project being worked on. The output of HLS is a single "module" or block that implements your design (it may be scattered across multiple files, but it's one design). The block level interface is how individual instances of the block are controlled. 

View solution in original post

zz110
Adventurer
Adventurer
1,633 Views
Registered: ‎09-08-2017
Thank you very much for your reply. You said that the block level interface is used to control the block instances. Does these instances refer to the various code files in HLS? The second question I mentioned in the question is: The ap_start signal is used to control when the data is processed. Because I use HLS to accelerate image processing, does the data refer to image data?
0 Kudos
u4223374
Advisor
Advisor
1,613 Views
Registered: ‎04-26-2015

@zz110It refers to all data that's fed into the block. That will include the images themselves, configuration settings, and ancillary data (eg. kernels for convolution).

zz110
Adventurer
Adventurer
1,575 Views
Registered: ‎09-08-2017
Thank you for your response. I basically understand what you said, that is to say that these data include not only image data but also other additional data such as convolution kernel data for image processing.
0 Kudos