Professional Documents
Culture Documents
Interfacing
Use of a low power programmable logic device to supplement the microprocessor will save system power and increase system battery life. The latest CPLD simultaneously deliver high performance and low power consumption. Fig. shows use of a reprogrammable CPLD to interface to incoming system interrupts. Using an external data acquisition device to off-load interrupt requests to the microprocessor will reduce overall system power.
System Interrupts
Variety of external devices may interrupt the processor which include both data acquisition and data processing requests. By separating data processing interrupts to the microprocessor, data acquisition interrupts can be serviced by the external CPLD. Using a CPLD to handle data acquisition interrupts will off-load interrupt requests to the microprocessor and save power. Peripheral devices or incoming data demanding a response to incoming data can be classified as data acquisition interrupt requests. Data acquisition interrupts include memory access interrupts; communication interfaces such as UART, general-purpose I/O interrupts, and LCD interface interrupts.
Operational flow
Once a valid external interrupt is recognized by the CPLD, it will determine if it contains the functionality to process the interrupt. Once the CPLD has processed the interrupt, it can assert an interrupt to the processor for any data processing requests needed. If the CPLD is unable to process the interrupt, the interrupt is passed to the processor. The CPLD also monitors the operating state of the processor.
Interrupt interface
Interrupt interface- The interrupt interface of the CPLD receives all external device interrupt requests previously recognized by the microprocessor. The interrupt interface determines if the CPLD is capable of processing the interrupt request. The CPLD handles data acquisition interrupts that request data receiving and storage capabilities. If the CPLD is unable to process the interrupt, the interrupt is passed to the microprocessor. Programmable logic provides flexibility to change the trigger mode, which includes a high or low level and falling or rising edge sensitivity. The CPLD interrupt control registers are similar to the registers in the microprocessor.
Interrupt controller
The CPLD interrupt controller emulates the functionality that exists in the system microprocessor. The interrupt controller interprets from which device the data acquisition interrupt was received and initiates the processing of the interrupt. The CPLD processes the data acquisition interrupt request that would have otherwise interrupted the microprocessor. The interrupt controller initiates the action to process the request. An example of this is an application where the CPLD is receiving data from a remote device. The device is requesting to write the data being sent into memory. The CPLD interrupt controller recognizes a valid interrupt and initiates the memory interface to interpret the data.
MPC603e Microprocessor
Low-power implementation of the family of reduced instruction set computing (RISC) microprocessors. It implements 32-bit portion of the PowerPC architecture. 32-bit effective addresses, integer data types of 8, 16, and 32 bits, and floating-point data types of 32 and 64 bits. Instructions can execute out of program order for increased performance. It is a superscalar processor that can issue and retire as many as three instructions per clock cycle. Integrates five execution unitsan integer unit (IU), a floating-point unit(FPU), a branch processing unit (BPU), a load/store unit (LSU), and a system register unit(SRU). The MPC603e is fabricated using an advanced CMOS process technology and is fully compatible with TTL devices.
Signal Configuration
MPC603e Signals
Address arbitration Signals Bus request (BR) :Requests mastership of the bus Bus grant (BG): Indicates bus ownership if properly qualified Address bus busy (ABB): Indicates whether the address bus is busy Address Transfer Start Signals: Transfer start (TS) : Indicates that the master has begun a transaction to memory Extended transfer start (XATS) : Indicates that the master has begun a transaction to a direct-store address Address Transfer Signals Address bus (A[031]) : Indicates the real address of the bus transaction Address parity (AP[03]) : Gives odd parity for each address byte Address parity error (APE) : Indicates detection of address bus parity error
MPC603e Signals
Address Transfer Attribute Signals Transfer type (TT[04]) : Indicates the type of transfer in progress Transfer burst (TBST) : Indicates that a burst transfer is in progress Transfer size (TSIZ[02]) : Indicates the size in bytes of transfer in progress Transfer code (TCn) : Gives information about the transaction for external cache operations Cache inhibit (CI) : Indicates whether a transfer can be cached Write-through (WT) : Indicates whether a transaction is write-through Global (GBL) : Indicates that a transaction is global and that data coherence is required
Address Transfer Termination Signals Address acknowledgment(AACK): Indicates that the address portion of a transaction is complete Address retry (ARTRY) : Asserted when the address tenure must be retried.
SRAM controls
A(n-0) : Memory address, used for burst transfers ADSC : Latches address for single-beat or burst transfers ADV : Increments address for burst transfers BWE (a-d) : Active-low byte-write enables; if not asserted, the cycle is a burst read. G : Active-low output enable; asserted for all read operations. SE1 : Active-low chip enable; asserted for all operations. The BWE signals corresponding to the size of the transfer must be asserted if the cycle is a write cycle; otherwise, G must be asserted to read in data. The remaining signal is ADV, which must be asserted for three clock cycles if a burst transfer is selected; otherwise, it remains high.
MPC 603E
ADV * SB(A-D) *
CY7C1347G
ADSC *
CY7C1347G
Memory Controller
TT Encoding
Simulation result
Start() module
When any transfer begins, the start() module must either assert the claim_l or doerr_l signal to cause the appropriate actions to conclude the transfer cycle. The start() module provides the global CLAIM_L signal, used by other modules to detect whether a cycle is inprogress, or the DOERR_L signal, used to terminate unclaimed cycles, and a write signal (WE_L) to determine that the cycle is a write cycle.
Simulation result
Bytedec
The bytedec() module examines the decoded write status (WE_L) but not CLAIM, so the byte lane enables are asserted for all write cycles regardless of the activity of the CLAIM signal. Burst transfers enable all byte lanes, while all other transfers enable only the byte lanes based upon the address and transfer size.
Simulation result
The chip-select module, generates the four chipselect signals and selects the proper time delay for accesses to memory .
Chip select
Following are the chip-select actions based upon the address. The timer values in Table below have a constant overhead of three subtracted from the expected timer values. This constant overhead is due to the start delay, the final TA assertion, and one clock needed to detect a zero count on the timer. So for best performance, the actual timer values are offset by (-3). Chip Select Encodings
Simulation result