Switching Host-Communication to GLIP
Since its beginning, OpTiMSoC contained a method for communication between a PC and an FPGA board. For the ZTEX 1.15 boards we used the USB 2.0 interface, based on the Cypress FX2 chip available on those boards. As we continued the development, we realized that this connectivity functionality is not only useful in OpTiMSoC, but in other projects as well.
We now finally got around to factor the communication interface out of OpTiMSoC and to moved it into a new project, which we named the “Generic Logic Interface Project”, or in short, GLIP. It provides generic, FIFO-based communication between a host and a target, abstracting away all the nitty gritty details and protocols in between. It lets you simply focus on the data you want to transfer, handling everything else for you.
As of now GLIP contains a cleaned-up and improved version of the Cypress FX2-based USB 2.0 backend, reaching up to 21 MByte/s bi-directional transfer rate (close to the achievable maximum of the USB 2.0 interface), and a host-only TCP backend for communication between a simulated system (e.g. in ModelSim) and a controller.
In the near future, other backends for JTAG and possibly PCIe are planned.
We provide GLIP with an extensive set of documentation under the MIT license, check it out!
With the newest latest trunk version of OpTiMSoC liboptimsochost uses GLIP for all Debug NoC based communications, so you need to have GLIP installed if you want to use those as of now.