FPGA-Bitstream

repack

Repack the netlist to physical pbs Repack is an essential procedure before building a bitstream, which aims to packing each programmable blocks by considering only the physical modes. Repack’s functionality are in the following aspects:

  • It annotates the net mapping results from operating modes (considered by VPR) to the physical modes (considered by OpenFPGA)

  • It re-routes all the nets by considering the programmable interconnects in physical modes only.

    Note

    This must be done before bitstream generator and testbench generation. Strongly recommend it is done after all the fix-up have been applied

    --design_constraints

    Apply design constraints from an external file. Normally, repack takes the net mapping from VPR packing and routing results. Alternatively, repack can accept the design constraints, in particular, net remapping, from an XML-based design constraint description. See details in Repack Design Constraints (.xml).

    Warning

    Design constraints are designed to help repacker to identify which clock net to be mapped to which pin, so that multi-clock benchmarks can be correctly implemented, in the case that VPR may not have sufficient vision on clock net mapping. Try not to use design constraints to remap any other types of nets!!!

    --ignore_global_nets_on_pins

    Specify the mapping results of global nets should be ignored on which pins of a pb_type. For example, --ignore_global_nets_on_pins clb.I[0:11]. Once specified, the mapping results on the pins for all the global nets, such as clock, reset etc., are ignored. Routing traces will be appeneded to other pins where the same global nets are mapped to.

    Note

    • This option is designed for global nets which are applied to both data path and global networks. For example, a reset signal is mapped to both a LUT input and the reset pin of a FF. Suggest not to use the option in other purposes!

    • For repack options, the constraints specified by --ignore_global_nets_on_pins have higher priority than those set by ignore_net. When the constraints from --ignore_global_nets_on_pins are satisfied, those from ignore_net will not be checked. For more information on ignore_net, see Repack Design Constraints (.xml).

    Warning

    Users must specify the size/width of the pin. Currently, OpenFPGA cannot infer the pin size from the architecture!!!

    --verbose

    Show verbose log

build_architecture_bitstream

Decode VPR implementing results to an fabric-independent bitstream database

--read_file <string>

Read the fabric-independent bitstream from an XML file. When this is enabled, bitstream generation will NOT consider VPR results. See details at Architecture Bitstream (.xml).

--write_file <string>

Output the fabric-independent bitstream to an XML file. See details at Architecture Bitstream (.xml).

--no_time_stamp

Do not print time stamp in bitstream files

--verbose

Show verbose log

build_fabric_bitstream

Build a sequence for every configuration bits in the bitstream database for a specific FPGA fabric

--verbose

Show verbose log

write_fabric_bitstream

Output the fabric bitstream database to a specific file format

--file <string> or -f <string>

Output the fabric bitstream to an plain text file (only 0 or 1)

--format <string>

Specify the file format [plain_text | xml]. By default is plain_text. See file formats in XML (.xml) and Plain text (.bit).

--filter_value <int>

Warning

Value filter is only applicable to XML file format!

Specify the value to be keep in the bitstream file. Can be [0 | 1 ]. By default is none, which means no filter is applied. When specified, only the bit with the filter value is written to the file. See file formats in XML (.xml).

--path_only

Warning

This is only applicable to XML file format!

Specify that only the path attribute is kept in the bitstream file. By default is off. When specified, only the path attribute is written to the file. Regarding the path attribute, See file formats in XML (.xml).

--value_only

Warning

This is only applicable to XML file format!

Specify that only the value attribute is kept in the bitstream file. By default is off. When specified, only the value attribute is written to the file. Regarding the value attribute, see file formats in XML (.xml).

--trim_path

Warning

This is only applicable to XML file format!

Warning

This is an option for power user! Suggest only to use when you enable the --group_config_block option when building a fabric (See details in build_fabric).

Specify that the path will be trimed by 1 level in resulting bitstream file. By default is off. When specified, the hierarchy of path will be reduced by 1. For example, the original path is fpga_top.tile_1__1_.config_block.sub_mem.mem_out[0], the path after trimming is fpga_top.tile_1__1_.config_block.mem_out[0]. Regarding the path attribute, see file formats in XML (.xml).

--fast_configuration

Reduce the bitstream size when outputing by skipping dummy configuration bits. It is applicable to configuration chain, memory bank and frame-based configuration protocols. For configuration chain, when enabled, the zeros at the head of the bitstream will be skipped. For memory bank and frame-based, when enabled, all the zero configuration bits will be skipped. So ensure that your memory cells can be correctly reset to zero with a reset signal.

Warning

Fast configuration is only applicable to plain text file format!

Note

If both reset and set ports are defined in the circuit modeling for programming, OpenFPGA will pick the one that will bring largest benefit in speeding up configuration.

--keep_dont_care_bits

Keep don’t care bits (x) in the outputted bitstream file. This is only applicable to plain text file format. If not enabled, the don’t care bits are converted to either logic 0 or 1.

--no_time_stamp

Do not print time stamp in bitstream files

--verbose

Show verbose log

write_io_mapping

Output the I/O mapping information to a file

--file <string> or -f <string>

Specify the file name where the I/O mapping will be outputted to. See file formats in I/O Mapping File (.xml).

--no_time_stamp

Do not print time stamp in bitstream files

--verbose

Show verbose log

report_bitstream_distribution

Output the bitstream distribution to a file

--file <string> or -f <string>

Specify the file name where the bitstream distribution will be outputted to. See file formats in Bitstream Distribution File (.xml).

--depth <int> or -d <int>

Specify the maximum depth of the block which should appear in the block

--no_time_stamp

Do not print time stamp in bitstream files

--verbose

Show verbose log