OpenFPGA icon indicating copy to clipboard operation
OpenFPGA copied to clipboard

Support Fully Customizable Scan-chain in Fabric Netlist Generator

Open tangxifan opened this issue 4 years ago • 2 comments

Is your feature request related to a problem? Please describe. Scan chain has been widely used in SOFA project because enables testable FPGA fabric. The scan chain organization follows a snake-like organization.

image

However, the scan-chain insertion is not automated yet in OpenFPGA's fabric generator. A lot of manual work is required. Currently, the scan-chain connection support is very limited, as shown in

https://openfpga.readthedocs.io/en/master/manual/arch_lang/direct_interconnect/#example

image

Such connection will cause long interconnecting wires in scan-chain, slowing down the operating speed and inducing large area overhead.

Plus the head and tail of scan-chain is not automatically generated and wired in OpenFPGA's fabric generator.

So the scan-chain support has to be significantly reworked.

Describe the solution you'd like

  • We should deprecate the https://openfpga.readthedocs.io/en/master/manual/arch_lang/direct_interconnect/#directlist
  • Then consider a scan-chain key file, similar to the fabric key file As such, we can enable fully customizable scan-chain generation.
  • Also, the scan-chain head and tail should be identified through new syntax in OpenFPGA architecture description file. As a result, the head and tail ports can be automatically generated in the FPGA netlists.

For example,

<scanchain>
  <head tile="clb" x="6" y="6" port="sc_in"/>
  <tail tile="clb" x="6" y="1" port="sc_out"/>
   <key file="scan_chain_connection.xml"/>
</scanchain> 

tangxifan avatar Jul 12 '21 23:07 tangxifan

Why deprecate the Directlist its useful in general right ?

ganeshgore avatar Jul 13 '21 00:07 ganeshgore

@ganeshgore It is barely used actually in our tape-outs. Also the Directlist is part of VPR's architecture description language, which means it should be reflected in RRGraph. Considering our strategy that RRGraph changes should be part of VPR not OpenFPGA, it is better to deprecate such feature.

tangxifan avatar Jul 13 '21 01:07 tangxifan