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 ZedBoard. #135

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Add ZedBoard. #135

wants to merge 1 commit into from

Conversation

nfbraun
Copy link

@nfbraun nfbraun commented Dec 12, 2020

Add a minimal board config for the ZedBoard.

TODO:

  • Add support for pushbuttons.
  • Add support for PMOD connectors.
  • Add support for FMC connector.
  • Add support for OLED display.
  • Add support for VGA interface.
  • Add support for HDMI interface.
  • Add support for audio interface.

Open questions:

  • The I/O voltage for the switches (and buttons) is configured via a jumper on the ZedBoard. How should this be configured in the board config?
  • The Zynq requires that there is exactly one PS7 instance (used for communication between the programmable logic and the hard processor part of the device). If that is the missing, the generated bitstream does not work, even if it does not communicate with the processor at all (e.g. a simple blinky). Can/should the board config somehow handle this?

@rroohhh
Copy link
Contributor

rroohhh commented Dec 12, 2020

  • The I/O voltage for the switches (and buttons) is configured via a jumper on the ZedBoard. How should this be configured in the board config?

Currently this is handled by a constructor argument, see this.

  • The Zynq requires that there is exactly one PS7 instance (used for communication between the programmable logic and the hard processor part of the device). If that is the missing, the generated bitstream does not work, even if it does not communicate with the processor at all (e.g. a simple blinky). Can/should the board config somehow handle this?

Currently this is not done by the boards, see amaranth-lang/amaranth#525 for the current discussion around how to resolve that.

@nfbraun
Copy link
Author

nfbraun commented Dec 13, 2020

Thanks for the hint, I have updated the PR accordingly.

@nfbraun nfbraun marked this pull request as ready for review December 17, 2020 21:51
@Lunaphied
Copy link

The Zynq requires that there is exactly one PS7 instance (used for communication between the programmable logic and the hard processor part of the device). If that is the missing, the generated bitstream does not work, even if it does not communicate with the processor at all (e.g. a simple blinky). Can/should the board config somehow handle this?

As far as I'm aware this is simply not true. While I did think this in the past, it turns out there's a different issue with the board that causes failure. The real issue is that the processor will often stop working after the bitstream gets loaded if you load it from a running system. If you load it over JTAG or flash directly this is not such a concern if you're not actually using the hard processor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants