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

Make code verilator compatible #177

Open
harbaum opened this issue Aug 20, 2024 · 0 comments
Open

Make code verilator compatible #177

harbaum opened this issue Aug 20, 2024 · 0 comments

Comments

@harbaum
Copy link

harbaum commented Aug 20, 2024

There are some places in Minimig code where continuous assignments are being used for registers. It seems this doesn't make any difference for synthesis. But when simulating in verilator, the results will not run as those assignments don't match the timing of other ones.

See e.g. these patches:
harbaum/NanoMig@22979a9
and
harbaum/NanoMig@0df4bd0

These patches make the code run in verilator but don't break synthesis ... at least not for gowin FPGAs

In beamcounter parts of an array are used within a register while bit0 uses a continuous assignment. Verilator doesn't like that. The following patch ads a variant that verilator likes:

harbaum/NanoMig@d8d1b9d

As a result the code can be run in verilator making things like this possible:

https://github.com/harbaum/NanoMig/tree/main/sim

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

No branches or pull requests

1 participant