The project was inspired by the demand of cost-effective ARM Cortex-M microcontroller tracing. CoreSight subsystem, which is responsible for tracing features, provides full support of observing the internal operation of processor core. However special hardware and software components are needed to transmit and process the collected trace information. The specification of the concerned hardware interface outlines a device that is able to create and retain data link between the CoreSight subsystem of a microcontroller and a desktop computer. This solution shall substitute commercially available expensive trace kits.
Reader gains insight to the structure and services of ARM CoreSight in the introduction of the degree thesis. As the preparation of the preliminary realization a compilation of a raw requirement list was followed by fundamental design decision. The system is going to be based on FPGA. I created a preliminary prototype from existing hardware components which allowed me to implement and test the hardware description of the interface. The FPGA logic reads, compresses and converts the trace data flow into a format which can be processed by the next element of the trace transmission chain (FTDI USB interface IC). The preliminary realization with further software additions was successful in forwarding trace data from a specified ARM microcontroller to an application running on Windows PC but also introduced quality issues.
The next was the design of a completely new hardware, a new prototype. After considering the realization alternatives and expanding preliminary requirements I selected devices and components, designed the schematics and the PCBs. The design and manufacturing processes were verified by successful live tests. Monitoring and controlling signal integrity was the part of the design from the beginning as well as the more comprehensive utilization of FPGA IC capabilities. The result is a multi-piece modular system which can be used as high-speed hardware interface for CoreSight tracing however it involves an extensible general-purpose FPGA-based development board.