-
Notifications
You must be signed in to change notification settings - Fork 5
What Rights?
What rights should a Free HDL license confer?
I see three main (related) reasons why this might be different from normal Free Software:
-
For a most software, the intended "consumer" of the code is the end user. I suspect this is almost never true of HDL "cores." Rather, most of these are meant to be used by other designers.
-
Installing, removing, and modifying software is generally easy unless someone is actively trying to prevent it. This is not at all true of HDL designs: If the design is used to make an ASIC which is surface-mount soldered onto a circuit board, that's not modifiable for most practical purposes. FGPAs are re-programmable, but it's a serious undertaking.
-
Computers can (and generally do) run a variety of programs with different license terms. These programs are sufficiently separate that there's a clear conceptual difference between having two programs on the same computer and making a new program incorporating them. It's not clear whether (or how) such a distinction would be made for components running on an FPGA or ASIC.
- The end user's freedom is an important value in the Free Software community. If we consider that important, we may need to place a comparatively higher burden on the designer who wishes to use a free core. Is it OK to fix a free core in an ASIC? If a free core is used in an FPGA design, do we require the hardware in which it is used to support re-programming?
-
May this code by included as-is in a proprietary design? (LGPL-like condition)
-
May this code be used in a derivative work which includes proprietary components? (Think Xilinx Core Generator cores)
-
May this code be used to synthesize hardware? If the design of the hardware is available under suitable license terms, but it's still impractical for the end-user to change it or make their own, is that free enough?
-
What about non-functional code (e.g. "verification IP"). In the software realm, testing tools are typically fairly separate from the code under test. A lot of HDL tests work by compiling the test code and code under test into a single simulation executable and then running it. Does a developer incur any obligations by combining her functional code with someone else's free test code (or vice-versa)?