Resource-Efficient Programmable Trigger Units for Post

Download Report

Transcript Resource-Efficient Programmable Trigger Units for Post

Reporter :PCLee 2012.12.17

The decisions on when to acquire debug data during
post-silicon validation are determined by trigger events
that are programmed into on-chip trigger units. In this
paper, we investigate how to design trigger units that
are both resource-efficient and runtime programmable.
To achieve these two goals, we introduce new
architectural features, as well as an algorithm for
automatically mapping trigger events onto trigger units.
[2, 3] scan-based
post silicon
validation
Provide real-time
observability
[4] on-chip trace
buffer
Improve the control on trace buffer,
and reduce the amount of data
[6] on-chip
programmable
trigger engines
[5] embedded
breakpoint units
Achieve resource –efficient and
revert the false decision in real time
This paper
 What’s

the problem:
For a chip, we can only configure their register. How
many trigger units we need?
 How to reduce the number of trigger units to save
area?
 How to recover our data from false trigger?

Trigger unit

TS = xx10 => output = 1 (x is don’t care)


event_reg = 0010

mask = 0011
2 ≤ TS ≤ 5 => ABCD = (0010, 0011, 0100, 0101)
AB/ 00
CD
01
00
1
=> TS = A’BC’ + A’B’C
01
1
=> mask1 = 1110
mask2 = 1110
11
1
10
1
11
10
event_reg1 = 0100
event_reg2 = 0010

2 ≤ TS ≤ 5 and TS = 10 => ABCD = (0010, 0011, 0100, 0101,
1010)
1.
2.
Add one more quality unit.
Under trigger
AB/ 00
CD
01
00
1
01
11
10
=> mask1 = 1110 event_reg1 = 0100
mask2 = 1110 event_reg2 = 0010
1
11
1
10
1
=> TS = A’BC’ + A’B’C + B’CD’
mask3 = 0111 event_reg3 = 0010
1
=> We need 3 trigger units to cover all
conditions.
=> If we have k terms, we need k units.

Problem: If we just have 2 trigger units? (If we don’t have
enough trigger units to cover all conditions?)

Under-triggering:



Configure register next time to cover all conditions.
It cannot work on asynchronous peripherals
Over-triggering:
AB/ 00
CD
01
00
1
01
1
11
10
=> TS = A’BC’ + B’C
=> mask1 = 1110
event_reg1 = 0100
mask2 = 0110 event_reg2 = 0010
11
1
F
10
1
1
Off-prime will cause false triggering

Debug flow
1.
2.
3.
4.
5.
Off-primes are computed Off-line.
Configure events to register and off-primes to trace buffer.
When events have been triggered, trace buffer starts trace data. And
event buffers starts to record TS.
Event buffers compare off-sets sequentially.
When it found false-triggering, mark the segment of trace buffer for
further reuse.
Problem:



If the number off-primes is larger than the clock cycles between
consecutive events, analysis data will miss.
Add more buffers will affect the area. So this paper introduce algorithm
for saving the area.
m=2

Purpose:



Prevent early filling of event buffers.
Prevent loss valid trigger events.
Ensure trigger analysis can be done in a low number of clock cycles.
Perform minimization
iterative until gain is highest
Perform minimization
Revert choice
Record off-prime and replace
Perform minimization and return off-primes and
value of mask and event register/

The obvious different is if we use event sequencing or not.

Because event buffer will have groups in event sequencing.

Conclusion of this paper



This paper map the user-programmable trigger conditions
onto a lower number.
The proposed algorithm found off-prime and than revert the
false triggering.
My conclusion


How does this paper know the clock cycles between two
events.
This paper present resource-efficient algorithm and
architecture. I can reference this paper for my reconfigurable
hardware.