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

fud check warning when the gcc version is below 10.0 #1408

Open
gabizon103 opened this issue Apr 12, 2023 · 9 comments
Open

fud check warning when the gcc version is below 10.0 #1408

gabizon103 opened this issue Apr 12, 2023 · 9 comments
Labels
C: fud Calyx Driver good first issue Good issue to start contributing on Calyx S: Available Can be worked upon

Comments

@gabizon103
Copy link

I followed the Getting Started tutorial and was able to successfully install everything needed - running fud check tells me that everything besides interpreter, dahlia, verilog, vcd, synth-verilog, and vivado-hls was installed correctly.

However, when I run the given command
fud e examples/tutorial/language-tutorial-iterate.futil \ -s verilog.data examples/tutorial/data.json \ --to dat --through icarus-verilog -v , I do not get the expected result.

I get:
{ "cycles": 100, "memories": { "mem": [ 10 ] } }

The expected result is:
{ "cycles": 100, "memories": { "mem": [ 42 ] } }

Clearly, the value in memory is not being updated, but I'm not sure why. If anyone has seen this before or has ideas about what might be going wrong, I would really appreciate some help! (and apologies in advance if this is a silly fix, which I feel it might be).

@EclecticGriffin
Copy link
Collaborator

EclecticGriffin commented Apr 12, 2023

Seems to be an issue with icarus in this case, the verilog and interpreter-out targets produce the expected results. If I had to guess without looking at a waveform I'd suspect it was an x-simulation thing, that's often the culprit in these cases.

Will investigate later

@rachitnigam
Copy link
Contributor

Argh, that's weird. Can you try using verilator instead by passing --through verilog?

@gabizon103
Copy link
Author

That didn't work either, but for a different reason. Here's the output I got:

image

I wasn't sure if this was due to an issue with my installation, but I reinstalled verilator and got this same issue.

@rachitnigam
Copy link
Contributor

Can you run the “fud” command with the extra option “-vv”? That’ll give you some more information

@gabizon103
Copy link
Author

Here's what I got:

image

@gabizon103
Copy link
Author

Updating to gcc-10 fixed this. Still not sure why icarus isn't working, but at least I can run Calyx programs now. Thanks!

@rachitnigam
Copy link
Contributor

Oh, good find! What was the previous version you were using? I think a lot of us have been using clang but kinda surprising that old gcc versions don’t work

@gabizon103
Copy link
Author

I was using 9.4.0 before

@rachitnigam
Copy link
Contributor

Okay, in that case we should probably have some sort of fud check warning when the GCC version is less than 10.0?

@rachitnigam rachitnigam changed the title Getting incorrect result running Calyx tutorial example fud check warning when the gcc version is below 10.0 Apr 19, 2023
@rachitnigam rachitnigam added C: fud Calyx Driver good first issue Good issue to start contributing on Calyx S: Available Can be worked upon labels Apr 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: fud Calyx Driver good first issue Good issue to start contributing on Calyx S: Available Can be worked upon
Projects
None yet
Development

No branches or pull requests

3 participants