11.4.2. Creating a Static-Object File from an RTL Module
Before an RTL module can be included in a library intended for use in an Intel® HLS Compiler design, create a platform-specific object (.o files on Linux, .obj files on Windows) from the RTL module. Use the fpga_crossgen command to create the object.
For instructions on creating an OpenCL* library object file from RTL, see " Packaging an RTL Component for an OpenCL Library " in the Intel® FPGA SDK for OpenCL™ Pro Edition Programming Guide.Before you can create an HLS library object from an RTL module, ensure that the functions in your RTL module are functionally correct and that you have the following files ready:
- RTL module source files
These files are the Verilog (.v), System Verilog (.sv), or VHDL (.vhdl) files and the accompanying memory initialization files (.mif or .hex) that define the RTL modules.
- RTL object manifest file
This XML file describes the callable interfaces of your RTL modules. Review Object Manifest File Syntax for details about what to include in this XML file.
- HLS emulation model file
These C++ files (.cpp and .h) provide an emulation model for the RTL module that allows you to emulate your component when it includes an HLS library that contains this RTL module. Full hardware compilations use the RTL source files.
- RTL module function signature file
This C-style header file (.h) declares the signatures of the functions that are implemented by the RTL module and described in the object manifest file. Include this file in you HLS component code for the component to call the functions provided by the RTL modules packaged in the object.
fpga_crossgen <object_manifest_file_name> --target hls --emulation_model <emulation_model_file_location> [-o <object_file_name>]
Where <object_manifest_file_name> is the full path of the RTL object manifest (.xml) file including the file name. This path can be a full or relative path.
If you do not specify an object file name with the -o option, the object file name defaults to be the same name as the object manifest file name. That is, an object manifest file named manifest.xml results in an object file named manifest.o (on Linux) or manifest.obj (on Windows).
The output of the command is a platform-specific object file ( (.o on Linux, .obj on Windows). The platform of the object file is determine by the platform where you run the fpga_crossgen command. When you run the command on Linux, you get a .o object file. When you run the command on Windows, you get a .obj object file.