Download Print this page

Connecting The Etb11 In A 64-Bit Ahb System - ARM ETB11 Technical Reference Manual

Advertisement

Integrating the ETB11
B.3

Connecting the ETB11 in a 64-bit AHB system

B-4
The ETB11 AHB interfaces are 32-bits wide, and cannot therefore be directly
connected to a 64-bit AHB bus, such as that used in the ARM10 processor systems. A
simple bridge can be constructed that replicates the data on both halves of the bus, as
described in the AMBA Specification. The Verilog code shown in Example B-1
demonstrates how this can be done:
<code>
// Logic to multiplex the 64-bit AHB bus to a 32-bit bus for 32-bit devices
always @(posedge HCLK)
begin
if(!HRESETn)
HWDATAMEMSelect <= 1'b0;
else if(HREADY)
HWDATAbusSelect <= HADDR[2];
end
assign HWDATAMEM32 = HWDATAMEMSelect ? HWDATAMEM[63:32] : HWDATAMEM[31:0];
// Recreate the 64-bit bus from the 32-bit Trace Buffer HRDATA bus
assign HRDATAMEM = {HRDATAMEM32,HRDATAMEM32};
</code>
If the code shown in Example B-1 is used then load/store multiple instructions that
access the ETB11 have unpredictable results because these use both halves of the 64-bit
bus at the same time. These accesses do not cause an AHB ERROR response, which
normally cause a Data Abort, so the error is not seen by the system. To remain
compatible with these systems, load/store multiple instructions are not permitted when
accessing the ETB11 to retrieve trace information (see Restrictions on use of the AHB
interface on page 3-12).
This scheme can be used only when the trace RAM is to be used exclusively for tracing.
If the trace RAM is to be used as system memory then a full downsizer must be used
that bridges between 64-bit and 32-bit AHB buses, and convert a single 64-bit transfer
into two 32-bit transfers. This is provided as part of the AMBA Design Kit (ADK).
Copyright © 2002, 2003 ARM Limited. All rights reserved.
Example B-1 Connecting the ETB11 in a 64-bit system
ARM DDI 0275D

Advertisement

loading