- •Preface
- •About this document
- •Intended audience
- •Organization
- •Typographical conventions
- •Further reading
- •ARM publications
- •Feedback
- •Feedback on this document
- •Feedback on the ARM PrimeCell Generic Infrared Interface (PL140)
- •Introduction
- •1.1 About the ARM PrimeCell Generic Infrared Interface (PL140)
- •1.1.1 Features of the PrimeCell GIR
- •1.1.2 Programmable parameters
- •1.2 Block diagram
- •1.3 AMBA compatibility
- •Functional Overview
- •2.1 ARM PrimeCell Generic Infrared Interface (PL140) overview
- •2.2 PrimeCell GIR functional description
- •2.2.1 AMBA APB interface
- •2.2.2 Register block
- •2.2.3 Receive and transmit clock divider
- •2.2.4 Transmit FIFO
- •2.2.5 Receive FIFO
- •2.2.6 Transmit logic
- •2.2.7 Receive logic
- •2.2.8 Interrupt generation logic
- •2.2.9 Synchronizing registers and logic
- •2.2.10 Test registers and logic
- •2.3 Infrared methodology
- •2.4 PrimeCell GIR operation
- •2.4.1 Interface reset
- •2.4.2 Clock signals
- •2.4.3 Receive processing
- •2.4.4 Receive demodulation
- •2.4.5 Receive FIFO information
- •2.4.6 Transmit processing
- •2.4.7 Transmit modulation
- •2.4.8 Clock dividers
- •Programmer’s Model
- •3.1 About the programmer’s model
- •3.2 Summary of PrimeCell GIR registers
- •3.3 Register descriptions
- •3.3.1 GIRFCR: [15] (+ 0x00)
- •3.3.5 GIRSTAT: [8] (+0x10)
- •3.3.7 GIRIIR/GIRICR: [3/0] (+0x18)
- •Programmer’s Model for Test
- •4.1 PrimeCell GIR test harness overview
- •4.2 Scan testing
- •4.3 Test registers
- •4.3.4 GIRTISR: [1] (+0x88)
- •4.3.5 GIRTOCR: [5] (+0x8c)
- •4.3.6 GIRTTXCDC [16] (+0x90)
- •4.3.7 GIRTRXCDC [16] (+0x94)
- •4.3.8 GIRTTXC [20] (+0x98)
- •4.3.9 GIRTRXPTC [20] (+0x9c)
- •4.3.10 GIRTDC [7] (+0xa0)
- •A.1 AMBA APB signals
- •A.2 On-chip signals
- •A.3 Signals to pads
Programmer’s Model for Test
4.3Test registers
The PrimeCell GIR test registers are memory-mapped as shown in Table 4-1.
Table 4-1 Test registers memory map
Address |
Type |
Width |
Reset value |
Name |
Description |
|
|
|
|
|
|
GIR Base + 0x40–0x7f |
Read/write |
0 |
Undefined |
GIRTCER |
Test clock enable register. |
|
|
|
|
|
|
GIR Base + 0x80 |
Read/write |
5 |
0x00 |
GIRTCR |
Test control register. |
|
|
|
|
|
|
GIR Base + 0x84 |
Read/write |
5 |
0x00 |
GIRTMR |
Test mode register. |
|
|
|
|
|
|
GIR Base + 0x88 |
Read/write |
1 |
0x0 |
GIRTISR |
Test input stimulus register. |
|
|
|
|
|
|
GIR Base + 0x8c |
Read |
5 |
0x00 |
GIRTOCR |
Test output capture register. |
|
|
|
|
|
|
GIR Base + 0x90 |
Read |
16 |
0x0000 |
GIRTTXCDC |
Test transmit clock divider |
|
|
|
|
|
count value. |
|
|
|
|
|
|
GIR Base + 0x94 |
Read |
16 |
0x0000 |
GIRTRXCDC |
Test receive clock divider count |
|
|
|
|
|
value. |
|
|
|
|
|
|
GIR Base + 0x98 |
Read |
20 |
0x00000 |
GIRTTXC |
Test transmit counter value. |
|
|
|
|
|
|
GIR Base + 0x9c |
Read |
20 |
0x00000 |
GIRTRXPTC |
Test receive pulse timer value. |
|
|
|
|
|
|
GIR Base + 0xa0 |
Read |
7 |
0x00 |
GIRTDC |
Test demodulator counter value. |
|
|
|
|
|
|
4.3.1GIRTCER [0] (+0x40–0x7c)
GIRTCER is the test clock enable register which is a virtual register. Accesses to it will result in the creation of an internal test clock enable. Table 4-2 shows the bit assignments for the GIRTCER.
|
|
Table 4-2 GIRTCER register read/write bits |
|
|
|
Bit |
Name |
Description |
|
|
|
31:0 |
- |
When in registered clock mode (refer to GIRTCR [5] |
|
|
(+0x80) on page 4-5), a test clock enable is produced only |
|
|
when this register is accessed (read or write). |
|
|
A read will return zeros. |
|
|
Write data is ignored. |
|
|
|
4-4 |
© Copyright ARM Limited 1999. All rights reserved. |
ARM DDI 0149B |
Programmer’s Model for Test
Note
GIRCLK must be driven by PCLK during test.
GIRTCER has a multiple word space in the register address map to allow for the generation of multiple test clock enable pulses.
4.3.2GIRTCR [5] (+0x80)
GIRTCR is the test control register which controls the clocking mode and the input pin multiplexing during test mode.
In test mode, all clock inputs to the GIR are driven by the same signal. Test mode is entered when the TestModeEn bit is set to 1. In test mode, if the TestClkEn bit is set to 1, test clocking is enabled. When test clocking is enabled, if the RegClkMode bit is 0, a pulse is generated on the TestClkEn signal on every access to the GIR. If RegClkMode is 1, a test clock enable is only generated when GIRTCER is accessed.
The TESTRST bit in the register allows the flip-flops in the design to be asynchronously reset in test mode. This helps to avoid propagation of unknown (x) logic values in simulations. The TESTINSPEL bit selects the source for the internal input signal for external non-AMBA inputs. Table 4-3 shows the bit assignments for the GIRTCR.
|
|
Table 4-3 GIRTCR register read/write bits |
|
|
|
Bit |
Name |
Description |
|
|
|
31:5 |
- |
Reserved, read unpredictable, should be written as 0. |
|
|
All bits are cleared to 0 on reset by BnRES. |
|
|
|
4 |
Test input select |
By default, this bit is cleared to 0 for normal operation. This |
|
(TESTINPSEL) |
bit selects the source for the primary inputs (GIRIN). |
|
|
When this bit is cleared to 0, the primary inputs are taken |
|
|
from the external pads (normal operation). |
|
|
When this bit is set to 1, the value programmed in GIRTISR |
|
|
is used to determine the data bit used to drive the receive data |
|
|
path for external non-AMBA inputs while in test mode. |
|
|
|
3 |
Test reset |
By default, this bit is cleared to 0 for normal operation when |
|
(TESTRST) |
reset by BnRES. |
|
|
When this bit is set to 1, a reset is asserted throughout the |
module, EXCEPT for the test registers (this simulates reset by BnRES being asserted to 0).
ARM DDI 0149B |
© Copyright ARM Limited 1999. All rights reserved. |
4-5 |
Programmer’s Model for Test
|
|
Table 4-3 GIRTCR register read/write bits (continued) |
|
|
|
Bit |
Name |
Description |
|
|
|
2 |
Registered clock |
This bit selects the internal test clock mode: |
|
mode |
0 = Strobe clock mode is selected which generates a test clock |
|
(RegClkMode) |
enable on every AMBA APB access (read or write) to the |
|
|
PrimeCell GIR. Use of strobe clock mode allows testing with |
|
|
less test vectors when testing functions such as counters. The |
|
|
Test Clock Enable is generated from PENABLE ANDed |
|
|
with PSEL. |
|
|
1 = Registered clock mode is selected which only generates a |
|
|
test clock enable on an AMBA APB access to the GIRTCER |
|
|
location. |
|
|
This bit has no effect unless bit 0 and bit 1 are both set to 1. |
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
1 |
Test clock enable |
This bit selects the source of the test clock: |
|
(TestClkEn) |
0 = The internal clock enable is forced continuously HIGH, |
|
|
enabling the clock on every period of the input clock signals |
|
|
PCLK and GIRCLK. This is the default value used for |
|
|
normal operations as well as free running system testing |
|
|
(validation). |
|
|
1 = The internal test clock enable is selected, so that test |
|
|
clocks are enabled for only one period of the input clock per |
|
|
AMBA APB access. The internal clock enable mode depends |
|
|
on the setting of bit 2. |
|
|
This bit has no effect unless bit 0 is set to 1. |
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
0 |
Test mode enable |
0 = Normal operating mode is selected. |
|
(TestModeEn) |
1 = Test mode is selected. |
|
|
Bits 1 and 2 have no effect unless bit 0 is set to 1. |
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
4.3.3GIRTMR [5] (+0x84)
GIRTMR is the test mode register which controls the specific test modes for the PrimeCell GIR. These test modes improve controllability so that a high fault coverage can be achieved.
4-6 |
© Copyright ARM Limited 1999. All rights reserved. |
ARM DDI 0149B |
Programmer’s Model for Test
All the bits are read as 0 after reset. Table 4-4 shows the bit assignments for the GIRTMR.
|
|
Table 4-4 GIRTMR register read/write bits |
|
|
|
Bit |
Name |
Description |
|
|
|
31:5 |
|
Reserved, read unpredictable, should be written as 0. |
|
|
|
4 |
TxTimerNibmode |
1 = The 20-bit transmit duration counter is enabled for testing |
|
|
in nibble mode. The test mode enables verification of counter |
|
|
functionality in less clock cycles since the counter is |
|
|
decremented by 0x11111 instead of 0x00001 as in normal |
|
|
mode. |
|
|
0 = Normal mode, the counter decrements by 1 for each |
|
|
enabled clock cycle. |
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
3 |
TxDivNibmode |
1 = The 16-bit divider for transmit clock from GIRCLK is |
|
|
tested in nibble mode. The test mode enables verification of |
|
|
counter functionality in less clock cycles since the counter is |
|
|
decremented by0x1111 instead of 0x0001 as in normal mode. |
|
|
0 = Normal mode, the counter decrements by 1 for each |
|
|
enabled clock cycle. |
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
2 |
RxDivNibmode |
1 = The 16-bit divider for receive clock from GIRCLK is |
|
|
tested in nibble mode. The test mode enables verification of |
|
|
counter functionality in less clock cycles since the counter is |
|
|
decremented by 0x1111 instead of 0x0001 as in normal mode. |
|
|
0 = Normal mode, the counter decrements by 1 for each |
|
|
enabled cycle. |
|
|
This bit is cleared to 0 by default on reset by BnRES. |
|
|
|
1 |
Bypass |
1 = The dividers for receive clock and transmit clock are |
|
|
bypassed. Bypassing the clock dividers allows transmit and |
|
|
receive clocks to be driven by GIRCLK. This implements a |
divide-by-1 so that less test vector cycles are required.
0 = The dividers for receive clock and transmit clock are not bypassed.
This bit is cleared to 0 by default on reset by BnRES.
ARM DDI 0149B |
© Copyright ARM Limited 1999. All rights reserved. |
4-7 |