You copied the Doc URL to your clipboard.

2.1.3. MBIST controller implementation

The MBIST controller block shown in Figure 2.19 contains two major blocks:

  • MBIST controller

  • dispatch unit.

Figure 2.19. MBIST controller block

Figure 2.19. MBIST controller block

This section describes:

MBIST controller and dispatch unit interface

The MBIST controller and the dispatch unit communicate using the following signals:


This signal is an output of the MBIST controller that goes to the dispatch unit. Table 2.10 shows the signals.

Table 2.10. MBISTTX signals
MBISTTX bitDescription
0Reset address
1Increment address
2Access sacrificial row, used during bang patterns
3Invert data/instruction data in
4Checkerboard data
5Write data
6Read data
9Enable bitmap mode
10Increment go/no go dataword selection
11Latency stall control

When the instruction shift is enabled, data shifts between the two parts of the BIST engine are on bit 3. In run test mode, this bit is used as invert data information. The MBISTTX[11:0] interface is ARM-specific and intended for use only with the MBIST controller.


This signal is an output of the dispatch unit that goes to the MBIST controller. The behavior of MBISTRX[5:0] is ARM-specific and is intended for use only with the MBIST controller. The address expire signal is set when both the row and column address counters expire. Table 2.11 shows the signals.

Table 2.11. MBISTRX signals
MBISTRX bitDescription
0Real-time error flag
1Shadow pipeline empty
2CPU0 address/instruction data out/fail data out
3CPU1 address/instruction data out/fail data out
4CPU2 address/instruction data out/fail data out
5CPU3 address/instruction data out/fail data out

MBIST controller block top level I/O

The top level I/O of the MBIST controller contains the Cortex-A9 processor interface. See Appendix A Signal Descriptions and the inputs and outputs shown in Table 2.12.

Table 2.12. MBIST controller top level I/O
SignalDirectionFunctionValue, MBIST modeValue, function mode
MBISTDATAINInputSerial data inToggle0
MBISTDSHIFTInputData log shiftToggle0
nRESETInputMBIST resetToggle0[a]
MBISTRESULT[5:0]OutputOutput status busStrobe-
MBISTRUNInputRun MBIST testToggle0
MBISTSHIFTInputInstruction shiftToggle0
MBISTENABLEInputMBIST path enableToggle0
SEInputATPG signal00

[a] nRESET and MBISTENABLE must be LOW in functional mode.


ARM recommends a separate reset for the MBIST controller, so that you can soft reset it between tests.

The following signals have additional information:


Preservation of array state is required when performing multiload Automatic Test Pattern Generator (ATPG) runs or when performing IDDQ testing. After performing MBIST tests to initialize the arrays to a required background, the ATPG test procedures must assert SE during all test setup cycles in addition to load/unload. Any clocking during IDDQ capture cycles must have array chip select signals constrained.


During tests, the MBISTRESULT[1] signal indicates failures. You can operate using two modes, by configuring bit [5] of the engine control section of the instruction register. If bit [5] is set, the MBISTRESULT[1] signal is asserted for a single cycle for each failed compare. If bit [5] is not set, the MBISTRESULT[1] signal is sticky, and is asserted from the first failure until the end of the test.

At the completion of the test, the MBISTRESULT[0] signal goes HIGH. The MBISTRESULT[5:2] signal indicates that an address expire for the processor under test has occurred and enables you to measure sequential progress through the test algorithms.