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 Alchitry Au board definition #48

Merged
merged 2 commits into from Feb 10, 2020
Merged

Add Alchitry Au board definition #48

merged 2 commits into from Feb 10, 2020

Conversation

TiltMeSenpai
Copy link
Contributor

Copy-Paste from m-labs/nmigen-boards#44 follows:
Notes:

  • Alchitry Au requires a loader program from Alchitry. I tried to follow a pattern similar to what
    nmigen uses to locate Yosys/Vivado but I'm not sure if that's the right approach
  • DDR3 is untested. The pins are copied from the schematic so I may have gotten something wrong there.
  • There's also an IO shield for the Au with a few buttons, some 7 segment displays, and a bunch of
    LED's. I was debating adding a resource for that, similar to how the icebreaker pmod's are defined, but ultimately decided I was gambling whether I'd finish that pin definition before running out of motivation. Let me know if you'd like that pin definition in this PR and I'll try to add it.

@whitequark
Copy link
Member

  • Alchitry Au requires a loader program from Alchitry. I tried to follow a pattern similar to what
    nmigen uses to locate Yosys/Vivado but I'm not sure if that's the right approach

Looks good to me.

  • DDR3 is untested. The pins are copied from the schematic so I may have gotten something wrong there.

That's fine--we have a bunch of untested peripherals on most boards. For now I think it doesn't make sense to be super strict about it, especially given that the effort to fully functionally verify the pinouts can be quite large.

  • There's also an IO shield for the Au with a few buttons, some 7 segment displays, and a bunch of
    LED's. I was debating adding a resource for that

We have a few missing peripherals on a few boards, too. It's not great, but it's not a blocker, especially given that there are quite a few boards with an absolutely massive number of peripherals and pins used.

]

connectors = [
Connector("bank", 0, "T8 T7 T5 R5 R8 P8 L2 L3 J1 K1 H1 H2 G1 G2 K5 E6"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is unfortunately wrong because you ended up defining a pin "E6T10" (there's no space at the end). I'll fix this in this PR, and I'll try to fix this properly in nmigen.build (probably allow using multiple string arguments).

@@ -0,0 +1,85 @@
import os
import subprocess
import shutil
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've moved the shutil import here since nMigen already depends on it, anyway.

"B1 C1 C2 C3 D3 E3 C4 D4 G4 G5 E5 F5 D5 D6 C6 C7 "),
Connector("bank", 2, "T13 R13 T12 R12 R11 R10 N2 N3 P3 P4 M4 L4 N4 M5 L5 P5 "
"P11 P10 N12 N11 P13 N13 M1 M2 P1 N1 R1 R2 T2 R3 T3 T4 "),
Connector("bank", 3, "L14 L13 M12 N16 R16 R15 P14 M15 P16 P15 - - - - - - "
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You did define non-IO pins appropriately here; the - marker exists exactly for this case.

@whitequark whitequark merged commit 50283a0 into amaranth-lang:master Feb 10, 2020
@whitequark
Copy link
Member

Thanks!

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.

None yet

2 participants