|Non-Confidential||PDF version||ARM 100052_0001_00_en|
|Home > Debug > Debug Event Module > DEM trigger capabilities|
To improve at-speed debug, the DEM uses the incoming DTB to create an external trigger signal, DBGWATCHTRIGREQ. This signal is paired with an input signal, DBGWATCHTRIGACK. These signals are asynchronous-safe and communicate using a 4-phase handshake protocol.
The DEM includes logic that selects any combination of the DTB bits, using an OR function when multiple DTB bits are selected, to generate the DBGWATCHTRIGREQ signal. Therefore, any watchpoint match or PMU event that causes a 1 to be asserted on the DTB can be translated by the DEM into an assertion of DBGWATCHTRIGREQ.
When each assertion of DBGWATCHTRIGREQ occurs, the DEM snapshots the DTB inputs that contributed to that assertion in the trigger_status register. This is a function of the value of the DTB and the trigger select mask in the trigger_sel field in the trigger_ctl register. Therefore, the software or hardware responding to the assertion of DBGWATCHTRIGREQ can query the trigger_status register to determine which watchpoints contributed to that assertion.
The contents of the trigger_status field in the trigger_status register are sticky, that is, an assertion of any bit in that register remains asserted regardless of the value of the DTB at subsequent assertions of DBGWATCHTRIGREQ, until the register is cleared with a software write to the trigger_status_clr register.
The DEM also includes a programmable timer that can be applied to create a delay from the DTB assertion to the assertion of DBGWATCHTRIGREQ. You can program this timer to add 0-65535 cycles between these two events.