Visible to Intel only — GUID: sxp1572909293158
Ixiasoft
1. Intel® HLS Compiler Standard Edition Reference Manual
2. Compiler
3. C Language and Library Support
4. Component Interfaces
5. Component Memories (Memory Attributes)
6. Loops in Components
7. Component Concurrency
8. Arbitrary Precision Math Support
9. Component Target Frequency
10. Intel® High Level Synthesis Compiler Standard Edition Compiler Reference Summary
A. Supported Math Functions
B. Intel® HLS Compiler Standard Edition Reference Manual Archives
C. Document Revision History of the Intel® HLS Compiler Standard Edition Reference Manual
4.1. Component Invocation Interface
4.2. Avalon® Streaming Interfaces
4.3. Avalon® Memory-Mapped Master Interfaces
4.4. Slave Interfaces
4.5. Component Invocation Interface Arguments
4.6. Unstable and Stable Component Arguments
4.7. Global Variables
4.8. Structs in Component Interfaces
4.9. Reset Behavior
10.1. Intel® HLS Compiler Standard Edition i++ Command-Line Arguments
10.2. Intel® HLS Compiler Standard Edition Header Files
10.3. Intel® HLS Compiler Standard Edition Compiler-Defined Preprocessor Macros
10.4. Intel® HLS Compiler Standard Edition Keywords
10.5. Intel® HLS Compiler Standard Edition Simulation API (Testbench Only)
10.6. Intel® HLS Compiler Standard Edition Component Memory Attributes
10.7. Intel® HLS Compiler Standard Edition Loop Pragmas
10.8. Intel® HLS Compiler Standard Edition Component Attributes
10.9. Intel® HLS Compiler Standard Edition Component Default Interfaces
10.10. Intel® HLS Compiler Standard Edition Component Invocation Interface Arguments
10.11. Intel® HLS Compiler Standard Edition Component Macros
10.12. Intel® HLS Compiler Standard Edition Streaming Input Interfaces
10.13. Intel® HLS Compiler Standard Edition Streaming Output Interfaces
10.14. Intel® HLS Compiler Standard Edition Memory-Mapped Interfaces
10.15. Intel® HLS Compiler Standard Edition Arbitrary Precision Data Types
Visible to Intel only — GUID: sxp1572909293158
Ixiasoft
10.5. Intel® HLS Compiler Standard Edition Simulation API (Testbench Only)
Function | Description |
---|---|
ihc_hls_enqueue | This function enqueues one invocation of an HLS component. |
ihc_hls_enqueue_noret | This function enqueues one invocation of an HLS component. This function should be used when the return type of the HLS component is void. |
ihc_hls_component_run_all | This function pushes all enqueued invocations of a component into the component in the HDL simulator as quickly as the component can accept new invocations. |
ihc_hls_sim_reset | This function sends a reset signal to the component during automated simulation. |
ihc_hls_enqueue Function
- Syntax
- ihc_hls_enqueue(void* retptr, void* funcptr, /*function arguments*/)
- Description
-
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 is not run until the ihc_hls_component_run_all() is invoked.
To learn more, review the tutorial: <quartus_installdir>/hls/examples/tutorials/usability/enqueue_call.
ihc_hls_enqueue_noret Function
- Syntax
- ihc_hls_enqueue_noret(void* funcptr, /*function arguments*/)
- Description
-
This function enqueues one invocation of an HLS component. This function should be used when the return type of the HLS component is void. The component is not run until the ihc_hls_component_run_all() is invoked.
To learn more, review the tutorial: <quartus_installdir>/hls/examples/tutorials/usability/enqueue_call.
ihc_hls_component_run_all Function
- Syntax
- ihc_hls_component_run_all (void* funcptr)
- Description
-
This function accepts a pointer to the HLS component function. When run, all enqueued invocations of the component will be pushed into the component in the HDL simulator as quickly as the component can accept new invocations.
To learn more, review the tutorial: <quartus_installdir>/hls/examples/tutorials/usability/enqueue_call.
ihc_hls_sim_reset Function
- Syntax
- int ihc_hls_sim_reset(void)
- Description
-
This function sends a reset signal to the component during automated simulation. It returns 1 if the reset was exercised or 0 otherwise.
To learn more, review the tutorial: <quartus_installdir>/hls/examples/tutorials/component_memories/static_var_init.
Simulation API Code Example
component int foo(int val) {
// function definition
}
component void bar (int val) {
// function definition
}
int main() {
// …….
int input = 0;
int res[5];
ihc_hls_enqueue(&res, &foo, input);
ihc_hls_enqueue_noret(&bar, input);
input = 1;
ihc_hls_enqueue(&res, &foo, input);
ihc_hls_enqueue_noret(&bar, input);
ihc_hls_component_run_all(&foo);
ihc_hls_component_run_all(&bar);
}