Version 2.00.1
September, 1996
1.0 Brighton Signal Description
2.0 Brighton Addressable Registers
4.0 Local Bus Accesses by Brighton
8.0 Brighton Serial Debug Port
Appendix A. Brighton Pin Name/Number cross reference
Appendix B. Mechanical Drawing
This document describes the function of the Brighton Split Bus/Dual ECC Memory Controller. One bus is an Intel 80960CA interface; the other is a CFE bus interface. The purpose of this specification is to provide a pinout, register description, functional description and timing information.
+--------------+ | INSTRUCTION | | MEMORY | +---+-----+----+ +---+ A A |ROM| Addr/| |Data ++-++ Cntl | V A | +---+-----+---+ +--------+ | | | | | | | | Addr | | | +-+-|------>+ | 32-bit CFE |80960CA | | | | BRIGHTON | interface | | | | | +<----------+----------+- - - | | | | Data | | V V | +<|-+------>+ | +---+---+ +---+---+ | | | | | | | | | | +--------+ | | +---+-----+---+ | CFE | | CFE | . . V V Addr/| A |DEVICE | |DEVICE | ++-+-+ Cntl | |Data +-------+ +-------+ optional |SRAM| V V +----+ +---+-----+----+ | PACKET | | MEMORY | +--------------+Figure 1. Block diagram showing major Brighton Interfaces
+---------------------------------------------------------+ | A A | | V V | | +------+----+ +----+------+ +-----------+ | | |Async Debug| |Instruction| | Interrupt +----->| | | Port | | Memory | | Controller| | | +-----------+ | Interface | +-----------+ | | +--+---+--+-+ | | A A A +-----------+ | | +-----------+ | | +------>+ CFE | | | | 80960CA +<----+ | | local bus | | | | Interface | | | Interface | | |<--->+ +<--------|--------->+ +<---->| | | and | +---+---+ | and | | | | | |Refresh| | | | | | Task | |Control| | Local bus | | | |Protection +<-+ +---+---+ +-->+Protection | | | +-----------+ | | | | +-----+-----+ | | +--+ | +--+ A | | | | | V | | V V V +-----+-----+ | | +-----------+ +--+---+---++ | CFE | | | | | | Packet | | local bus +<---->| | | Timers | | Memory | | Arbiter | | | | | | Interface | | | | | +-----------+ +----+------+ +-----------+ | | | | | V | +---------------------------------------------------------+Figure 2. Major Functional Blocks in Brighton
PACKET MEMORY DATA ADDR +--------+-------+ +----+----+ | | | | | | | +--+--+ | | | | | | | | | A | | A VVVVV | | AAA | | AAA VVV | | AAAAA | | AAAAA V | | | | | | | | | | | +-----+-----+----+ +----+----+ A | A | +--------+ | +------+---+ | +----+----+ | ecc gen | V /___________\ +------+---+ +-----+----+ A A A A A A | chk/corr | | | | | | | +---+------+ | | | | | +---+ +----------+ | | | | | | +------>+PAR| /____________\ | | | | | | | |CHK+<-+ A A A | | | | | | | +---+ | +----------+ | | | | | | | | | | | +-----------+ A | | +--|---|-|---------+----------|-|-|-|-|-+ | | | << | D | >> | | | | | | | | | | | | +---+ +-+---<<<<--+ | D +--->>>>---+-------------|--|-+-|-|--------------------|-|-|-+ | | | |PAR| | << | | R | >> | | | | | | +----+ | | | | | | | |GEN|<-+ | +-+ 8 | | | | | | | |LBUS+---------+ | | | | | | +---+ | | >> | | P L 0 +----------+ | | | | +---->|PROT|<----------|-|-|-+ | | A +-+-->>>>---+ | A O 9 /| | | | | | +----+ | | | | | | |\ +-+ | >> | R C 6 / |<-+ | +-|-|---------+ +-------+ | | | | +-|----->| \ | +-----------+ I A 0 | | | | | | |REFRESH+-|-+ | | | | | | T L C +-----------+ +--| |<----|---+ | + V +-------+ | | +-|---|----->| +--+ +-----------+ Y A | << | | | | | | +-->|\ +-+-------+ | | | | | +--->| | | | >> | B D | +---<<<<--+<--+ \ |<-+ | | | |-|TASK PROT+----+ | | | | | +->| / +-->+-->>>>---+ | A U A | | << | \| | | | +->|/ +---------+ | | | | | | | |/ | >> | | / S T +-+ | | | | | + | | | | | | | | +-+ D A | | >> | | | | | | | | | | | | | << | | | +-->>>>---+--------+ | | +--|---------------------|-|-|-|---+-|-|------+-----+---<<<<--+ | | >> | | | | | | | | | | | | | | << | +-----------+ +---|--+---|--|---------------------|-|-|-|-----+ | | +-----------+ +--|---|--+--------+------------|-|-|-|-------+ | V V V | | | | | | +-----------+ | | | | | V \_________/ | | | | | +------------+ | +---+------+ | | | +--------+ ADDR LATCH | V | chk/corr | | | | | +------------+ +-------+-+ +-----+----+ V V V V | ecc gen | A +---------+ +-------+-+ | \_______/ | +--------+ | V | V +-----+-----+----+ +----+----+ | | | | | | | | VVVVV A | | | | | VVV AAA | | VVVVV | | V AAAAA | | VVV | | | | | | V | | +--+--+ | | | | | | | | | | +--------+-------+ +----+----+ DATA ADDR INSTRUCTION MEMORYFigure 3. Brighton Data/Address Paths
The following are the signals used to interface to the 80960CA:
P_A31:2 | I | 30-Bit Address--The 80960CA's address is received on these lines. This address is word (4-byte) aligned. |
-P_BE3:0 | I | Byte Enables--For writes, these signals tell Brighton which byte(s) to write at the selected address. If one or more byte enables are inactive then Brighton will perform a read-modify-write memory cycle. For reads, these bits determine which bytes will be driven on the data bus. |
P_D31:0 | I/O | 32-Bit Data Bus--32-bit data is communicated between Brighton and the 80690CA on this bus. |
-P_READY | O | Ready--For 80960CA reads, this signal indicates that data is valid on the rising edge of PCLK (PCLK is the output clock of the 80960CA). For 80960 writes, this signal indicates completion of the write cycle. |
-P_ADS | I | Address Strobe--This signal indicates to Brighton that a new address cycle is beginning. |
P_W/-R | I | Write/Read--This signal indicates to Brighton whether a cycle is a write or read access. |
-P_BLAST | I | Burst Last--This signal indicates the last access of a burst access. This signal must be valid at least one state before data is ready. (This can be accomplished by programming the 80960 for 0 wait states and always letting READY pace the cycle.) See "80960 Region Programming". |
-P_DMA | I | DMA--This signal is asserted during 80960 DMA accesses. Brighton uses this signal to determine if the current 80960 access is by a task (protection will be checked) or by 80960 DMA (no hardware protection). |
Table 1. 80960CA Interface Signals |
The following are the signals used to interface to the local bus:
L_AD31:0 | I/O | 32-Bit Multiplexed Address/Data Bus--These lines will contain address information during the address cycle, after which they will be used for data. When Brighton is the master, they will be driven during address and for write data. When Brighton is the selected slave, it will drive these lines with read data. |
L_ADP3:0 | I/O | Local Bus Parity Bits--When address or data is present on the AD bus, these lines will contain the odd parity of each byte. L_ADP0 corresponds to AD7:0, L_ADP1 to AD15:8, L_ADP2 to AD23:16 and L_ADP3 to AD31:24. |
-L_BE3:0 | I/O | Byte Enables--Brighton drives these as a master and latches them at address time as a slave. For writes, these signals select which byte(s) to write at the selected address. For reads, these bits determine which bytes will be driven onto data bus. |
-L_READY | I/O | Ready--For reads, this signal indicates that data is valid on the rising edge of PCLK. For writes, this signal indicates completion of the write cycle. Brighton drives this as a slave and monitors it as a master. |
-L_ADS | I/O | Address Strobe--This signal indicates that a new address cycle is beginning. Address is on the AD bus during this cycle (L_W/-R and -L_BE0:3 are also latched). Brighton drives this as a master and monitors it as a slave. |
L_W/-R | I/O | Write/Read--This signal indicates whether a cycle is a write or read access. Brighton drives this as a master and monitors it as a slave. This signal is latched during the address phase. |
-L_BLAST | I/O | Burst Last--This signal indicates the last access of a burst access. Brighton drives this as a master and monitors it as a slave. |
-LEXCPT | I/O | Local Bus Exception--Brighton will drive this line for two clocks if Brighton detects a local bus parity error as a slave, a multi-bit ECC error occurs during a local bus access to memory, or a local bus time-out occurs. Brighton monitors this line and will terminate its local bus cycle if this line goes active (must be held active for two clocks). |
-L_REQ2:0 | I | Local Bus Requests--These signals are used to indicate to Brighton that another master is requesting the local bus. See 5.0 , "Arbiter Function" for details on servicing priority. |
-L_GRANT2:0 | O | Local Bus Grants--These signals indicate to a local bus master that they have been granted the bus. See 5.0 , "Arbiter Function" for more information. These lines function as inputs when in Manufacturing Test Mode. |
-BRREQ | O | Brighton Request--When this signal goes low it indicates that Brighton wants to access the local bus. See 5.4 , "Special Arbitration Modes" for more information. |
-BRGNT | I | Brighton Grant--When this signal goes low it indicates that Brighton has been granted the local bus by an external arbiter. This signal is only monitored when bit 6 of the SPAR is a '1'. See 5.4 , "Special Arbitration Modes" for more information. |
Table 2. Local Bus Interface Signals |
The following are the signals used to interface to DRAM memories.
DD31:0/ ID31:0 | I/O | 32-Bit Packet Data Bus/32-Bit Instruction Data Bus--These lines are used to transfer data to and from memory. |
DCB6:0/ ICB6:0 | I/O | Packet Memory Check Bits/Instruction Memory Check Bits--These lines are used to transfer error detection/correction codes to and from memory. |
DA11:0/ IA11:0 | O | 12-Bit Packet DRAM Address/12-Bit Instruction DRAM Address--These lines are used to transfer the row and column address to the DRAM. |
-DRAS1:0/ -IRAS1:0 | O | Packet RAS/Instruction RAS--These lines are used to strobe the row address into DRAM. In one-bank memories, only RAS0 is used. In two-bank memories, RAS1 is used to access the second bank. |
-DCAS1:0/ -ICAS1:0 | O | Packet CAS/Instruction CAS--These lines are used to strobe the column address into DRAM. In one-bank memories, only CAS0 is used. In two-bank memories, CAS1 is used to access the second bank. |
-DW/ -IW | O | Packet Memory Write/Instruction Memory Write--This signal controls whether a read or write is to be performed on memory. |
Table 3. Packet Memory/Instruction Memory Interface Signals |
The following are descriptions of all other Brighton signals.
TXDATA | O | Transmit Data--This is the data-out pin for the serial debug port. |
RXDATA | I | Receive Data--This is the data-in pin for the serial debug port. |
BRINT3:0 | O | Four-Bit Encoded Interrupt--These lines will be used to signal interrupts to the local interrupt controller. See 9.0 , "Interrupt Function" for more details. |
-ROSCS | O | ROS Chip Select--This line will be active when the 80960CA is accessing an address in the 0-256MB or the 80960 boot record. See Table 10.. |
PCLK | I | Clock Input--This is the clock input to the chip. It will normally be driven by the PCLK output of the Intel 80960CA. |
-PRESET | I | Power-On-Reset--This line causes all Brighton registers to assume their reset values. All Brighton functions are reset and do not operate until this line is released. |
-MTST | I | Manufacturing Test--This pin will be used by manufacturing for testing purposes. It is normally pulled high. |
-DI_IN | I | Driver Inhibit Enable--Used for testing. This pin should be tied HIGH during normal chip operation. If -DI is LOW AND RXDATA is LOW then all off-chip drivers in Brighton are tri-stated. If -DI is LOW AND -POR is LOW Brighton will be in Static-IDD-Test-Mode (used by chip manufacturer). |
A_CLK | I | LSSD A Clock--Used for chip testing. This pin should be tied HIGH during normal chip operation. |
B_CLK | I | LSSD B Clock--Used for chip testing. This pin should be tied HIGH during normal chip operation. |
C_CLK | I | LSSD C Clock--Used for chip testing. This pin should be tied HIGH during normal chip operation. |
Table 4. Other Brighton Signals |
COMP | NA | Driver Compensation Resistor. This pin should should be pulled-up by a 909 ohm +/- 1% resistor to +5V. |
VCC | NA | Power pins. All VCC pins must be connected to a +5 volt power plane. |
GND | NA | Ground pins. All GND pins must be connected to a ground plane. |
Table 5. Brighton Non-signal Pins |
Note: 'x' = timer port # (0-4).
Register Name | Address | Type | Section |
---|---|---|---|
Timer Control Registers | 1FFBx000h | r/w | 2.1 , "Timer Control Register (TCR0-4)" |
Timer Preset Registers | 1FFBx004h | r/w | 2.2 , "Timer Preset Register (TPR0-4)" |
Timer Present Value Registers | 1FFBx008h | ro | 2.3 , "Timer Present Value register (TPV0-4)" |
Timer Command Registers | 1FFBx00Ch | r/w | 2.4 , "Timer Command Register (TCMD0-4)" |
Transmitter Buffer Port | 1FFB8000h | r/w | 2.5 , "Transmitter Buffer Port (TxBUF)" |
Receiver Buffer Port | 1FFB8004h | ro | 2.6 , "Receiver Buffer Port (RxBUF)" |
Port Configuration Register | 1FFB8008h | r/w | 2.7 , "Port Configuration Register (PCR)" |
Memory Protection Enable Register | 1FFB9000h | r/w | 2.8 , "Memory Protection Enable Register (MPER)" |
Task Page Table Base Register | 1FFB9004h | r/w | 2.9 , "Task Page Table Base Register (TASK_PTBR)" |
Master0 Page Table Base Register | 1FFB9008h | r/w | 2.10 , "Master0 Page Table Base Register (MC_PTBR)" |
Master1 Page Table Base Register | 1FFB900Ch | r/w | 2.11 , "Master1 Page Table Base Register (AM_PTBR)" |
Task Protection Address Trap Register | 1FFB9010h | ro | 2.12 , "Task Protection Address Trap Register (TPATR)" |
Task Protection Status Register | 1FFB9014h | ro | 2.13 , "Task Protection Status Register (TPSTAT)" |
Local Bus Protection Address Trap Register | 1FFB9018h | ro | 2.14 , "Local Bus Protection Address Trap Register (LPATR)" |
Local Bus Protection Status Register | 1FFB901Ch | ro | 2.15 , "Local Bus Protection Status Register (LPSTAT)" |
Exception Address Trap Register | 1FFB9020h | ro | 2.16 , "Local Bus Exception Address Trap Register (LEXATR)" |
Exception Status Register | 1FFB9024h | ro | 2.17 , "Local Bus Exception Status Register (LEXSTAT)" |
Single-bit ECC Address Trap Register | 1FFB902Ch | ro | 2.18 , "Single-bit ECC Error Address Trap Register (SBATR)" |
Single-bit ECC Error Register | 1FFB9030h | r/w | 2.19 , "Single-Bit ECC Error Register (SBECCR)" |
ECC Address Trap Register | 1FFB9034h | ro | 2.20 , "ECC Address Trap Register (ECCATR)" |
ECC Status Register | 1FFB9038h | ro | 2.21 , "ECC Status Register (ECCSTAT)" |
Brighton Gate Array ID | 1FFBA000h | ro | 2.22 , "Gate Array ID Register (GAIDR)" |
Memory Configuration Register | 1FFBA004h | r/w | 2.23 , "Memory Configuration Register (MCR)" |
Special Arbitration Register | 1FFBA008h | r/w | 2.24 , "Special Arbitration Register (SPAR)" |
Local Bus Configuration Register | 1FFBA00Ch | r/w | 2.25 , "Local Bus Configuration Register (LBCFG)" |
Force ECC Error Register | 1FFBA010h | r/w | 2.26 , "Force ECC Error Register (FEER)" |
Note that the registers are grouped into different 4k byte regions depending on their function to allow protection on each area separately.
Each timer has a timer control register which specifies timer specific parameters. These are described below.
(ADDRESS = 1FFBx000h) r/w x = timer # (0-4) 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ |RSV|RSV|RSV|RSV|RSV|INT|ZDC|IEN| +---+---+---+---+---+---+---+---+
This bit indicates the status of the interrupt for the counter.
If the interrupt is active, the interrupt will be reset when this register is read.
RESET: 0000 0000
(ADDRESS = 1FFBx004h) r/w x = timer # (0-4) 23 0 +-----------------------------+ | Timer Preset | +-----------------------------+
This value is initially loaded by software and then can be reloaded automatically depending on how the TCR is programmed. Only bits 0-15 are active for TMR 0,1,2 and 4.
RESET: 0000 0000 0000 0000 0000 0000
(ADDRESS = 1FFBx008h) ro x = timer # (0-4) 23 0 +-----------------------------+ | Timer Present Value | +-----------------------------+
This value is latched during the read cycle and indicates the present count for the timer.
RESET: 0000 0000 0000 0000 0000 0000
(ADDRESS = 1FFBx00Ch) r/w x = timer # (0-4) 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+ | | | |RUN| | |PRE|STR| |RSV|RSV|RSV| |RSV|RSV| |STP| +---+---+---+---+---+---+---+---+
When this bit is set it indicates the timer is currently running. When reset, it indicates the timer is stopped.
These two bits are binary encoded to provide four different commands.
RESET: 0000 0000
(ADDRESS = 1FFB8000h) r/w - byte addressable 15 14 13 12 11 10 9 8 7 0 +---+---+---+---+---+---+---+---++--------------+ |INT|RSV|RSV|RSV|RSV|RSV|RSV|FUL|| TxBUF Port | +---+---+---+---+---+---+---+---++--------------+ Transmit Status Byte Transmit Data Byte
When set, this bit indicates that the transmitter is currently interrupting the processor. When this bit is read as active the interrupt to the processor is cleared.
When this bit is reset, the FIFO has at least one available byte for data to be written.
When set, all FIFO bytes are now occupied with data. Further writes to the transmit buffer will be ignored until one or more bytes are transmitted.
When read, this byte returns the last byte written to the Transmit FIFO.
RESET: 0000 0000 0000 0000
(ADDRESS = 1FFB8004h) ro - byte addressable 15 14 13 12 11 10 9 8 7 0 +---+---+---+---+---+---+---+---++--------------+ |INT|RSV|RSV|RSV|VAL|MDA|OVR|FRA|| RxBUF Port | +---+---+---+---+---+---+---+---++--------------+ Receive Status Byte Receive Data Byte
When set, this bit indicates that the receiver is currently interrupting the processor. This bit is cleared when there are no bytes remaining in the FIFO to be read.
When set, indicates that data in the Receive Data register is valid (has been received, but has not been read yet.)
When set, indicates that more data is in the receive FIFO.
When set, indicates that data was received after the byte in the Receive Data register, but was lost due to an overflow condition.
When set, indicates that a framing error occurred while the data byte currently in the Receive Data register was received.
Once the data is read, if more data is available in the FIFO (or as more data is collected) the byte in the data port will be replaced with new valid data.
The status byte will also change when the data byte is read. If the data in the status and data bytes are read by separate byte read operations, the status byte will reflect the status of the byte currently in the data byte.
RESET: 0000 0000 0000 0000
(ADDRESS = 1FFB8008h) r/w 7 6 5 4 3 2 1 0 +---+---+-------+---+---+---+---+ |RSV|RSV| BAUD |IEN|WRP|REN|TEN| +---+---+-------+---+---+---+---+
When enabled, an interrupt will be generated on the next occurrence of either of two conditions:
When wrap mode is enabled, the external chip Rx input and Tx output are disabled, and the output of the transmitter is connected to the input of the receiver.
When the receiver is enabled, it monitors the Rx input of Brighton (or the transmitter output, if in 'wrap' mode) and collects data which is then stored in the receiver FIFO buffer.
Disabling the receiver aborts any bytes in process and clears bytes left in the FIFO.
When the transmitter is enabled, it collects bytes written to the transmitter FIFO and outputs them on the Tx output of Brighton (or the receiver input, if in 'wrap' mode).
Disabling the transmitter aborts any bytes in process, and clears bytes left in the FIFO, and disables writes to the FIFO.
RESET: 0000 0000
This register is NOT protected by the hardware. When writing this register, the upper 16 bits serve as a mask for the lower 16 bits. For example, if you wanted to turn on the 960 task protection bit you would store the word x'00028002'. This tells Brighton: write the register (bit 15=1), write bit 1 (bit 17=1) and set bit 1 to a 1 (bit 1=1). The mask bits always read 0's. Bit 15 must be a '1' to write this register. This register can only be written using 32-bit writes (i.e. all bytes enabled).
For protection to be enabled for a particular access, all bits/signals relating to that access must be in the correct state. (i.e. For a DRAM read from the 80960: 960TSK=1, ALLRD=1, RAMIO=1 and the -PDMA signal is HIGH.)
(ADDRESS = 1FFB9000h) r/w
Mask bits 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Data bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |WRT| | | | | | | |RAM|UP |ALL|LB |MST|MST|960|LOW| |EN |RSV|RSV|RSV|RSV|RSV|RSV|RSV|IO |MEM|RD |MEM| 0 | 1 |TSK|MEM| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
RESET: 0000 0000 0000 0000 0000 0000 0000 0000
ADDRESS = 1FFB9004h (r/w)
31 6 5 0 +-------------------+--------+ | TASK_PTBR | 000000 | +-------------------+--------+
RESET: SSSS SSSS SSSS SSSS SSSS SSSS SS00 0000
(ADDRESS = 1FFB9008h) r/w
31 6 5 0 +-------------------+--------+ | MC_PTBR | 000000 | +-------------------+--------+
RESET: SSSS SSSS SSSS SSSS SSSS SSSS SS00 0000
(ADDRESS = 1FFB900Ch) r/w
31 30 6 5 0 +---+---------------+--------+ | 0 | AM_PTBR | 000000 | +---+---------------+--------+
RESET: 0SSS SSSS SSSS SSSS SSSS SSSS SS00 0000
Note: The TPATR register should be read BEFORE reading the TPSTAT.
(ADDRESS = 1FFB9010h) ro
31 0 +---------------------+ | TPATR | +---------------------+
RESET: UUUU UUUU UUUU UUUU UUUU UUUU UUUU UU00
Note: The TPSTAT register should be read AFTER reading the TPATR.
(ADDRESS = 1FFB9014h) ro
31 8 7 6 5 4 3 2 1 0 +--------+---+-------+---+---+---+---+---+ | RSV |LCK| RSV |PWR|PBE|PBE|PBE|PBE| | | | | | 3 | 2 | 1 | 0 | +--------+---+-------+---+---+---+---+---+ RSV = reserved
RESET: 0000 0000 0000 0000 0000 0000 0UUU UUUU
(ADDRESS = 1FFB9018h) ro
31 0 +---------------------+ | LPATR | +---------------------+
RESET: UUUU UUUU UUUU UUUU UUUU UUUU UUUU UUUU
(ADDRESS = 1FFB901Ch) ro - byte addressable
31 11 10 9 8 7 3 2 1 0 +-------+----+----+----+-------+----+----+----+ | RSV |LWR1|ATR1|MST1| RSV |LWR0|ATR0|MST0| +-------+----+----+----+-------+----+----+----+ RSV = reserved
RESET: 0000 0000 0000 0000 0000 0UU0 0000 0UU0
Note: When trapping the address for a data parity error (Brighton master), the address trapped in the LEXATR will be the address of the error + 4h.
(ADDRESS = 1FFB9020h) ro
31 0 +---------------------+ | LEXATR | +---------------------+
RESET: UUUU UUUU UUUU UUUU UUUU UUUU UUUU UUUU
The EXS part does NOT correspond to a Brighton interrupt. It is expected that the master that received the exception sourced an interrupt to the processor.
(ADDRESS = 1FFB9024h) ro
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |RSV|RSV|RSV|RSV|MEX|MEX|MEX|MEX|RSV|RSV|RSV|RSV|RSV|MPE|MPE|MPE| | | | | |ATR|WR |DMA|PND| | | | | |ATR|DMA|PND| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |RSV|MST|MST|MST|960|960|EXS|EXS|LTO|RSV|RSV|SLV|ECC|RSV|LAP|EXS| | | 2 | 1 | 0 |DMA| |WR |ATR| | | |PAR| | |ERR|PND| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ RSV = reserved
RESET: UUUU UUU0 UUUU UUU0 UUUU UUUU UUUU UUU0
(ADDRESS = 1FFB902Ch) ro
31 2 10 +------------------+--+ | SBATR |00| +------------------+--+
RESET: UUUU UUUU UUUU UUUU UUUU UUUU UUUU UU00
(ADDRESS = 1FFB9030h) r/w
7 0 +------------------+ | SBECCR | +------------------+
RESET: 1111 1111
(ADDRESS = 1FFB9034h) ro
31 2 10 +-----------------+--+ | ECCATR |00| +-----------------+--+
RESET: UUUU UUUU UUUU UUUU UUUU UUUU UUUU UU00
(ADDRESS = 1FFB9038h) ro
31 5 4 3 2 1 0 +--------+---+---+---+---+---+ | RSV |TSK|960|PWR|LCK|RSV| | |PRO|DMA| | | | +--------+---+---+---+---+---+ RSV = reserved
RESET: 0000 0000 0000 0000 0000 0000 UUUU UU00
Chip Pass | GAIDR Value |
---|---|
1 | 0x00000001 |
2 | 0x00000002 |
All Other Values | Reserved |
(ADDRESS = 1FFBA000h) ro
31 0 +--------------------+ | GAIDR | +--------------------+
RESET: See Table above.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |IM |IM | | | |IM |IM |IM |PM |REF|OSC| | |PM |PM |PM | |INS|LOC|RSV|RSV|RSV|SZ2|SZ1|SZ0|INS| |25 |RSV|RSV|SZ2|SZ1|SZ0| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+Note: RSV=Reserved, MUST be set to '0'
SZ2 | SZ1 | SZ0 | MEMORY SIZE | ORGANIZATION | ADDRESSING |
0 | 0 | 0 | 1 Mbyte | 1 Bank | 9/9 |
0 | 0 | 1 | 2 Mbytes | 2 Banks | 9/9 |
0 | 1 | 0 | 4 Mbytes | 1 Bank | 10/10 |
0 | 1 | 1 | 8 Mbytes | 2 Banks | 10/10 |
1 | 0 | 0 | 16 Mbytes | 1 Bank | 12/10 or 11/11 |
1 | 0 | 1 | 32 Mbytes | 2 Banks | 12/10 or 11/11 |
1 | 1 | x | Reserved | Reserved |
RESET: 1000 0101 1100 0101
(ADDRESS = 1FFBA008h) r/w
+---+---+---+-------+---+---+---+-------+ |15 |14 |13 | 12-8 | 7 | 6 | 5 | 4-0 | +---+---+---+-------+---+---+---+-------+ |RSV|IEN|RSV| ICNT |LTO|PEN|RSV| PCNT | +---+---+---+-------+---+---+---+-------+Note: RSV=Reserved
RESET: 0000 0000 0000 0000
+-----+------+---+---+---+---+-----+------+ |31-13| 12 |11 |10 | 9 | 8 | 7-1 | 0 | +-----+------+---+---+---+---+-----+------+ | RSV |BAPAR |BP3|BP2|BP1|BP0| RSV |PARCHK| +-----+------+---+---+---+---+-----+------+Note: RSV=Reserved
RESET: 0000 0000 0000 0000 0000 0000 0000 0000
This register also allows you to turn off ECC --the check bits are still written but are not checked on reads-- and to read the most recently read check bits.
Warning!
Setting the PCB or ICB bits can be dangerous. Do not allow interrupts,
stack usage, DMA, etc. while these bits are set. Also, after clearing these bits
re-write the memory that was written while they were set.
(ADDRESS = 1FFBA010h) r/w - byte addressable
31 30 . . . 24 23 22 . . . 16 +---+-------------+---+------------+ | | ICBIN 6:0 | | PCBIN 6:0 | |RSV| |RSV| | +---+-------------+---+------------+ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | I |ICB|ICB|ICB|ICB|ICB|ICB|ICB| P |PCB|PCB|PCB|PCB|PCB|PCB|PCB| |OFF| 6 | 5 | 4 | 3 | 2 | 1 | 0 |OFF| 6 | 5 | 4 | 3 | 2 | 1 | 0 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
RESET: 0UUU UUUU 0UUU UUUU 0000 0000 0000 0000
+-----------+--------+------+------+------+------+------+------+------+ | | | | | | | | | | | FEER | | | | | | | | | | CB 6| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | | value 5| 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | | 4| 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | | 3 2 1 0 | | | | | | | | | +-----------+--------+------+------+------+------+------+------+------+ | 0 0 0 0 |no error| cb4 | cb5 | | cb6 | | | db20 | + ----------+--------+------+------+------+------+------+------+------+ | 0 0 0 1 | cb0 | | | db26 | | db28 | db15 | | +-----------+--------+------+------+------+------+------+------+------+ | 0 0 1 0 | cb1 | | | db4 | | db29 | db27 | | +-----------+--------+------+------+------+------+------+------+------+ | 0 0 1 1 | | db13 | db0 | | db18 | | | | +-----------+--------+------+------+------+------+------+------+------+ | 0 1 0 0 | cb2 | | | db12 | | db30 | db7 | | +-----------+--------+------+------+------+------+------+------+------+ | 0 1 0 1 | | | db24 | | db2 | | | | +-----------+--------+------+------+------+------+------+------+------+ | 0 1 1 0 | | | db16 | | db5 | | | | +-----------+--------+------+------+------+------+------+------+------+ | 0 1 1 1 | db8 | | | | | | | | +-----------+--------+------+------+------+------+------+------+------+ | 1 0 0 0 | cb3 | | | db17 | | db14 | db31 | | +-----------+--------+------+------+------+------+------+------+------+ | 1 0 0 1 | | db1 | db25 | | db10 | | | | +-----------+--------+------+------+------+------+------+------+------+ | 1 0 1 0 | | db9 | db22 | | db23 | | | | +-----------+--------+------+------+------+------+------+------+------+ | 1 0 1 1 | db3 | | | | | | | | +-----------+--------+------+------+------+------+------+------+------+ | 1 1 0 0 | | db6 | db11 | | db19 | | | | +-----------+--------+------+------+------+------+------+------+------+ | 1 1 0 1 | | | | | | | | | +-----------+--------+------+------+------+------+------+------+------+ | 1 1 1 0 | db21 | | | | | | | | +-----------+--------+------+------+------+------+------+------+------+ | 1 1 1 1 | | | | | | | | | +-----------+--------+------+------+------+------+------+------+------+Figure 4. Brighton FEER Values
Each box shows the data bit (db) or check bit (cb) that will appear to be in error.
Blanks in the table indicate multi-bit errors. (data with mutli-bit errors will be unpredictable)
+-----------+ +---+A11-0 | RAS0------------|---+RAS | CAS0------------|---+CAS DQ39:0+---+ +--|---+-W | | A11-0--------|--+ +-----------+ | | | +-----DQ39:0 -W-----------+ | +-----------+ | | +---+A11-0 | | RAS1---------|------+RAS | | CAS1---------|------+CAS DQ39:0+---+ +------+-W | +-----------+Note: Brighton only uses 39 of the 40 bits.
The address is multiplexed to the DRAM as follows:
DRAM Address | 80960CA or Local Bus Address | COL | ROW | |
0 | A2 | A11 | ||
1 | A3 | A12 | ||
2 | A4 | A13 | ||
3 | A5 | A14 | ||
4 | A6 | A15 | ||
5 | A7 | A16 | ||
6 | A8 | A17 | ||
7 | A9 | A18 | ||
8 | A10 | A19 | ||
9 | A20 | A21 | ||
10 | A23 | A22 | ||
11 | --- | A23 |
From the 80960, the memory map looks as follows:
FROM | TO | MPER bits | Comments |
00000000 | 0FFFFFFF | 960TSK LOWMEM | ROS chip select. Not translated to local bus. |
10000000 | 1FEFFFFF | 960TSK LOWMEM | Translated to local bus. |
1FF00000 | 1FFAFFFF | 960TSK RAMIO ALLRD | Translated to local bus. |
1FFB0000 | 1FFBFFFF | 960TSK RAMIO ALLRD | Not translated to local bus. Brighton IO area. |
1FFC0000 | 1FFFFFFF | 960TSK RAMIO ALLRD | Translated to local bus. |
20000000 | xxxxxxxx | 960TSK RAMIO ALLRD | Not translated to local bus. Packet memory area. Address range determined by size of memory (21FFFFFF for 32MB). |
22000000 or 24000000 | xxxxxxxx | 960TSK RAMIO ALLRD | Not translated to local bus. Instruction memory area. Starting address determined by MCR_IMLOC (2.23 , "Memory Configuration Register (MCR)"). Address range determined by size of memory. |
xxxxxxxx | 7FFFFFFF | 960TSK LBMEM ALLRD | Translated to local bus. Local bus memory area. Covers ALL addresses from 20000000 to 7FFFFFFF except where packet and instruction memory are. |
80000000 | FFFFFFFF | 960TSK UPMEM | Not translated to local bus. From x'FFFFFF00' to x'FFFFFF2F' causes a ROSCS. |
Table 10. 80960 Memory Map |
FROM | TO | MPER bits | Comments |
00000000 | 1FEFFFFF | MST0 MST1 LOWMEM | Protection checking only. |
1FF00000 | 1FFAFFFF |
| No protection checking. |
1FFB0000 | 1FFBFFFF |
| No protection checking. Brighton register area. |
1FFC0000 | 1FFFFFFF |
| No protection checking. |
20000000 | xxxxxxxx | MST0 MST1 ALLRD | Packet memory area. Address range determined by size of memory (21FFFFFF for 32MB). |
22000000 24000000 | xxxxxxxx | MST0 MST1 ALLRD | Instruction memory area. Starting address determined by MCR_IMLOC (2.23 , "Memory Configuration Register (MCR)"). Address range determined by size of memory. |
xxxxxxxx | 7FFFFFFF | MST0 MST1 LBMEM | Local bus memory area. Covers ALL addresses from 20000000 to 7FFFFFFF except where packet and instruction memory are. |
80000000 | FFFFFFFF | MST0 MST1 UPMEM | Protection checking only. |
Table 11. Local Bus Memory Map |
The Error Detection and Correction (EDC) code used is a basic one-bit correct, two-bit detect scheme. If the data and check bits are grouped as shown below, chip-kill-detection is achieved (for memory using four-bit wide chips). The all 0's and all 1's condition will also be detected (SIMM-kill-detection).
For chip-kill-detection, the data and check bits should be grouped as follows:
The check bits are generated by 'XNOR'ing the indicated data bits (similar to generating odd parity). The data bits used to generate each check bit are shown in Figure 5..
+-----+---------------------------------------------------------------+ | | Data bit | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |check|3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1| | | | | | | | | | | |bit |1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0| +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cb6 |x|x|x|x|x| | | |x| | |x|x|x| | |x|x| | | |x| | |x| |x| | |x| | | +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cb5 |x| | | |x|x|x|x| |x| |x| | |x|x|x| | |x|x| | | |x| | |x| | | |x| +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cb4 | |x|x|x| |x| | | | | |x| | |x| | |x|x|x| | |x| | |x| |x| | |x| | +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cb3 |x| | | | | |x| |x|x|x| |x| |x| | |x| | |x|x|x| | |x| | |x| |x| | +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cb2 | |x| | | | | |x| | |x| |x| | |x| | | |x|x| | |x|x|x|x| | |x| | | +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cb1 | | |x| |x| | | |x|x|x| | |x| |x| | |x| | | |x|x| | |x|x|x| | |x| +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cb0 | | | |x| |x|x|x| | | | | |x| | |x| |x| | |x| |x| | | | |x|x|x|x| +-----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Note: An 'x' denotes that this data bit is part of the XNOR tree
The check bits are generated and written to memory at the same time as the data. When the location is read, the data and check bits flow through an XOR tree (same bits as generating logic plus the check bit). This produces seven syndrome bits. These syndrome bits are decoded to determine if and where an error has occurred.
ECC errors can be forced (or turned off) using the FEER (see 2.26 , "Force ECC Error Register (FEER)").
Brighton will request the local bus (unless prevented by protection) when the 80960 accesses an address from x'1000 0000' to x'7FFF FFFF' except for the areas where Brighton registers (x'1FFB XXXX'), packet memory and instruction memory are located. The area from x'1000 0000' to x'1FFF FFFF' (except X'1FFB xxxx') is called 'local bus IO'. The area from x'2000 0000' to x'7FFF FFFF' (minus packet and instruction memory) is called 'local bus memory'. (See 2.8 , "Memory Protection Enable Register (MPER)" for register settings to allow access to local bus memory and local bus IO.)
Brighton will also cause a local bus preempt (but not do a cycle) if:
Only single word (or sub-word) accesses are supported.
For timings and diagrams, see 10.1 , "Brighton CFE Timings".
Note that an 80960CA request is actually the 80960 starting an address cycle (HOLD and HOLDA are NOT used by Brighton). All other requesters first request the bus, then are granted the bus, then start their address cycle. Since the 80960CA is 'quickest' to the bus, it is the default grantee if there are no other requesters.
A master will not be granted the bus twice in a row unless there are no other requesters.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | ===================================================== +--+ +--+ +--+ +--+ +--+ +--+ +--+ +- PCLK | | | | | | | | | | | | | | | + +--+ +--+ +--+ +--+ +--+ +--+ +--+ | | | | | | | | ___ -------------------------------+ |+------- ADS | | | | | || || | | | | | | |+-----+ | | | | | | | | | _____ -------+ |+-----+ |+------------------- READY | || || || || | | | | |+-----+ |+-----+ | | | | | | | | | | | _____ -------------+ | |+------------------- BLAST | | || | || | | | | | |+-----------+ | | | | | | | | | | | ____ | | |+-----------+ | | | REQ1 | | || | || | | | -------------+ | |+------------------- | | | | | | | | ____ | |+------------------------------------- GNT1 | || | | | | | | -------+ | | | | | | | | | | | | | | ____ -+ | | | | | | | REQ2 || | | | | | | | |+------------------------------------------- | | | | | | | | ____ -------------------------+ | |+------- GNT2 | | | | || | || | | | | | |+-----------+ |Figure 6. Local Bus Arbitration and Preempt Mechanism
If a local bus master is bursting to/from instruction memory, the 80960 will be prevented from accessing it until the instruction memory arbiter re-arbitrates for the memory. Assuming the local bus is doing a very long burst, re-arbitration will not take place unless a refresh cycle is necessary or the local bus burst crosses a page boundary. The 80960 could be held off for 3 us. (3 us is the time it takes a master to burst 512 words to Brighton memory.) The SPAR may be used to reduce this time. If enabled (IEN=1), Brighton will count the number of cycles a local bus master has done since the 80960 requested instruction memory. When this count equals the programmed value (ICNT), Brighton will force rearbitration for instruction memory and the 80960 will receive access (80960 has higher priority to instruction memory). During this time, the local bus master will be held NOT READY.
The SPAR is used in very much the same way for packet memory with the following exceptions:
Associated with each executable task are memory resident structures called page tables. Pages are defined to be 4KB in length.
31 30 29 28 . . . 3 2 1 0 +--+--+--+--+ +--+--+--+--+ |WR|RD|WR|RD|. . .|WR|RD|WR|RD| +--+--+--+--+ +--+--+--+--+ \ / \ / \ / \ / | | | +-- First 4KB page | | +-------- Second 4KB page | | . . . | | . . . | +-------------------- 15th 4KB page +-------------------------- 16th 4KB pageFigure 7. Page Table Entry Format
WR | RD | Meaning |
0 | 0 | Inaccessible |
0 | 1 | Read Only |
1 | 0 | Write Only |
1 | 1 | Read/Write |
Table 12. Page Access Bit Definition |
The access bits are checked by hardware on each protected access and an interrupt is generated and the violating address latched if a violation is detected. (see 2.12 , "Task Protection Address Trap Register (TPATR)" or 2.14 , "Local Bus Protection Address Trap Register (LPATR)"). Also, in the case of a write violation, the write to memory will be blocked by the hardware. On 80960 accesses to the local bus, Brighton will prevent the local bus cycle unless the access is allowed by protection.
TASK TABLE Master0 TABLE TASK_PTBR = 20000000 MC_PTBR = 20000400 addresses addresses address data covered address data covered +--------+ +--------+ 20000000 |00000000| 1FF00000-1FF0FFFF 20000400 |00000000| 20000000-2000FFFF +--------+ +--------+ 20000004 |00000000| 1FF10000-1FF1FFFF 20000404 |00000000| 20010000-2001FFFF +--------+ +--------+ 20000008 |00000000| 1FF20000-1FF2FFFF 20000408 |00000000| 20020000-2002FFFF +--------+ +--------+ 2000000C |00000000| 1FF30000-1FF3FFFF 2000040C |00000000| 20030000-2003FFFF +--------+ +--------+ 20000010 |00000000| 1FF40000-1FF4FFFF 20000410 |00000000| 20040000-2004FFFF +--------+ +--------+ 20000014 |00000000| 1FF50000-1FF5FFFF 20000414 |00001540| 20050000-2005FFFF +--------+ +--------+ 20000018 |00000000| 1FF60000-1FF6FFFF 20000418 |02A80000| 20060000-2006FFFF +--------+ +--------+ 2000001C |00000000| 1FF70000-1FF7FFFF 2000041C |00000000| 20070000-2007FFFF +--------+ +--------+ 20000020 |00000001| 1FF80000-1FF8FFFF 20000420 |00000000| 20080000-2008FFFF +--------+ +--------+ :::::::::: :::::::::: +--------+ 20000040 |000000F0| 20000000-2000FFFF +--------+ 20000044 |00000000| 20010000-2001FFFF +--------+ 20000048 |00000000| 20020000-2002FFFF +--------+ ::::::::::Figure 8. Sample Page Tables
The Master0 table shows a 16KB read-only area starting at x'20053000' and a 16KB write-only area starting at x'20069000'. Remember, task tables begin with x'1FF00000' and local masters start with x'20000000'. The rest of the entries cover to the top of installed memory. Local bus memory is not protected by these tables.
This write causes all task page access bytes presently in the cache to be invalidated. Similarly, a write to the AM_PTBR invalidates its page access byte and a write to the MC_PTBR invalidates the Master 0 slave page access byte cache. Brighton does not check writes to memory to determine if they are cache entries. In order to be sure a change to the tables will be seen by Brighton, the PTBR must be written after the change.
Note: This entry will now be cached.
The Brighton module provides timer support through its integrated timer subsystem. Five hardware interval timers are provided (TMR0-4). Four of the timers (TMR0,1,2,4) have a 1ms interval and have 16-bit resolution to allow for timing events from 1ms to 65 seconds. One of the timers (TMR3) is a 24-bit timer that uses a 333ns (actually 1/3 micro second) timing interval to allow for timing events from 333ns to 6 seconds. Each timer's function can be set up by programming the timer control register (see 2.1 , "Timer Control Register (TCR0-4)") and by issuing timer specific commands.
Timer # | Vector # | Suggested Usage |
---|---|---|
0 | 0000 | watchdog |
1 | 1010 | software |
2 | 1011 | time of day |
3 | 1101 | performance |
4 | 1110 | time slice |
Table 13. Timer Interrupt Vector Assignment |
The Brighton module provides a fixed function UART built into the chip to eliminate the need for a chip of this type during adapter code debug. This is not intended to be used in an operational system environment, but rather only as a tool in a lab environment during the debug phase of code development. The features of this port are described below.
The status of the interrupt for the receiver or transmitter can be read in the registers in 2.6 , "Receiver Buffer Port (RxBUF)" and 2.5 , "Transmitter Buffer Port (TxBUF)". The interrupts are cleared when these status registers are read.
Vector # | Function |
---|---|
0111 | Rx byte available |
1000 | Tx FIFO empty |
Table 14. Debug Port Interrupt Vector Assignment |
These interrupts can be enabled or disabled as described in 2.7 , "Port Configuration Register (PCR)".
BRINT3:0 | Description | Clearing Register |
---|---|---|
0000 | Timer 0 (highest priority -- ideal for watchdog) | see TCR, page 2.1 , "Timer Control Register (TCR0-4)" |
0001 | Multi-Bit ECC Error access by processor | see ECCSTAT, page 2.21 , "ECC Status Register (ECCSTAT)" |
0010 | Local Bus Exception with Brighton Master | see LEXSTAT, page 2.17 , "Local Bus Exception Status Register (LEXSTAT)" |
0011 | Local Bus Parity with Brighton Master | see LEXSTAT, page 2.17 , "Local Bus Exception Status Register (LEXSTAT)" |
0100 | Protection (caused by a task memory protection violation) | see TPSTAT, page 2.13 , "Task Protection Status Register (TPSTAT)" |
0101 | Master0 protection error | see LPATR, page 2.14 , "Local Bus Protection Address Trap Register (LPATR)" |
0110 | Master1 protection error | see LPATR, page 2.14 , "Local Bus Protection Address Trap Register (LPATR)" |
0111 | Serial port data received | see RXBUF, page 2.6 , "Receiver Buffer Port (RxBUF)" |
1000 | Serial port Tx FIFO empty | see TXBUF, page 2.5 , "Transmitter Buffer Port (TxBUF)" |
1001 | Reserved |
|
1010 | Timer 1 | see TCR, page 2.1 , "Timer Control Register (TCR0-4)" |
1011 | Timer 2 | see TCR, page 2.1 , "Timer Control Register (TCR0-4)" |
1100 | Timer 3 | see TCR, page 2.1 , "Timer Control Register (TCR0-4)" |
1101 | Timer 4 | see TCR, page 2.1 , "Timer Control Register (TCR0-4)" |
1110 | Multiple Single-Bit ECC Errors Detected Interrupt (lowest priority) | see SBECCR, page 2.19 , "Single-Bit ECC Error Register (SBECCR)" |
Table 15. Brighton Interrupts |
These are listed from highest priority to lowest (internal to Brighton). A simple priority encoder is used to output the highest pending interrupt. The output will remain until the interrupt is cleared or a higher interrupt is generated. These outputs are synchronized with the clock.
+-----+ IN1 --+ INV |O--+ +-----+ +-----+ +---+ | |NAND |O-+ +-----+ IN2 ----------------+ | +--+ | +-----+ |NAND |O---+ IN3 ----------------------------+ | | +-----+ | | +-----+ +------+ | |NAND |O-----------OUT INn ----------------------------------------------+ | +-----+ NAND TREEThe test begins with all the inputs set to '1'. Then, starting with IN1 (then IN2, IN3...INn) they are changed to '0' (they are not changed back to '1'). Each time a signal is changed the output should toggle.
Listed in Table 16. are the input and output signals for the seven NAND trees in Brighton. Also, the state the output is in when all its corresponding inputs are '1's.
OUTPUT SIGNAL | ALL 1'S | INPUTS (listed in order starting with IN1) |
-IW | 0 |
P_D(20:31),
P_W/-R,
-POR,
-P_BLAST,
-P_DMA,
-P_BE(0:3),
P_ADS,
P_A(24:31)
|
-DW | 1 |
PCLK,
C_CLK,
P_D(0:19)
|
TXDATA | 1 |
ID(2:31)
|
BRINT0_ | 0 |
L_AD(24:31),
L_ADP(0:3),
L_BE(0:3),
ICB(0:6),
ID(0:1)
|
BRINT1_ | 1 |
L_AD(0:23)
|
BRINT2_ | 0 |
DD(26:31),
DCB(0:6),
RXDATA,
L_WR,
-LEXCPT,
-L_READY,
-L_BLAST,
-L_ADS,
-L_GRANT2_,
-L_GRANT1_,
-L_GRANT0_,
-BRIREQ_,
-L_REQ0,
-L_REQ1,
-L_REQ2,
-BRIGNT
|
BRINT3_ | 1 |
DD(0:25)
|
Table 16. NAND tree inputs/outputs |
INPUT SIGNAL | OUTPUTS OF SAME POLARITY AS INPUT | OUTPUTS OF OPPOSITE POLARITY AS INPUT |
P_W/-R | -IRAS1 | -ROSCS, -P_READY |
-P_BE2 | -ICAS0, -ICAS1 | -IRAS0 |
PA(5) | (none) | -DRAS1 |
PA(2) | (none) | -DRAS0, -DCAS0, -DCAS1 |
Table 17. Scan-chain flush-thru signal correspondence |
VECTOR # | A_CLK | B_CLK | C_CLK | POR | PCLK | -MTEST | P_W/-R | -P_BE2 | P_A(5) | P_A(2) |
1 | L | H | L | X | H | H | L | H | L | L |
2 | H | L | L | X | H | H | L | H | L | L |
3 | H | L | H | L | L | L | X | X | X | X |
4 | H | L | L | L | L | L | X | X | X | X |
5 | H | H | L | L | H | L | X | X | X | X |
H = HIGH, L = LOW, X = DON'T CARE | ||||||||||
Table 18. Vectors for Manufacturing Test Part 3 |
INPUT | OUTPUT |
P_A(2) | IA(0) |
P_A(3) | IA(1) |
P_A(4) | IA(2) |
P_A(5) | IA(3) |
P_A(6) | IA(4) |
P_A(7) | IA(5) |
P_A(8) | IA(6) |
P_A(9) | IA(7) |
P_A(10) | IA(8) |
P_A(20) | IA(9) |
P_A(23) | IA(10),DA(11) |
P_A(24) | IA(11) |
P_A(11) | DA(0) |
P_A(12) | DA(1) |
P_A(13) | DA(2) |
P_A(14) | DA(3) |
P_A(15) | DA(4) |
P_A(16) | DA(5) |
P_A(17) | DA(6) |
P_A(18) | DA(7) |
P_A(19) | DA(8) |
P_A(21) | DA(9) |
P_A(22) | DA(10) |
Table 19. PA to IA and DA bit correlation |
This section documents the CFE local bus timings. All local bus signal timings (outputs) are based on a capacitance of 55pf except -L_GNT (30 pf) and -BRIREQ (20 pf). The MAX timings can be approximated for lower capacitances (down to 30pf) by subtracting 0.25ns per pf. (e.g. at 35pf subtract (55pf-35pf)*.25ns/pf = 5 ns from max timing.) All timings are referenced to the rising edge of the PCLK.
Symbol | Description | Min (ns) | Max (ns) | Notes |
---|---|---|---|---|
Tov, Toh | -L_ADS | 8 | 29 |
|
Tov, Toh | L_AD, L_ADP (address) | 8 | 22 |
|
Tov, Toh | -L_BLAST | 7 | 20 |
|
Tov, Toh | -L_BE, L_W/-R | 8 | 22 | 1
|
Tov, Toh | L_AD, L_ADP (data from memory) | 11 | 19 | 2
|
Tov, Toh | L_AD, L_ADP (data from Brighton register or master write) | 8 | 29 |
|
Tov, Toh | -L_EXCPT | 9 | 29 |
|
Tov, Toh | -L_READY | 7 | 20 |
|
Tov, Toh | -L_GNT | 9 | 28 |
|
Tov, Toh | -BRIREQ | 8 | 25 |
|
Notes:
|
Symbol | Description | Min Tis (ns) | Min Tih (ns) | Notes |
---|---|---|---|---|
Tis, Tih | -L_ADS, -L_BLAST, -L_BE, L_W/-R, -L_READY, -L_EXCPT, -L_REQ, -BRIGNT | 7 | 6 |
|
Tis, Tih | L_AD, L_ADP (address) | 10 | 6 |
|
Tis, Tih | L_AD, L_ADP (data) | 44 | 6 | 1
|
Notes:
|
+----+ +--- \ +----+ PCLK | | | / | | + +----+ \ ---+ +---- / ++++---------- \ ------+++++++ outputs ++++ | / | +++++++ ++++---------- \ ------+++++++ >| |<-Tov / >| |<-Toh \ ++++---------- / ------+++++++ inputs ++++ | \ | +++++++ ++++---------- / ------+++++++ >| |<-Tis >| |<-TihFigure 9. Brighton input and output timing reference
+----+ +----+ +----+ +----+ +---- / +----+ +----+ +----+ +----+ PCLK | | | | | | | | | \ | | | | | | | | + +----+ +----+ +----+ +----+ / ---+ +----+ +----+ +----+ +---- | | | | | \ | | | | --+ | +-------------------------------- / -----+ | +--------------------------- -L_ADS | | | | | | | \ | | | | | | | +---------+ | | | / | +---------+ | | | | | | | \ | | | | +++---------++++++------------------------+++ / ++++++---------+++++++++++++-------++++++++ L_AD +++ | ++++++ | | | +++ \ ++++++ | +++++++++++++ | ++++++++ L_ADP +++---------++++++------------------------+++ / ++++++---------+++++++++++++-------++++++++ | | | | | \ | | | | +++---------------------------------------+++ / ++++++ | | | ++++++++ L_W/-R +++ | | | | +++ \ ++++++ | | | ++++++++ +++ | | | | +++ / ++++++-----------------------------++++++++ | | | | | \ | | | | +++---------------------------------------+++ / ++++++-----------------------------++++++++ -L_BE +++ | | | | +++ \ ++++++ | | | ++++++++ +++---------------------------------------+++ / ++++++-----------------------------++++++++ | | | | | \ | | | | --------------------------------+ | +-- / -------------------------+ | +------- -L_READY | | | | | | | \ | | | | | | | | | | +---------+ / | | | +---------+ | | | | | \ | | | | ----------------------+ | | +-- / -------------------------+ | +------- -L_BLAST | | | | | | | \ | | | | | | | | | +-------------------+ / | | | +---------+Figure 10. Brighton local bus master timing
A two (one is minimum) wait-state write and one wait-state read are shown.
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ PCLK | | | | | | | | | | | | | | | | | | | | + +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +---- | | | | | | | | | | ---+ | | | | | | | +-------------------+------- -L_REQ | | | | | | | | | | | | | | +--------------------------------------------------------------------+-------------------+------- | | | | | | | | | | ------------+ | | | | | | | | +------- -L_GNT | | | | | | | | | | | | | | +-------------------------------------------------------------------------------+------- | | | | | | | | | | ----------------------+ | +------------------------------------------------------------------- -L_ADS | | | | | | | | | | | | | | | +---------+ | | | | | | | | | | | | | | | | +++++++++++++++++++++++---------+++++++++++++++++++++++++++++++---------+++++++++++---------++++++++ L_AD +++++++++++++++++++++++ | +++++++++++++++++++++++++++++++ | +++++++++++ | ++++++++ L_ADP +++++++++++++++++++++++---------+++++++++++++++++++++++++++++++---------+++++++++++---------++++++++ | | | | | | | | | | +++++++++++++++++++++++ | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ L_W/-R +++++++++++++++++++++++ | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -L_BE +++++++++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | | | | | | | | | | --------------------------------------------------------------+ | +---------+ | +------- -L_READY | | | | | | | | | | | | | | | | | | | | | +---------+ | +---------+ | | | | | | | | | | ------------------------------------------------------------------------+ | | +------- -L_BLAST | | | | | | | | | | | | | | | | | | | | +-------------------+Figure 11. Brighton local bus slave read timing
A minimum wait-state two-word burst read from packet memory is shown.
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ PCLK | | | | | | | | | | | | | | | | | | + +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +---- | | | | | | | | | ---+ | | | | | | +-------------------+------- -L_REQ | | | | | | | | | | | | | +----------------------------------------------------------+-------------------+------- | | | | | | | | | ------------+ | | | | | | | +------- -L_GNT | | | | | | | | | | | | | +---------------------------------------------------------------------+------- | | | | | | | | | ----------------------+ | +--------------------------------------------------------- -L_ADS | | | | | | | | | | | | | | +---------+ | | | | | | | | | | | | | | +++++++++++++++++++++++---------+++++++++++++++---------------+++++---------------++++++++ L_AD +++++++++++++++++++++++ | +++++++++++++++ | | +++++ | | ++++++++ L_ADP +++++++++++++++++++++++---------+++++++++++++++---------------+++++---------------++++++++ | | | | | | | | | +++++++++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ L_W/-R +++++++++++++++++++++++ | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++ | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | | | | | | | | | +++++++++++++++++++++++ | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -L_BE +++++++++++++++++++++++ | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++---------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | | | | | | | | | ----------------------------------------------------+ | +---------+ | +------- -L_READY | | | | | | | | | | | | | | | | | | | +---------+ | +---------+ | | | | | | | | | --------------------------------------------------------------+ | | +------- -L_BLAST | | | | | | | | | | | | | | | | | | +-------------------+Figure 12. Brighton local bus slave write timing
A minimum wait-state two-word burst write to packet memory is shown.
+----+ +----+ +----+ +----+ +----+ +----+ | PCLK | | | | | | | | | | | | | + +----+ +----+ +----+ +----+ +----+ +----| | | | | | | | --+ | +-----------------------------------------------| -L_ADS | | | | | | | | | | +---------+ | | | | | | | | | | | | +++---------++++++++++++++++++++++++++++++++--------++++++++| L_AD +++ | ++++++++++++++++++++++++++++++++bad data++++++++| L_ADP +++---------++++++++++++++++++++++++++++++++--------++++++++| | | | | | | | +++ | ++++++++++++++++++++++++++++++++++++++++++++++++| L_W/-R +++ | ++++++++++++++++++++++++++++++++++++++++++++++++| +++---------++++++++++++++++++++++++++++++++++++++++++++++++| | | | | | | | +++---------++++++++++++++++++++++++++++++++++++++++++++++++| -L_BE +++ | ++++++++++++++++++++++++++++++++++++++++++++++++| +++---------++++++++++++++++++++++++++++++++++++++++++++++++| | | | | | | | ------------------------------------------+ | +-------| -L_READY | | | | | | | | | | | | | | +---------+ | | | | | | | | ----------------------------------------------------+ | | ,------- -L_EXCPT | | | | | | | | | | | | | | | | +-------------+Notes:
A three (minimum) wait-state read from packet memory is shown.
This section documents the Processor interface timings. Signal timings (outputs) are based on the following capacitances:
Signal Description | Min (pf) | Max (pf) |
---|---|---|
P_D | 20 | 40 |
-P_READY | 20 | 25 |
-ROSCS | 20 | 25 |
INT | 20 | 30 |
See Figure 9. for definition of Tov and Toh.
Symbol | Description | Min | Max | Notes |
---|---|---|---|---|
Tov, Toh | P_D (from memory) | 8 | 18 | 1
|
Tov, Toh | P_D (from local bus or Brighton register) | 8 | 30 |
|
Tov, Toh | -P_READY | 8 | 22 |
|
Tov, Toh | -ROSCS | 7 | 21 |
|
Tov, Toh | INT | 9 | 27 |
|
Notes:
|
Symbol | Description | Min Tis | Min Tih | Notes |
---|---|---|---|---|
Timings for inputs are as listed in the 80960CA data sheet contained in Intel's 1992 Multimedia and Supercomputing Processors. |
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ PCLK | | | | | | | | | | | | | | | | + +----+ +----+ +----+ +----+ +----+ +----+ +----+ +---- | | | | | | | | --+ | +------------------------------------------------------------------- -P_ADS | | | | | | | | | | | +---------+ | | | | | | | | | | | | | | +++---------------------------------------------------++------------------++++++ P_A +++ | | | | | ++ | | ++++++ +++---------------------------------------------------++------------------++++++ | | | | | | | | +++++++++++++++++++++++++++++++++++++++++++---------+++++++++++---------++++++++ P_D +++++++++++++++++++++++++++++++++++++++++++ | +++++++++++ | ++++++++ +++++++++++++++++++++++++++++++++++++++++++---------+++++++++++---------++++++++ | | | | | | | | +++ | | | | | | | ++++++++ P_W/-R +++ | | | | | | | ++++++++ -P_BE +++---------------------------------------------------------------------++++++++ | | | | | | | | ------------------------------------------+ | +---------+ | +------- -P_READY | | | | | | | | | | | | | | | | | +---------+ | +---------+ | | | | | | | | ----------------------------------------------------+ | | +------- -P_BLAST | | | | | | | | | | | | | | | | +-------------------+Figure 14. Processor read of memory
A minimum wait-state two-word burst read from memory is shown.
+----+ +----+ +----+ +----+ +----+ +----+ +----+ PCLK | | | | | | | | | | | | | | + +----+ +----+ +----+ +----+ +----+ +----+ +---- | | | | | | | --+ | +--------------------------------------------------------- -P_ADS | | | | | | | | | | +---------+ | | | | | | | | | | | | +++-----------------------------------------++------------------++++++ P_A +++ | | | | ++ | | ++++++ +++-----------------------------------------++------------------++++++ | | | | | | | +++++++++++++++++++++++++++++++++---------+++++++++++---------++++++++ P_D +++++++++++++++++++++++++++++++++ | +++++++++++ | ++++++++ +++++++++++++++++++++++++++++++++---------+++++++++++---------++++++++ | | | | | | | +++-----------------------------------------------------------++++++++ P_W/-R +++ | | | | | | ++++++++ +++ | | | | | | ++++++++ | | | | | | | +++ | | | | | | ++++++++ -P_BE +++ | | | | | | ++++++++ +++-----------------------------------------------------------++++++++ | | | | | | | --------------------------------+ | +---------+ | +------- -P_READY | | | | | | | | | | | | | | | +---------+ | +---------+ | | | | | | | ------------------------------------------+ | | +------- -P_BLAST | | | | | | | | | | | | | | +-------------------+Figure 15. Processor write to memory
A minimum wait-state two-word burst write to memory is shown.
+----+ +----+ +--- / +----+ +----+ +----+ PCLK | | | | | \ | | | | | | + +----+ +----+ / ----+ +----+ +----+ +---- | | | \ | | | --+ | +----------- / ---------------------------------- -P_ADS | | | | | \ | | | | +---------+ | / | | | | | | \ | | | ------------------------ / ---------------------------------- -P_READY | | | \ | | | | | | / | | | | | | \ | | | ------------------------ / ------+ | +----------------- -P_BLAST | | | \ | | | | | | | | / | +---------+ | | | | \ | | | -------------+ | / | | | +------ -ROSCS | | | | \ | | | | | | +---------- / ---------------------------+Figure 16. ROSCS timing
-ROSCS goes active the state after ADS and inactive the state after BLAST goes high.
Symbol | Description | Min (ns) | Max (ns) |
---|---|---|---|
tRC | read write cycle time | 165 | - |
tPC | fast page mode cycle time | 70 | - |
tRAC | access time from RAS | - | 85 |
tCAC | access time from CAS | - | 40 |
tAA | access time from column address | - | 40 |
tCPA | access time from CAS precharge | - | 50 |
tOFF | output buffer turn off delay | 0 | 20 |
tRP | RAS precharge time | 70 | - |
tRAS | RAS pulse width | 85 | 10K |
tRSH | RAS hold time | 35 | - |
tCSH | CAS hold time | 85 | - |
tCAS | CAS pulse width | 35 | 16K |
tCRP | CAS to RAS precharge time | 10 | - |
tCP | CAS precharge in fast page mode | 15 | - |
tASR, tASC, tDS, tWSC | set up times | 0 | - |
tRAH | row address hold time | 15 | - |
tCAH | column address hold time | 20 | - |
tAR | column address hold time to RAS | 70 | - |
tWCH | write command hold time | 20 | - |
tWCR | write command hold time to RAS | 65 | - |
tDH | data hold time | 20 | - |
tDHR | data hold time referenced to RAS | 65 | - |
Signal Description | Min (pf) | Max (pf) |
---|---|---|
80960CA data bus | 20 | 20 |
CFE address/data bus | 55 | 55 |
Memory address bus | 70 | 140 |
Memory data bus | 20 | 45 |
RAS signal | 40 | 80 |
CAS signal | 40 | 80 |
WE signal | 55 | 155 |
Symbol | Description | Min (ns) | Max (ns) | Notes |
---|---|---|---|---|
T1a | 80960CA address to Dmem row address | 8 | 27 | 1
|
T1a | CFE address to Dmem row address | 5 | 28 | 1
|
T1a | 80960CA address to Imem row address | 7 | 26 | 1
|
T1a | CFE address to Imem row address | - | - | 2
|
T1b | ^ to Dmem row address | 12 | 39 | 3
|
T1b | ^ to Imem row address | 11 | 42 | 3
|
T2 | Dmem data to 80960CA data | 11 | 28 | 4
|
T2 | Dmem data to CFE data | 12 | 27 | 4
|
T2 | Dmem data to CFE data parity | 12 | 32 | 4
|
T2 | Imem data to 80960CA data | 11 | 24 | 4
|
T2 | Imem data to CFE data | 11 | 27 | 4
|
T2 | Imem data to CFE data parity | 11 | 32 | 4
|
T3 | 80960CA data to Dmem data | 6 | 26 |
|
T3 | CFE bus data to Dmem data | 6 | 26 |
|
T3 | 80960CA data to Imem data | 5 | 25 |
|
T3 | CFE bus data to Imem data | 4 | 25 |
|
T4 | % to 1st Dmem column address | 9 | 31 |
|
T4 | % to 1st Imem column address | 9 | 34 |
|
T4 | % to 2nd (or subsequent) Dmem column address | 14 | 39 |
|
T4 | % to 2nd (or subsequent) Imem column address | 13 | 36 |
|
T5 | ^ to Dmem RAS low | 8 | 21 |
|
T5 | ^ to Dmem RAS high | 7 | 22 |
|
T5 | ^ to Imem RAS low | 8 | 20 |
|
T5 | ^ to Imem RAS high | 7 | 21 |
|
T6 | ^ to Dmem CAS low | 11 | 27 |
|
T6 | ^ to Dmem CAS high | 9 | 28 |
|
T6 | ^ to Imem CAS low | 10 | 27 |
|
T6 | ^ to Imem CAS high | 8 | 28 |
|
T7 | % to Dmem CAS low | 9 | 21 |
|
T7 | % to Dmem CAS high | 7 | 22 |
|
T7 | % to Imem CAS low | 9 | 21 |
|
T7 | % to Imem CAS high | 7 | 22 |
|
T8 | ^ to Dmem WE low | 13 | 34 |
|
T8 | ^ to Dmem WE high | 10 | 34 |
|
T8 | ^ to Imem WE low | 13 | 35 |
|
T8 | ^ to Imem WE high | 9 | 34 |
|
Notes:
|
pclk +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ | | | | | | | | | | | | | | | | + +----+ +----+ +----+ +----+ +----+ +----+ +----+ +---- | | | | | | | | | ads --+ | +------------------------------------------------------------------- | | | | | | | | | | | | +---------+ | | | | | | | | | | | | | | | | | ready -------------------------------------------+ | +---------+ +------ | | | | | | | | | | | | | | | | | | | | | +---------+ | | +---------+ | | | | | | | | | | blast ----------------------------------------------------+ | | +------- | | | | | | | | | | | | | | | | | | | | +-------------------+ | | | | | | | | | | cfe a/d bus +++++++----++++++++++++++++++++++++++++++++++------++++++++++++++------+++++++++ 80960 addr bus +++++++addr++++++++++++++++++++++++++++++++++ D1 ++++++++++++++ D2 +++++++++ 80960 data bus +++++++----++++++++++++++++++++++++++++++++++------++++++++++++++------+++++++++ | +T1a->| | | | | || | | +----T1b--->| +T4->| | +T4->| || | | | | | | | | | || | | +++++++++++++------++------------------++------------------+++++++++++++++++++++ dram_addr +++++++++++++ row ++ col addr 1 ++ col addr 2 +++++++++++++++++++++ +++++++++++++------++------------------++------------------+++++++++++++++++++++ | +T5->| | | | || | +T5->| | | | | | | || | | ---------------+ | | | || | | +-------------- ras | | | | | | || | | | | | +-------------------------------------------------+ | | | +-T6->| +T7>| |+T7>| +T7>|| | | | | || | | || | || --------------------------+ | +---------+ | +-------------------- cas | | | | || | | || | | || | | | | |+------------+ || +---------+| | | | | | |---T2---+| | | | | | | | | | | | ++++++++++++++++++++++++++++++++++++----++++++++++++++++----++++++++++++++++++++ dram_data ++++++++++++++++++++++++++++++++++++ D1 ++++++++++++++++ D2 ++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++----++++++++++++++++----++++++++++++++++++++Figure 17. Memory read timing
pclk +----+ +----+ +----+ +----+ +----+ +----+ +----+ +- | | | | | | | | | | | | | | | + +----+ +----+ +----+ +----+ +----+ +----+ +----+ | | | | | | | | | ads --+ | +----------------------------------------------------------- | | | | | | | | | | | | +---------+ | | | | | | | | | | | | | | | | ready ---------------------------------+ | | +---------+ | +-------- | | | | | | | | | | | | | | | | | | +---------+ | +---------+ | | | | | | | | | blast -------------------------------------------+ | | +-------- | | | | | | | | | | | | | | | | | | +-------------------+ | | | | | | | | | cfe a/d bus +++++++----+++++++-----------------------++------------------+++++++++++ 80960 addr bus +++++++addr+++++++ D1 ++ D2 +++++++++++ 80960 data bus +++++++----+++++++-----------------------++------------------+++++++++++ | +T1a->| | | | | | | | | | +----T1b--->| +T4->| | +T4->| | | | | | | | | | | | | | | | +++++++++++++------++------------------++------------------+++++++++++++ dram_addr +++++++++++++ row ++ col addr 1 ++ col addr 2 +++++++++++++ +++++++++++++------++------------------++------------------+++++++++++++ | +T5->| | | | | | | | +T5->| | | | | | | | | | | | | ---------------+ | | | | | | | | +------ ras | | | | | | | | | | | | | | +-------------------------------------------------+ | | | | | +-T6->| +-T6->| +-T6->| +-T6->| | | | | | | || | | | | | | | ------------------------------------+ | | +---------+ | +----- cas | | | | | | || | | | | | | | | | | | | | |+---------+ | +---------+ | | | | +-T8-->| | | | | | +-T8-->| | | | | | | | | | | | | | ---------------------------+ | | | | | | +---- we | | | | | | | | | | | | | | | | | | +---------------------------------------+ | | | +---T3-->| | | | +---T3-->| | | | | | | | | | || | +++++++++++++++++++++++++++---------------------++++----------------++++ dram_data +++++++++++++++++++++++++++ D1 ++++ D2 ++++ +++++++++++++++++++++++++++---------------------++++----------------++++