Intel® High Level Synthesis Compiler Standard Edition: Reference Manual
                    
                        ID
                        683310
                    
                
                
                    Date
                    12/18/2019
                
                
                    Public
                
            
                
                    
                    
                        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
                            
                        
                    
                8.1. Declaring ac_int Data Types
 The HLS compiler package includes an ac_int.h header file to provide arbitrary precision integer support in your component. 
  
 
  -  Include the ac_int.h header file in your component in the following manner: 
    #ifdef __INTELFPGA_COMPILER__ #include "HLS/ac_int.h" #else #include "ref/ac_int.h" #endif
-  After you include the header file, declare your ac_int variables in one of the following ways: 
    - Template-based declaration 
      - ac_int<N, true> var_name; //Signed N bit integer
- ac_int<N, false> var_name; //Unsigned N bit integer
 
- Predefined types up to 63 bits 
      - intN var_name; //Signed N bit integer
- uintN var_name; //Unsigned N bit integer
 
 Where N is the total length of the integer in bits.Restriction:If you want to initialize an ac_int variable to a value larger than 64 bits, you must use the bit_fill or bit_fill_hex utility function. For details see "2.3.14 Methods to Fill Bits" in Mentor Graphics Algorithmic C (AC) Datatypes, which is available as <quartus_installdir>/hls/include/ref/ac_datatypes_ref.pdf. The following code example shows the use of the bit_fill or bit_fill_hex utility functions:typedef ac_int<80,false> i80_t; i80_t x; x.bit_fill_hex(“a9876543210fedcba987”); // member funtion x = ac::bit_fill_hex<i80_t>(“a9876543210fedcba987”); // global function int vec[] = { 0xa987, 0x6543210f, 0xedcba987 }; x.bit_fill(vec); // member function x = bit_fill<i80_t>(vec); // global function // inlining the constant array x.bit_fill( (int [3]) { 0xa987,0x6543210f,0xedcba987 } ); // member function x = bit_fill<i80_t>( (int [3]) { 0xa987,0x6543210f,0xedcba987 } ); // global function
- Template-based declaration 
      
For a list of supported operators and their return types, see "Chapter 2: Arbitrary-Length Bit-Accurate Integer and Fixed-Point Datatypes" in Mentor Graphics Algorithmic C (AC) Datatypes, which is available in the following file: <quartus_installdir>/hls/include/ref/ac_datatypes_ref.pdf.