f4pga / ideas

Random ideas and interesting ideas for things we hope to eventually do.
86 stars 9 forks source link

Improve the visual representation of the placement done by VTR #40

Open tmichalak opened 4 years ago

tmichalak commented 4 years ago

Brief explanation

Implement a mechanism that will allow for better visual representation of the placement done by VTR by highlighting the instances on various hierarchy levels with a set of colors.

Expected results

The result of this work should be a vivado compatible script produced during the fasm2bels stage in the SymbiFlow flow that will perform the highlighting which can be later on viewed in the Vivado design viewer.

Detailed Explanation

During the fasm2bels stage in symbiflow-arch-defs the fasm information is transformed into a post-P&R design in form of a verilog netlist and few TCL scripts that can be later on read by Vivado. One of the scripts contains the information about which BELs should be instantiated and how they should be connected. Since this script is read by Vivado it can contain all commands which the tool supports, such as highlight.

However, the critical part of this task lies in obtaining the information that can be used for the generation of the highlighting/coloring commands.

Since the hierarchy information is lost due to flattening performed during synthesis done in Yosys, one option would be to prepare a Yosys plugin (akin to other symbiflow plugins) that would add a COLOR attribute for each cell and make sure that it appears in the final eblif. Next, during fasm2bels the information from the eblif could be combined with the result of the fasm decoding and the color attribute could be attached to the respective cell.

The information specifying what colors should be used and for what could be passed with an additional command added as part of the new yosys plugin. For example, the command could take a parent module name and color, and assign it to all child cells.

Further reading