The target of the IP-Debugger is, as the name implies, to debug IP’s.
Our goals and ideas:
At the beginning of the project, our goal was to develop a tool which can show us individual signals of flip-flops in the FPGA. We believed that this would be very useful to narrow down mistakes in large VHDL projects or to indicate, what kinds of signals are transmitted to other components. Another goal was to be able to set and readout different states of flip-flops in programs. This in turn would be very useful to check the impact of already set flip-flops on different signals or to check whether the flip-flops have the correct state. To summarize, we aimed to make a tool, which can show us signals and states of flip-flops and also be able to directly alter the settings of different flip-flops.
To achieve this, we developed two different programs to debug IP’s. The first one is called LogicAnalyser. The LogicAnalyser can measure signals in FPGAs and send the results of the measurements to a computer. The computer in turn can display the measurements as a function of time.
To ensure that the time-function is displayed correctly, we can set trigger terms and choose how many samples and channels we want to see.
LogicAnalyser
The second program is called I/O-View. By using this program one can set individual flip-flops and readout outputs of flip-flops in the FPGA. If you want to use I/O_View you also have to set the sizes of the in- and output.
I/O_View
The interface between the FPGA and the computer works over jtag. We decided to use jtag as most FPGAs already have reserved in- and outputs for the jtag-interface. This way we didn’t add unnecessary resources.
A major advantage of the IPDBG is that these two programs can be used simultaneously. When both programs are started, they can communicate with the FPGA over the same jtag-interface. This allows to debug at the same time with both programs and find errors faster.
The instructions of how to install the LogicAnalyser and I/O_View on Linux and on Windows can be found here: http://www.ipdbg.org/?page_id=19