Skip to content

Support Hex String in mode bits of both OpenFPGA architecture file and bitstream setting file #1979

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
tangxifan opened this issue Apr 17, 2025 · 1 comment

Comments

@tangxifan
Copy link
Collaborator

tangxifan commented Apr 17, 2025

Is your feature request related to a problem? Please describe.
Currently, the mode bits of any pb_type can be assigned from

  • OpenFPGA architecture description file. For example,
 <pb_type name="clb.fle[n1_lut6].ble6.lut6" physical_pb_type_name="clb.fle[physical].fabric.frac_logic.frac_lut6" mode_bits="0">
 </pb_type>
  • OpenFPGA bitstream setting file. For example,
<default_mode_bits name="clb.fle[n1_lut6].ble6.lut6" mode_bits="0"/>

The growing complexity of programmable logic blocks, especially DSP and BRAM, results in the large length of mode bits.
For example, the mode selection bits of a DSP can easily reach more than 32 bits.
In such case, the current binary format of mode bits causes issues:

  • No easy to hand craft.
  • Prune to make mistakes
  • Hard to debug

When imagine something like:

<default_mode_bits name="dsp[core].DSP32" mode_bits="00001100001000001100010000000000"/>

Describe the solution you'd like

To simplify the writing, HEX format should be introduced. For example,

<default_mode_bits name="dsp[core].DSP32" mode_bits="32h'0A10B1FE"/>

This will help user to hand-craft long mode bits which is easy to debug.

Considering to add a new syntax to allow users to select between little-endian and big-endian

32H'0A10B1FE -> big endian in HEX format
32h'0A10B1FE -> little endian in HEX format
@tangxifan
Copy link
Collaborator Author

@ganeshgore @tpagarani Feel free to comment here. This is my plan. See if you have further needs. We can address them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant