Visible to Intel only — GUID: ryr1573061642388
Ixiasoft
1. Intel® High Level Synthesis Compiler Standard Edition User Guide
2. Overview of the Intel® High Level Synthesis (HLS) Compiler Standard Edition
3. Creating a High-Level Synthesis Component and Testbench
4. Verifying the Functionality of Your Design
5. Optimizing and Refining Your Component
6. Simulating Your Design
7. Synthesize your Component with Intel® Quartus® Prime Standard Edition
8. Integrating your IP into a System
A. Reviewing the High Level Design Reports (report.html)
B. Limitations of the Intel® HLS Compiler Standard Edition
C. Intel® HLS Compiler Standard Edition User Guide Archives
D. Document Revision History for Intel® HLS Compiler Standard Edition User Guide
Visible to Intel only — GUID: ryr1573061642388
Ixiasoft
6.3. High-Throughput Simulation (Asynchronous Component Calls) Using Enqueue Function Calls
An explicit call to a component in simulation is a blocking call. To be consistent with C++ language conventions, the testbench waits for a return value from the component before continuing execution. This blocking call results in serial execution of the component. You can test how well successive invocations of your component can be pipelined by queuing inputs to the component before executing the component. You can queue inputs to a component that has explicit interfaces by using enqueue function calls from the cosimulation library. Estimate the throughput of your component by dividing the component fMAX by the component initiation interval (II), which indicates approximately how many times your component is invoked per second.
Function | Description |
---|---|
ihc_hls_enqueue(void* retptr, void* funcptr, …) | This function enqueues one invocation of an HLS component. The return value is stored in the first argument which should be a pointer to the return type. The component does not execute until the ihc_hls_component_run_all() function is invoked. |
ihc_hls_enqueue_noret(void* funcptr, …) | This function is similar to ihc_hls_enqueue(void* retptr, void* funcptr, …), except that it does not have an output pointer to capture return values. |
ihc_hls_component_run_all (void* funcptr) | This function executes all enqueued calls to the specified component in a pipelined fashion. |