Skip to content
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

Add VTR backend #263

Open
1 of 5 tasks
jgoeders opened this issue Aug 23, 2021 · 8 comments
Open
1 of 5 tasks

Add VTR backend #263

jgoeders opened this issue Aug 23, 2021 · 8 comments

Comments

@jgoeders
Copy link

jgoeders commented Aug 23, 2021

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

  • Arch, channel width (Add VTR backend #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
@mithro
Copy link

mithro commented Aug 23, 2021

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

@mithro
Copy link

mithro commented Aug 23, 2021

@jgoeders
Copy link
Author

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?

@mithro
Copy link

mithro commented Aug 23, 2021

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

@kgugala
Copy link
Collaborator

kgugala commented Aug 25, 2021

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

@mkurc-ant
Copy link

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: f4pga/f4pga-arch-defs#2225

@mithro
Copy link

mithro commented Aug 26, 2021

@mkurc-ant - As we were discussing in f4pga/f4pga-arch-defs#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?

@jgoeders
Copy link
Author

Basic backend added in #271 .

Will update original post with plan for future functionality.

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

4 participants