chipsalliance / fpga-interchange-schema

https://fpga-interchange-schema.readthedocs.io/
Apache License 2.0
51 stars 20 forks source link

Add Wire types and categories #31

Closed gatecat closed 3 years ago

gatecat commented 3 years ago

This is useful for several purposes:

the criteria for general in terms of intent would probably be similar to this heuristic in nextpnr-xilinx: https://github.com/daveshah1/nextpnr-xilinx/blob/xilinx-upstream/xilinx/arch.cc#L778-L784 - the split between special and global should hopefully end up fairly clear too and I'd be happy to work on the RapidWright side of this too

cc @acomodi @clavin-xlnx

gatecat commented 3 years ago

I have updated this PR with a new proposal, following discussion. This adds a type field to wires, which refers to a named type that can then store extra metadata for that type, for Xilinx devices type would most likely correspond 1:1 with intent.

The wire categories (which might still need to be refined) are then attached to the wire types, as could other data in the future. I think these might be useful for providing extra hints to certain routing algorithms, such as doing channel allocation.

gatecat commented 3 years ago

Friendly bump for a final review and/or merge @mithro @kgugala