[cc-community] (CC-BY) The Question of Manufacturing Copyleft
Greg London
email at greglondon.com
Wed Oct 31 21:01:37 EST 2007
> Is there any chance you could turn that post into an article
> somewhere? It's an excellent explanation of the issues.
The following text is licensed under the
CreativeCommons-Attribution License
http://creativecommons.org/licenses/by/3.0/us/
with the author of the work provided as Greg London
I'm an electrical engineer doing ASIC design.
Copyright gives the author the excluse rights
to copy, distribute, and create derivative works.
Verilog code, and schematics, and so on, are all
works of expression that can be covered under
copyright. Copyright won't protect the functionality
of a circuit, but it can protect your particular
expression that describes that circuit.
If you code up a funky 16 bit counter, you can
protect your particular version of code that
describes that counter, but anyone can code up
their own 16 bit counter, have it function exactly
like yours, and there's nothing copyright will
do to stop them.
If the counter function is sufficiently different
from previous counters and sufficiently useful,
you may be able to get a patent, but copyright
cannot protect functionality.
Once you perform the conversion from verilog code
to an ASIC, you are converting from expression to
functionality. And copyright doesn't protect this
functionality any more than it protects the functionality
of your 16 bit counter.
One thing that was added to copyright law "recently"
(for some definitions of recently) was that copyright
law was expanded to cover ASIC "masks", which are the
different photographic masks used to build up the different
layers of materials that make an ASIC. (The same sort
of principle is used when using a mask to etch copper
off a fiberglass board and turn it into a circuit board)
So, copyright can protect your expressions as long as
it remains an expression: something in language that
represents a thing, an idea, whatever. Verilog code
is an expression of how you want your logic to function.
Masks are an expression of how the asic will be built.
But once you are looking at an actual asic, it is no
longer an expression, it is no longer a representation
of anything. It is now pure functionality. Which means
copyright law does not apply. Which means no copyright
license can protect it.
This shows up in the asic design world in various ways.
Non-Disclosure-Agreements are usually required when
transfering source code around. This uses a contract
to extend protection beyond what copyright law can provide,
including what happens once the source code turns into an
ASIC.
Another common way used in the asic world is to give out
"hard" cores, which is basically the lowest level of
description of the device, transistors and wires.
This is usually so large, complicated, and cumbersome,
that it is unreadable by users who don't have source code.
None of which, unfortunately, applies to a FLOS project,
at least in its standard form.
You might be able to come up with some sort of contract
that people must agree to before they can download your
source code that stipulates they must make any modifications
to their source code available. This would probably have
to be limited to some boundary, probably to the level
that is your "core" described by your source code.
i.e. any modifications made inside the top level module that
describes your 16 bit counter must be made available to you.
You'd probably have to put something in there that says
they can't move your source code outside your module boundary
as well.
With some sort of contract like this, you may be able to
use contracts to enforce something that would effectively
be like a version of the Library GPL.
I highly doubt that ANY asic manufacturer would agree to
the equivalent of the normal GPL that would make the entire
ASIC the equivalent of a derived work of your source code.
Maybe. But I doubt it.
But what this means is that all your source code would have
to be behind some sort of firewall that can only be accessed
if you sign a contract. Which isn't exactly in the spirit of
FLOS. But then, hardware doesn't get full protection from
copyright, so it really is the only way I know of.
As for loopholes, Alice could agree to treat your source code
as GPL when it turns into an ASIC, but then she could
simply download the code and sell it to Bob. And Bob could
take the source code and do whatever he wants with it,
unencumbered by any contract restrictions to send modifications
back to you.
Which means your contract would also have to prohibit distribution
of the source code or any of its derivatives as is normally allowed
in FLOS projects. Because you need the contract restrictions to
follow all teh copies, so you need to get people to agree to the
contract, which would include a sort of NDA that states they can't
give the source code to anyone else.
And then, there is the small matter of enforcement.
If you're designing something in hardware, odds are you're designing
something that follows a standard. Which means that any manufactuer
could sell chips that follow that standard, and it may or may not
have your code inside it. I've seen vendors who sell cores have
contracts that prohibit you from sending their source code to
certain countries, even if it is an office with your own company,
because those countries do not enforce copyright law and enforcing
a contract is going to be difficult.
Oh, and a lot of ASIC fabrication occurs overseas, which means your
contracts would probably have to work on an international level.
That's about the only way I can see you enforcing something
approximating the LGPL in source code that goes into an ASIC.
I am not a lawyer. This is not legal advice.
This is not international advice.
This is not asic manufacturing advice.
This is not the life I ordered.
Greg London
http://www.GregLondon.com
More information about the cc-community
mailing list