SPRUIG6K January   2018  – March 2024

 

  1.   1
  2.   C7000 Host Emulation
  3. About This Document
    1. 1.1 Related Documentation
    2. 1.2 Disclaimer
    3. 1.3 Trademarks
  4. Getting Started with Host Emulation
    1. 2.1 System Requirements
    2. 2.2 Installation Instructions
    3. 2.3 Summary of Differences: Host Emulation Coding vs. Native C7000 Coding
  5. General Coding Requirements
    1. 3.1 Required Header Files
    2. 3.2 Package Dependencies
    3. 3.3 Example Program
  6. Intrinsics
    1. 4.1 OpenCL-Like Intrinsics
    2. 4.2 Streaming Address Generator Intrinsics
    3. 4.3 C6000 Legacy Intrinsics
    4. 4.4 Memory System Intrinsics
  7. TI Vector Types
    1. 5.1 Constructors
    2. 5.2 Accessors
    3. 5.3 Vector Operators
    4. 5.4 Print Debug Function
  8. Streaming Engine and Streaming Address Generator
  9. Lookup Table and Histogram Interface
    1. 7.1 Lookup Table and Histogram Data
  10. C6000 Migration
    1. 8.1 __float2_t Legacy Data Type
  11. Matrix Multiply Accelerator (MMA) Interface
  12. 10Compiler Errors and Warnings
    1. 10.1 Key Terms Found in Compiler Errors and Warnings
    2. 10.2 Host Emulation Specific Syntax
  13. 11Revision History
  14.   35

Package Dependencies

Programs written for C7000 Host Emulation must use the C++14 language due to the underlying implementation, which relies heavily on C++14 constructs and features.

Depending on the compiler, a special flag to enable C++14 support may be required in the compilation command.

While not mandated, it is highly encouraged that you use standard integer types (such as int32_t ) when programming using C7000 Host Emulation. Usage of built-in data types may compile and run, but these results cannot be guaranteed to be correct on all platforms. Using standard integer types in place of the corresponding built-in type will achieve correct results and will have no effect on the ability to transition the program to the C7000 compiler.

Use of C7000 compiler attributes and directives will create undefined warnings when using Host Emulation. This behavior is expected and cannot be remedied. If these attributes and directives are required for the program to run on a target chip, the warnings can typically be suppressed on the Host Emulation compiler.

The C7000 Host Emulation package does not emulate C7000 compiler pragmas. As a result, C7000 compiler pragmas will have no effect when used in code run with C7000 Host Emulation.

A full list of C7000 compiler symbols that are defined automatically when using Host Emulation are provided in Table 3-2

Table 3-2 C7000 Preprocessor Symbols
Defined Preprocessor SymbolsDescription
__C7000__Defined if compiled for the C7000 target or any type of C7000 Host Emulation.
__C7100__Defined if compiled for C7100 Host Emulation.
__C7120__ Defined if compiled for C7120 Host Emulation.
__C7504__ Defined if compiled for C7504 Host Emulation.
__C7X_HOSTEM__ Defined if compiled for Host Emulation. This is not defined when the target compiler (cl7x) is used.
__little_endian__Defined by default.