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 byignore_net
. When the constraints from--ignore_global_nets_on_pins
are satisfied, those fromignore_net
will not be checked. For more information onignore_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
or1
)
- --format <string>
Specify the file format [
plain_text
|xml
]. By default isplain_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 isnone
, 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 isoff
. When specified, only thepath
attribute is written to the file. Regarding thepath
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 isoff
. When specified, only thevalue
attribute is written to the file. Regarding thevalue
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 isoff
. When specified, the hierarchy ofpath
will be reduced by 1. For example, the original path isfpga_top.tile_1__1_.config_block.sub_mem.mem_out[0]
, the path after trimming isfpga_top.tile_1__1_.config_block.mem_out[0]
. Regarding thepath
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 logic0
or1
.
- --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