I am developing an open-source FPGA project that targets multiple FPGA development boards. The project itself is licensed MIT.
On one of the targets, the VGA-to-HDMI encoder chip included on the board requires some boot-up configuration via I2C. The vendor documentation includes an I2C master implementation for this purpose. The file starts with the following header:
// Permission: // // Terasic grants permission to use and modify this code for use // in synthesis for all Terasic Development Boards and Altrea Development // Kits made by Terasic. Other use of this code, including the selling // ,duplication, or modification of any portion is strictly prohibited. // // Disclaimer: // // This VHDL or Verilog source code is intended as a design reference // which illustrates how these types of functions can be implemented. // It is the user's responsibility to verify their design for // consistency and functionality through the use of formal // verification methods. Terasic provides no warranty regarding the use // or functionality of this code.
If I add this file to the project, it would only be used when synthesizing for a Terasic/Arrow DECA development kit, so naively it should match the criteria of the license. However, the inclusion with the source code could, itself, be construed as "duplication". But there is no way to "use [...] this code [...] in synthesis for [...] Terasic Development Boards" without including the file as the synthesis input!
Can I use this I2C implementation in the Terasic target-specific parts of my FPGA project?