Open Core Protocol Debug Interface Specification rev 1.0 - OCP-IP
Open Core Protocol Debug Interface Specification rev 1.0 - OCP-IP
Open Core Protocol Debug Interface Specification rev 1.0 - OCP-IP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>OCP</strong>-<strong>IP</strong> Confidential<br />
Restarting cores synchronously through the TAP is not difficult, since the TAP hardware has to<br />
be only slightly extended by a synchronization technique (e.g., run-test-idle pass can<br />
synchronize several cores in an ARM11 MP-<strong>Core</strong>).<br />
Hardly any multicore architecture on the market implements SS by means of fetching and<br />
executing exactly one instruction on every single core. Neither the heterogeneous (e.g. RISC +<br />
DSP) nor the homogenous system (Multi<strong>Core</strong> PPC or ARM11MP<strong>Core</strong>) have cross-core SS<br />
hardware-implementation as of today.<br />
<br />
One favorite solution for this problem is "Virtual Single Stepping".<br />
1. System is halted. <strong>Debug</strong>ger reads/has the full state of all cores/memories<br />
2. Run ca. 100-1000 cycles and halt then synchronously.<br />
Trace during this time frame <strong>IP</strong> and all data accesses. (No problem with MCDS, even with a<br />
small trace memory.)<br />
3. With this information debugger can exactly reconstruct all states and data values between<br />
start and end point<br />
This means the user can then virtually single step forth and back (!) in this time window.<br />
The timing relationship between the cores is as well maintained. There is possibly only a slight<br />
impact at the start and the end of the period.<br />
A similar solution is using an on-chip test platform with IEEE 1500 (developed by National<br />
Cheng Kung University, Taiwan). For each core there is a register to trigger the halt then use<br />
the 1500 scan chain to dump the core and memory. With the dump an ESL debugger can trace<br />
the bug. When thinking about how to halt all cores simultaneously, although we like to<br />
leverage test gates as much as possible, it seems additional debug gates are needed.<br />
6. EDA and SW Tools Support<br />
6.1 ESL Design and Design Checkers Support<br />
The <strong>OCP</strong> <strong>Debug</strong> <strong>Interface</strong>, after selection of the debug signal groups, generates an XML<br />
description text file that allows for easy modeling in the ESL abstracted chip design. This<br />
XML file is the basic information for the automatic debug interface checkers.<br />
The association of an XML interface file with a specific chip design is proposed to be an ID in<br />
the JTAG interface readable by software level debuggers and EDA hardware level debuggers<br />
that can access the XML file from a library maintained on the web. The ID must be at least 128<br />
bits long or have a self-extensible format and size to be accepted by the world-wide chip<br />
industry.<br />
6.2 Programmers Model<br />
We do not intend to include a programmer’s model for debug interactions into the <strong>OCP</strong><br />
standard. That is left to the vendors of the debug hardware blocks to satisfy the software DAS-<br />
API interface requirements in providing and covering the minimum set of control sequences<br />
25 of 62<br />
© 2007 <strong>OCP</strong>-<strong>IP</strong> Association, All Rights Reserved.