Let me just think loud and reuse Brians UART scenario using a VHPI interface. A testbench for free download could have these modules:
1) UART design (proprietary) in VHDL 2) VHPI-Extensions to provide virtual serial port (e.g. Unix pipe) 3) Some optional DLL with VPI interface, doing something So: (1) must comply with the GPL, no doubt. Third party non-GPL involved -> XXX (2) is getting trickier. If it is not using any functionality from the GPLed code, you can't enforce the GPL just on that code. There'll just be a license clash, and someone will tell you both licenses are incompatible for static linkage. (3) can get inventive: Since you're dynamically loading the code, it will be the known situation from the linux kernel module 'legal department'. So no one can forbid you to distribute a GPL binary and your proprietary closed DLL. Question is where you draw the line of deprecation. Separating incompatible modules through a network or IPC layer is certainly considered 'clean'. > > Agreed. If I distribute the ./testbench, I must do so under the terms > of the GPL and include complete VHDL source code. However in many > practical cases there are other copyright holders (e.g. Xilinx) who do > not allow distribution of their VHDL code under GPL. The logical > consequence is that I can not legally distrbute the ./testbench at all. > As far as I know from the layers, there's no definitive answer to that when it comes to license clashes, and there's little to do, except just to play nice from both sides. Often people seem to think that GPL OpenSource is stronger than a proprietary source license (or no license at all, just AS IS). But it is finally up to the copyright owners to enforce it and in the case of GPL seldom ends up in court. So finally you'd have to point down who is doing the 'illegal'. If I statically link various parties' code, I'm kinda violating licenses in a gray area. I can tell people how to do it, but couldn't hand out the binary. If I tell a customer: Here are the modules, what you do with them is up to you, then I've offloaded my duties. So, to protect my UART design, I can still go various ways: - Make it non-reusable by obfuscation - Keep critical parts outside of it, move working stuff into a functional simulation in C - Don't hand out the core design binary and just make it accessible through a server/web interface, etc. - Buy expensive tools that might not be half as effective as GHDL is. However, it would make things so much simpler, if the proprietary VHDL design would not be infected by the GPL. Cheers, - Martin _______________________________________________ Ghdl-discuss mailing list [email protected] https://mail.gna.org/listinfo/ghdl-discuss
