Skip to content

Latest commit

 

History

History
73 lines (40 loc) · 3.16 KB

bitstream_setting.rst

File metadata and controls

73 lines (40 loc) · 3.16 KB

Bitstream Setting (.xml)

An example of bitstream settings is shown as follows. This can define a hard-coded bitstream for a reconfigurable resource in FPGA fabrics.

Warning

Bitstream setting is a feature for power-users. It may cause wrong bitstream to be generated. For example, the hard-coded bitstream is not compatible with LUTs whose nets may be swapped during routing stage (cause a change on the truth table as well as bitstream). It is users's responsibility to ensure correct bitstream.

<openfpga_bitstream_setting>
  <pb_type name="<string>" source="eblif" content=".param LUT" is_mode_select_bistream="true" bitstream_offset="1"/>
  <interconnect name="<string>" default_path="<string>"/>
</openfpga_bitstream_setting>

The following syntax are applicable to the XML definition tagged by pb_type in bitstream setting files.

name="<string>"

The pb_type name to be constrained, which should be the full path of a pb_type consistent with VPR's architecture description. For example,

pb_type="clb.fle[arithmetic].soft_adder.adder_lut4"

source="<string>"

The source of the pb_type bitstream, which could be from a .eblif file. For example,

source="eblif"

content="<string>"

The content of the pb_type bitstream, which could be a keyword in a .eblif file. For example, content=".attr LUT" means that the bitstream will be extracted from the .attr LUT line which is defined under the .blif model (that is defined under the pb_type in VPR architecture file).

is_mode_select_bitstream="<bool>"

Can be either true or false. When set true, the bitstream is considered as mode-selection bitstream, which may overwrite mode_bits definition in pb_type_annotation of OpenFPGA architecture description. (See details in annotate_vpr_arch_pb_type_annotation)

bitstream_offset="<int>"

Specify the offset to be applied when overloading the bitstream to a target. For example, a LUT may have a 16-bit bitstream. When offset=1, bitstream overloading will skip the first bit and start from the second bit of the 16-bit bitstream.

The following syntax are applicable to the XML definition tagged by interconnect in bitstream setting files.

name="<string>"

The interconnect name to be constrained, which should be the full path of a pb_type consistent with VPR's architecture description. For example,

pb_type="clb.fle[arithmetic].mux1"

default_path="<string>"

The default path denotes an input name that is consistent with VPR's architecture description. For example, in VPR architecture, there is a mux defined as

<mux name="mux1" input="iopad.inpad ff.Q" output="io.inpad"/>

The default path can be either iopad.inpad or ff.Q which corresponds to the first input and the second input respectively.