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
DPI problem with wide (>32 bit) task arguments #359
Comments
Original Redmine Comment There are several DPI fixes in the git version, is this against that or the release? |
Original Redmine Comment It is against the very latest I pulled from git last night. |
Original Redmine Comment Hints on debugging: You can see the internals.txt file in the distribution directory. Modify test_regress/t_dpi_export.v to show the problem. Then run test_regress/t/t_dpi_export.pl --debug. You'll see the test_regress/obj_dir/t_dpi_export/.tree files and probably see the relevant additions of DPI wrapper code occurs in the _task.tree step. So, the code is probably |
Original Redmine Comment I noted the t_dpi_export.v test already had a 96 bit task, and checks that the value gets passed. You might want to compare that with your failing case to see what's different. |
Original Redmine Comment Actually, t_dpi_export.v has a 95 bit task (input bit [94:0] i ...). If I change it to 96 bits or 128 bits, I see the problem. It seems like there is an issue with integer multiples of 32 bits. |
Original Redmine Comment Ahh, a big hint. Do you want to stab more at repairing this? |
Original Redmine Comment I spent a few hours trying to nail down the cause of the problem, but no luck. I will look at it more on the weekend and if I need help, I'll yell. |
Original Redmine Comment Had a few minutes to took a look, it's an emitter problem. Fixed in git. |
Author Name: Chandan Egbert
Original Redmine Issue: 359 from https://www.veripool.org
Original Date: 2011-06-21
Original Assignee: Wilson Snyder (@wsnyder)
When a task whose argument is wider than 32 bits is exported as a DPI call, calling the task from C appears to do nothing. The generated C code does not seem to assign the passed arguments to the internal variable. Run the attached example with "sh doit.sh" to see the problem.
The text was updated successfully, but these errors were encountered: