Contributors needed: Port Pong to new FPGA boards

42 views
Skip to first unread message

ÉRDI Gergő

unread,
Aug 21, 2021, 8:58:43 AMAug 21
to clash-l...@googlegroups.com
Hi,

If anyone is looking for a project, I'm doing a talk at Haskell Love on
Clash and will be using https://github.com/gergoerdi/clash-pong as the
running example. It would be great if someone ported the Shake parts and
the target-specific parts to a non-Xilinx-based FPGA dev board as well.

For IO, it only requires VGA output, two pushbuttons for input, and a
25.175 MHz clock. Please see the files in e.g.
https://github.com/gergoerdi/clash-pong/tree/master/target/nexys-a7-50t
for the target-specific stuff; it would also need Shake rules for the
non-Xilinx toolchain added to https://hackage.haskell.org/package/clash-shake

I think the Intel MAX 10-based DECA FPGA board would be a great choice for
this, because it has been recommended here on the mailing list as a nice &
cheap starter board. The other good candidate would be an iCE that is
supported by the open-source toolchain.

Is anyone up to this challenge? Best would be to have it working by
Haskell Love (10th Sep), but this would be generally useful at any later
date as well.

Bye,
Gergo

--

.--= ULLA! =-----------------.
\ http://gergo.erdi.hu \
`---= ge...@erdi.hu =-------'

Dylan Thinnes

unread,
Sep 6, 2021, 1:50:32 PMSep 6
to Clash - Hardware Description Language
Hey, got it working on the DECA, https://github.com/dylan-thinnes/clash-pong, under target/arrow-deca, though currently I use a GUI to program it. I'll look at doing it through CLI later tonight, though maybe Christian can help with that?
I'm keen to get this working before Haskell Love, what time would be best for you (tomorrow onwards) for scheduling a call about working the CLI workflow into Shake?

Cheers,
Dylan

Dylan Thinnes

unread,
Sep 6, 2021, 2:41:07 PMSep 6
to Clash - Hardware Description Language
If you don't have time for a call, no worries.

Gergő Érdi

unread,
Sep 6, 2021, 8:40:14 PMSep 6
to CLaSH - Hardware Description Language, dylan.thinnes, Christiaan Baaij
Wow this is great!

CCing Christiaan about the Intel toolchain CLI question. Once you have that, we could discuss the Shake integration ideally on Wednesday. I can do between 10:30 AM and 3:00 PM UTC.


--
You received this message because you are subscribed to the Google Groups "Clash - Hardware Description Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clash-languag...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/clash-language/f218d4e6-fbf1-4315-b8c1-c639fa1bd9b8n%40googlegroups.com.

Dylan Thinnes

unread,
Sep 7, 2021, 8:02:23 AMSep 7
to Clash - Hardware Description Language
3PM UTC sounds good to me. It looks like the only command needed to build the bitstream is `quartus_sh --flow compile ArrowDecaPong.qpf`. Does Shake also handle flashing, because if so I still need to figure out how to reliably do that from CLI.

Dylan Thinnes

unread,
Sep 7, 2021, 8:02:59 AMSep 7
to Clash - Hardware Description Language
Sorry, meant to type 2PM UTC.

Gergő Érdi

unread,
Sep 7, 2021, 8:35:44 AMSep 7
to CLaSH - Hardware Description Language
It's up to you, really. The A7 handles uploading because it is done via the Xilinx toolchain, and the Papilio ones don't because that requires an extra external executable.

I think we should try to get it working as far as we can for Friday, and then later think about how to automate more of the file generation. For both existing (Xilinx) backends, a lot of the project files are generated with Shake, but it's OK for now if they are checked into the Pong repo.

I've sent you a calendar invite with a Google Meet link.


Dylan Thinnes

unread,
Sep 8, 2021, 4:26:00 AMSep 8
to Clash - Hardware Description Language
I've seen the invite, but I can't RSVP, so I'm confirming here.

Dylan Thinnes

unread,
Sep 8, 2021, 11:17:28 AMSep 8
to Clash - Hardware Description Language
MVI_1145.mp4
Reply all
Reply to author
Forward
0 new messages