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

Reply via email to