How to Blow $100 Million

Wolfgang Spraul wolfgang at sharism.cc
Sat Sep 4 23:43:50 EDT 2010


David,

> Is that so hard to see?  You only get a license to:
>   - _use_ object code _created_from_THE_SOFTWARE_ to _physically_
>     implement the design
> So what you do not get a license for is:
>  - _modify_ object code
>  - use/modify object created using other (synthesis etc) software
>  - _use_ object code in non-_physical_ implementations, i.e. simulators
>    or whatever

Where do you read that you don't get a license for these things?
You are quoting from paragraph 3, which I believe was written to give you
the right to manufacture. It says 'use to implement' because the entire
paragraph is about manufacturing. You want them to add an "or modify"
behind every "use", no matter what the entire sentence or paragraph
is about?
The object code can also be modified object code (it says 'or derivative
work' - a term introduced in paragraph 2, which describes the
rights to modification).

In my understanding, Lattice tries to give you 3 rights, worded in
3 different paragraphs:

1. use
2. modify
3. manufacture

Each idea is expressed in one paragraph. 
The second paragraph is about modifications.

You write:
> What I'm still hoping for is to see more open designs that can at least
> (partially) be compiled&simulated using open-source software

The second paragraph says (I also cut context out now...)
"right to modify the source code of the Software and incorporate it with
other source code to create a Derivative Work ...You may distribute this
Derivative Work .. provided (that) You distribute the source code
associated with the modules containing the Derivative Work"

Why do they make a distinction between "source code" and "modules containing
the Derivative Work"? There's even a hint of copyleft in there, although
I think what they try to say is that you can combine your own proprietary
codes with their codes, and do not have to open up your closed parts.
In my understanding, the 'derivative work' here could be a Milkymist
bitstream that includes a part created out of Lattice source codes.

I cannot see why you think they try to not give you a license for
modifying their sources and let you compile and run them in simulators?
Paragraph 3 is about giving you the right to manufacturing.
Paragraphs 1 and 2 are slightly worded towards 'distribution' only
because (imho) that is by far the more meaningful thing to clarify,
that you have the right to distribute their stuff. You are saying
because they only clarify that you have the right to distribute their
stuff, you don't have the right to run it in a simulator on your
own computer? Sorry but I think that is really gross. They do not
specifically say that you have the right to keep both your eyes open
when looking at the source codes. Does that mean you may have to
keep your left, or right, eye closed when looking at the source codes?
Or even both?
It is totally obvious to me that you have the right to compile and
execute the Lattice sources, or modified versions of them, in a
simulator. Not only that, but you also have the right to redistribute
the Lattice sources, unmodified or modified, in source or 'module'
form, as clarified in the license.

Here's my take:
The GPL is a software license. It talks about libraries, linking,
executables, object code, etc. How this applies to 'object code'
in an FPGA (typically called 'bitstream'), or even manufactured
silicon, is not clear to me. Of course you can read things into
the GPL wording (does "object code embodied in a physical product"
maybe mean manufactured silicon?). But I don't think you will get
very far with this because even the creators of the GPL will
refuse to follow you, saying that this license was really thought
through and meant to be applicable to, software as we currently
understand it, not FPGA bitstreams, not silicon.

If I take some GPL licensed Verilog, and I use it to manufacture a
chip, in the process I may mix in some proprietary IP. Even the gate
design can be and is copyrighted by foundries. Am I not allowed to
do this? If I add proprietary Verilog sources before synthesis, so
what? Does that mean the resulting IC 'links' a GPL and proprietary
part? Is it an 'aggregate' as defined in the GPL?

And while we can all have opinions on this, what do the creators
of the GPL say? Who will try to enforce some of these things to
make them real?

There are things in the Lattice license I don't like either, and I
agree there might be GPL compatibility issues, maybe more so as long
as we are still talking about bitstreams (=object code?). I think the
GPL looses most of its meaning when it comes to manufacturing silicon.
Personally I dislike the export controls the most, I'm a global
citizen and don't understand why citizens or residents of Syria, Iran,
Cuba and what not should be excluded. Reminds me a bit of the early
SSL days...

What I plan to do is this:
I agree with Sebastien that the Mico32 core is an excellent starting
point for a free, GPL licensed SoC. Maybe one day an equivalent of the
FSF in hardware land appears, and comes up with a really great license,
and a way to describe and protect the freedoms associated with copyleft
hardware. I would be the first one to be interested in this.

Today, if we lean back a bit, and think about what Lattice really tried
to say, I think they did in fact want to open up this technology to the
point that others could use, modify, and manufacture chips with it.
If we are incorporating IC logic from a 3rd party licensed under GPL, and
they have a problem of being mixed with Lattice sources, they should
come forward. It would help everybody.
We could clarify the meaning of the GPL in bitstream and silicon land, we
could approach Lattice or the FSF asking for clarifications.

I plan to talk to Lattice at some point anyway, I would like to understand
why they opened up their sources in this way, whether/how they can
guarantee that their stuff is patent-unencumbered. Whether they have
any plans in investing more time into the open part. Whether they can
remove some things like the export control paragraph, or whether they
can adjust or clarify some terminology to be more in line with the
software-centric GPL terminology.

For me (well, non-lawyer), the best would be if the license just gets
shorter, more BSD style. The shorter it is the less room for
misinterpretations, on both sides. Of course, a lawyer would probably
feel the other way round, and add a lot more words to make it more
clear... :-)

Does anybody read this far? argh...
Wolfgang




More information about the discussion mailing list


interactive