edalize icon indicating copy to clipboard operation
edalize copied to clipboard

Add VTR backend

Open jgoeders opened this issue 3 years ago • 8 comments

I'm going to work on running VTR from edalize, and will track progress here.

  • [x] Arch, channel width (#271)
  • [ ] Design: including multiple files
  • [ ] Flow: Odin or Odin plus Yosys, bitstream generator
  • [ ] CAD options as string (detailed options)
  • [ ] Could run symbiflow or OpenFPGA as test cases → end-to-end test

jgoeders avatar Aug 23 '21 15:08 jgoeders

@jgoeders - I'm pretty sure Antmicro has already added this work. @kgugala - Who was working on this?

mithro avatar Aug 23 '21 16:08 mithro

See https://github.com/olofk/edalize/pulls?q=is%3Apr+vpr+is%3Aclosed

mithro avatar Aug 23 '21 16:08 mithro

OK, those look like like nextpnr and Symbiflow backends. I thought in the VTR meeting we had discussed creating an Edalize backend specifically for VTR. Am I misunderstanding?

jgoeders avatar Aug 23 '21 16:08 jgoeders

The SymbiFlow backend uses VPR, so I think the work is just making sure the SymbiFlow backend is usable for the VtR use cases?

mithro avatar Aug 23 '21 17:08 mithro

there is an ongoing work on having better wrappers in SymbiFlow (python based). Those should be more configurable than the ones we have now. I believe we can also use those (or adapt) for VtR use cases. @mkurc-ant is coordinating this work

kgugala avatar Aug 25 '21 17:08 kgugala

IMO we should treat the Symbiflow backend and a "pure" VPR backend as separate. The reason is that Symbiflow architectures that use VPR rely on dedicated helper scripts that are run in between VPR stages. For example there is a Python script that generates IO constraints which has to be run after VPR packing and before placement. Not to mention the requirement of using specific VPR options.

Therefore I think that we should stick to the wrapper scripts that are used in Symbiflow because they take care of all the intricacies required for correct VPR utilization. Moreover, relevant changes can be added to them when needed without touching edealize. And yes there is an effort for the wrapper scripts enchancement, see this PR: https://github.com/SymbiFlow/symbiflow-arch-defs/pull/2225

mkurc-ant avatar Aug 26 '21 08:08 mkurc-ant

@mkurc-ant - As we were discussing in https://github.com/SymbiFlow/symbiflow-arch-defs/pull/2225 it is unclear to me if using a wrapper script is the right approach here. It seems like for the generating IO constraints, this should be integrated into upstream VtR?

mithro avatar Aug 26 '21 17:08 mithro

Basic backend added in #271 .

Will update original post with plan for future functionality.

jgoeders avatar Sep 15 '21 20:09 jgoeders