-
Notifications
You must be signed in to change notification settings - Fork 540
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
Way to run vvp programatically, and receive call-backs to self? #665
Comments
(like, an ideal option might be if vvp can be compiled as a shared object, and linked to, like |
So, this is kind of a mess, but proof of concept at https://github.com/steveicarus/iverilog/compare/master...hughperkins:hp/poc-vvp-so?expand=1 It's a mess because this combines:
That said, it runs. It does assume that iverilog is built into
The output will hopefully resemble:
What is happening? So:
Thoughts? (obviously this should be cleaned up a bunch. Happy to help with that :) ) (So, basically the changes that would be needed on iverilog side:
) |
(created a somewhat tighter PR #667 ) |
Oh, hmmm, GPL 2.0. Hmmm. That sounds like it implies that if I link any code with iverilog, it has to be GPL 2.0 too. Not sure that will meet my requirements. I guess it's too late but ... dont suppose.. any chance the license for iverilog could change to eg MIT please? (i.e. something that allows linking, for non-opensource projects; edit: and for non-GPL 2.0 projects). |
(for example, if I distributed a pytorch library, which used iverilog to simulate my GPU, I'd need to make that pytorch library GPL 2.0 currently; I couldn't make it MIT. I might be able to work around that by connecting to iverilog over a network, something like your smbus; but it'd be a lot more straightforward if iverilog used a less restrictive license, such as MPL or MIT). |
(Indeed, I couldnt create a pytorch library that uses GPL 2.0, since pytorch is itself under a relatively permissive Caffe license, https://github.com/pytorch/pytorch/blob/master/LICENSE ) |
Hmmm, my reading of the GPL2 license also proscribes my creating a network interface as a vpi, so that my work can control iverilog across a network interface I feel. https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html "b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of [GPL v2.0]." |
(hmmm, just noticed there is a bug in github UI: your |
Hi,
I want something like the following architecture:
The idea is that my vvp file is a GPU under simulation, and my c++ program is like an OpenCL program, which contains an OpenCL kernel. The C++ program compiles the OpenCL kernel, and feeds that to the GPU, via vpi calls from the GPU simulator. Once the GPU has received the kernel, the GPU can launch the kernel, finally returning the results to C++, via more vpi calls.
So, vpi works for me 🎉 The missing bits, I think (though I might find others), is:
The text was updated successfully, but these errors were encountered: