Intel® High Level Synthesis Compiler Pro Edition: Reference Manual
                    
                        ID
                        683349
                    
                
                
                    Date
                    12/04/2023
                
                
                    Public
                
            A newer version of this document is available. Customers should click here to go to the newest version.
                
                    
                        1. Intel® HLS Compiler Pro 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. Systems of Tasks
                    
                    
                
                    
                        11. Libraries
                    
                    
                
                    
                        12. Advanced Hardware Synthesis Controls
                    
                    
                
                    
                        13. Intel® High Level Synthesis Compiler Pro Edition Reference Summary
                    
                    
                
                    
                        A. Advanced Math Source Code Libraries
                    
                    
                
                    
                        B. Supported Math Functions
                    
                    
                
                    
                    
                        C. Cyclone® V Restrictions
                    
                
                    
                    
                        D. Intel® HLS Compiler Pro Edition Reference Manual Archives
                    
                
                    
                    
                        E. Document Revision History of the Intel® HLS Compiler Pro Edition Reference Manual
                    
                
            
        
                        
                        
                            
                            
                                6.1. Loop Initiation Interval (ii Pragma)
                            
                        
                            
                            
                                6.2. Loop-Carried Dependencies (ivdep Pragma)
                            
                        
                            
                            
                                6.3. Loop Coalescing (loop_coalesce Pragma)
                            
                        
                            
                            
                                6.4. Loop Unrolling (unroll Pragma)
                            
                        
                            
                            
                                6.5. Loop Concurrency (max_concurrency Pragma)
                            
                        
                            
                            
                                6.6. Loop Iteration Speculation (speculated_iterations Pragma)
                            
                        
                            
                            
                                6.7. Loop Pipelining Control (disable_loop_pipelining Pragma)
                            
                        
                            
                            
                                6.8. Loop Interleaving Control (max_interleaving Pragma)
                            
                        
                            
                                6.9. Loop Fusion
                            
                            
                        
                    
                
                                                
                                                
                                                    
                                                    
                                                        11.4.1.1. Integration of an RTL Module into the HLS Pipeline
                                                    
                                                    
                                                
                                                    
                                                        11.4.1.2. RTL Module Interfaces
                                                    
                                                    
                                                    
                                                
                                                    
                                                        11.4.1.3. RTL Reset and Clock Signals
                                                    
                                                    
                                                    
                                                
                                                    
                                                        11.4.1.4. Object Manifest File Syntax
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        11.4.1.5. Mapping HLS Data Types to RTL Signals
                                                    
                                                    
                                                
                                                    
                                                    
                                                        11.4.1.6. HLS Emulation Models for RTL-Based Functions
                                                    
                                                    
                                                
                                                    
                                                    
                                                        11.4.1.7. Potential Incompatibility between RTL Modules and Partial Reconfiguration
                                                    
                                                    
                                                
                                                    
                                                    
                                                        11.4.1.8. Stall-Free RTL
                                                    
                                                    
                                                
                                                    
                                                    
                                                        11.4.1.9. RTL Module Restrictions and Limitations for HLS Libraries
                                                    
                                                    
                                                
                                            
                                        
                        
                        
                            
                            
                                13.1. Intel® HLS Compiler Pro Edition i++ Command-Line Arguments
                            
                        
                            
                            
                                13.2. Intel® HLS Compiler Pro Edition Header Files
                            
                        
                            
                            
                                13.3. Intel® HLS Compiler Pro Edition Compiler-Defined Preprocessor Macros
                            
                        
                            
                            
                                13.4. Intel® HLS Compiler Pro Edition Keywords
                            
                        
                            
                            
                                13.5. Intel® HLS Compiler Pro Edition Simulation API (Testbench Only)
                            
                        
                            
                            
                                13.6. Intel® HLS Compiler Pro Edition Component Memory Attributes
                            
                        
                            
                            
                                13.7. Intel® HLS Compiler Pro Edition Loop Pragmas
                            
                        
                            
                            
                                13.8. Intel® HLS Compiler Pro Edition Scope Pragmas
                            
                        
                            
                            
                                13.9. Intel® HLS Compiler Pro Edition Component Attributes
                            
                        
                            
                            
                                13.10. Intel® HLS Compiler Pro Edition Component Default Interfaces
                            
                        
                            
                            
                                13.11. Intel® HLS Compiler Pro Edition Component Invocation Interface Control Attributes
                            
                        
                            
                            
                                13.12. Intel® HLS Compiler Pro Edition Component Macros
                            
                        
                            
                                13.13. Intel® HLS Compiler Pro Edition Systems of Tasks API
                            
                            
                        
                            
                            
                                13.14. Intel® HLS Compiler Pro Edition Pipes API
                            
                        
                            
                            
                                13.15. Intel® HLS Compiler Pro Edition Streaming Input Interfaces
                            
                        
                            
                            
                                13.16. Intel® HLS Compiler Pro Edition Streaming Output Interfaces
                            
                        
                            
                            
                                13.17. Intel® HLS Compiler Pro Edition Memory-Mapped Interfaces
                            
                        
                            
                            
                                13.18. Intel® HLS Compiler Pro Edition Load-Store Unit Control
                            
                        
                            
                            
                                13.19. Intel® HLS Compiler Pro Edition Arbitrary Precision Data Types
                            
                        
                    
                
                        
                        
                            
                            
                                B.1. Math Functions Provided by the math.h Header File
                            
                        
                            
                            
                                B.2. Math Functions Provided by the extendedmath.h Header File
                            
                        
                            
                            
                                B.3. Math Functions Provided by the ac_fixed_math.h Header File
                            
                        
                            
                            
                                B.4. Math Functions Provided by the hls_float.h Header File
                            
                        
                            
                            
                                B.5. Math Functions Provided by the hls_float_math.h Header File
                            
                        
                            
                            
                                B.6. Default Rounding Schemes and Subnormal Number Support
                            
                        
                    
                4.4. Avalon® Memory-Mapped Host Interfaces
    A component can interface with an external memory over an  Avalon®  Memory-Mapped (MM) Host interface. 
   
 You can specify the  Avalon®  MM Host interface implicitly using a function pointer argument or reference argument, or explicitly using the mm_host<> class defined in the "HLS/hls.h" header file. Describe a customized  Avalon®  MM Host interface in your code by including a reference to an mm_host<> object in your component function signature. 
   Each mm_host argument of a component results in an input conduit for the address. That input conduit is associated with the component start and busy signals. In addition to this input conduit, a unique Avalon® MM Host interface is created for each address space. Host interfaces that share the same address space are arbitrated on the same interface.
  Avalon®  MM Host interfaces on components always issue requests that address only bytes (not words). For example, the following code example results in 0x0018 on the mm_host interface because 0x0018 = 0x0006 << 2.
    
 
   // 32-bit wide word ihc::mm_master<uint32_t, ihc::dwidth<32>, ihc::awidth<16>, ihc::latency<0>, ihc::waitrequest<true>, ihc::aspace<1>> mm_a; uint32_t value = mm_a[0x0006];In contrast, the following code example results in 0x0006 on the mm_host interface because 0x0006 = 0x0006 << 2.
// 8-bit wide word ihc::mm_master<uint8_t, ihc::dwidth<32>, ihc::awidth<16>, ihc::latency<0>, ihc::waitrequest<true>, ihc::aspace<2>> mm_b; uint32_t value = mm_a[0x0006];
For more information about Avalon® MM Host interfaces, refer to "Avalon Memory-Mapped Interfaces" in Avalon Interface Specifications.
| Template Object or Parameter | Description | 
|---|---|
| ihc::mm_host | The underlying pointer type. | 
| ihc::dwidth | The width of the memory-mapped data bus in bits | 
| ihc::awidth | The width of the memory-mapped address bus in bits. | 
| ihc::aspace | The address space of the interface that associates with the host. | 
| ihc::latency | The guaranteed latency from when a read command exits the component when the external memory returns valid read data. | 
| ihc::maxburst | The maximum number of data transfers that can associate with a read or write transaction. | 
| ihc::align | The alignment of the base pointer address in bytes. | 
| ihc::readwrite_mode | The port direction of the interface. | 
| ihc::waitrequest | Adds the waitrequest signal that is asserted by the agent when it is unable to respond to a read or write request. | 
| getInterfaceAtIndex | This testbench function is used to index into an mm_host object. |