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

Port to yosys and ECP5? #34

Open
shapr opened this issue Sep 11, 2018 · 2 comments
Open

Port to yosys and ECP5? #34

shapr opened this issue Sep 11, 2018 · 2 comments

Comments

@shapr
Copy link

shapr commented Sep 11, 2018

The yosys suite supports the ECP5 family of FPGAs, would the Reduceron work with such a combination?

A quick glance at the Cyclone IV says the max gate count is about 150,000.
The ECP5 gets as large as 85,000 gates, that's a big difference.

Any idea how many gates are used with the current design?

@tommythorn
Copy link
Owner

tommythorn commented Jan 20, 2020

I just noticed your issue, apparently I wasn't getting notifications :(

Yeah, I really should get on with a port (or even better, help someone else with one). As for your question, Reduceron doesn't actually take that many LUTs/FFs (I forgot the count), but the biggest issue is that currently the heap is completely implemented with blockrams (uses no external memory), thus there's a minimum needed to run all examples and there's a number below which performance degrades exponentially do with GC running more and more frequently.

I don't recall the precise numbers, but the rule of thumb I was using was that 4.6 Mb was near the minimum I'd consider. The largest ECP5, the 85F has only 3.7Mb (not including 0.6 Mb of distributed memory) so it's probably to small to run all the examples [fast], but certainly can run some of them.

I actually did take a quick stab at it many months ago but ran into Yosys not being able to infer true dual-ported rams. It's not the end of the world (just instantiate the blocks), but it was more work than I was willing to do at the time.

The way to proceed is almost entirely about adding support for ECP5 to Red-Lava; and that is almost all about adding support for the ram blocks, so it's not too bad. Once all the examples run, Reduceron should run as well.

This would happen sooner if a volunteer came forth to drive this.

@tommythorn
Copy link
Owner

This is one of the issues I referred to: YosysHQ/yosys#1101

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

2 participants