The FPGA project has been succesfully integrated into the current project containing the usbcdc and ethernet. Now the test firmware has working ethernet, usb serial port, and also successfully configures the FPGA.

My attempt at integrating the FPGA project with the other two did not work initially, with the result being all the digital pins being pulled high instead of toggling as in a ring counter, even after making sure that the pins are all configured correctly. I therefore started to experiment with the harmony configuration and codes separately.

I tried to narrow down the problem by copying the harmony configuration file of the Integration project, which already has SPI drivers enabled, and placing it in the working FPGA project for testing. From there I started disabling unnecessary capabilities (such as tcpip and usb) to check anything that might have clashed with FPGA operation. Surprisingly, after reducing down until only the SPI driver is left, the FPGA project still wouldn’t work. I then experimented the other way around by using the original FPGA project harmony configuration file and slowly adding tcpip and usb capabilities to it to check for when it stops working. Surprisingly, after adding up capabilities until the configuration was an exact copy of the original Integration project configuration, the FPGA still works, and replacing the original harmony configuration file with this one made the whole project work,which means FPGA, ethernet and usb serial capabilities all work.

Basically I just created a new configuration file, manually changed the configuration to match that of the old file, and replace the old file with the new one and it works! I cannot explain this behaviour, but I speculate that the original Integrate project’s harmony configuration file might be from an older version of Harmony. Comparison of the two files also show a difference in file size, even though they have the same settings.