Reply by fjh-...@galois.com November 14, 20052005-11-14
johannes.vanderhorst writes:

> But it can be tricky applying the GPL to an HDL project, because > traditional concepts like source code and binary executables are > transferred to a domain with source, several intermediate netlist > formats, some of which can be regarded as source when you're wide > awake...
The GPL defines what source code means: | The source code for a work means the preferred form of the work for | making modifications to it. For an executable work, complete source | code means all the source code for all modules it contains, plus any | associated interface definition files, plus the scripts used to | control compilation and installation of the executable. In general, if a HDL source is automatically compiled to hardware via several intermediate netlist formats, only the original file(s) that a human wrote should be considered the source for the purposes of the GPL, since only those are the "preferred form ... for making modifications to it." If the programmer has been using scripts to tweak the intermediate netlist files, then those scripts are also part of the source. If the programmer has been manually tweaking the intermediate netlist files, then the manually tweaked files must also be considered as part of the source, in addition to the original source files.