Top Banner
Development of CPLD based memory controller for MPC 603E PPC based single board computer Guided by- Mrs. K Sridevi , M.Tech, Associate Professor, GITAM Presented by- Priyanka Dhanorkar Roll No. 1221208108
38

Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Jul 29, 2015

Download

Documents

kumarbsnsp
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Development of CPLD based memory controller for MPC 603E PPC based

single board computer

Guided by-Mrs. K Sridevi , M.Tech,

Associate Professor, GITAM

Presented by-Priyanka Dhanorkar

Roll No. 1221208108

Page 2: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Need for high performance & low power CPLD

• Today one of the most critical factors in designing portable electronics is reducing overall system power consumption.

• Portable devices require longer battery life and higher performance.

• Even power reductions on the order of 10mW are important.

• One of the most important power saving techniques is the ability to manage the operating mode of devices in the system.

• Manufacturers offer devices with power saving modes that temporarily suspend the device from its normal operation & power down to a non-functioning state if the device is not active for a specific amount of time.

Page 3: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

How to reduce power consumption?

• By managing the operating mode of large power consumers on a PCB, such as the processor, the overall power consumption of the system can be reduced significantly.

• Reducing power consumption involves correct management of the operating mode of a device, and design a system that can operate device within.

• Off loading operations of the microprocessor allow it to stay in its low-power state for a longer amount of time thereby reducing system power consumption.

• One way to reduce system power is to allow a low-power programmable logic device, such as a CPLD, to manage these off loaded operations.

Page 4: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Microprocessor power consumption

• In some portable applications, the CPU can consume 30 percent of the overall system power.

• Fig. shows the typical power consumption of system components in a Web Pad application.

• Microprocessor power consumption can range from 720µW to 1W during normal operation.

• Microprocessor operating modes vary by part and includes modes such as normal, run, sleep, suspend, standby, stop, and idle operation.

Page 5: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Microprocessor Operating modes

• Operating modes of the processor include normal, idle, and sleep.

• In normal operation, the CPU is full-on, with the device fully powered and receiving active clocks.

• In idle mode all clocks to CPU are stopped, with only clocks to the peripheral devices active.

• In sleep mode, power to the CPU and other peripheral components is disabled. Sleep mode disables all functions except the real-time clock, interrupt controller, power manager and general purpose I/O.

Page 6: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Microprocessor Operating modes

• Operating modes are used when the microprocessor is idle for a specific amount of time.

• When a microprocessor receives an enabled interrupt, the processor will respond to the interrupt request and operate in its run or normal mode.

• Reducing the number of interrupts to the processor will increase the time the processor is in a power saving state.

• If the microprocessor does not have any instructions to execute, it will remain in a power saving mode forever.

• Inserting an external device to respond and handle system interrupts can reduce the operations required of the processor.

• By allowing the microprocessor to stay in its power down mode as long as possible, significant power savings can be realized.

Page 7: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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.

Page 8: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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.

Page 9: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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.

Page 10: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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.

Page 11: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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.

Page 12: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Microprocessor interrupt interface

• Peripheral device interfaces- The CPLD provides the interface to system devices that are needed in processing interrupt requests.

• When an external device interrupts the CPLD to read or write data into a memory component, that particular memory interface is needed in the CPLD design.

• The types of interfaces needed can range from memories to LCD interfaces & communication interfaces.

• The CPLD, like any external device requesting services of the processor, has the capability to interrupt the microprocessor.

• The CPLD must be able to interrupt the microprocessor once a data acquisition operation is complete.

Page 13: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Microprocessor operating mode interface

• Depending on the system microprocessor, the CPLD will be able to recognize the operation state of the processor.

• The CPLD can recognize the current operating state of the processor and determine whether to assert an interrupt to the processor to execute a waiting interrupt.

• For example, if a low priority interrupt is received by the CPLD and the processor does not need to transition from its low power state, the CPLD can create a register indicating pending interrupts.

• Then when the processor wakes, the interrupt pending register can be read by the microprocessor.

Page 14: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Power saving mode

• The power requirements of the CPLD are minimal compared to the power savings realized by keeping the microprocessor in its low power modes for a longer amount of time.

• The latest CPLD in the market today offer a flexible combination of low power and high speed for any end application.

Page 15: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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 units—an 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.

Page 16: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Signal Configuration

Page 17: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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[0–31]) : Indicates the real address of the bus

transaction • Address parity (AP[0–3]) : Gives odd parity for each address byte• Address parity error (APE) : Indicates detection of address bus parity

error

Page 18: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

MPC603e Signals

Address Transfer Attribute Signals• Transfer type (TT[0–4]) : Indicates the type of transfer in progress• Transfer burst (TBST) : Indicates that a burst transfer is in progress• Transfer size (TSIZ[0–2]) : 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.

Page 19: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Byte Lane Redirection

Page 20: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Memory System Design

• One of the complicated portion of a minimal system is the interface to the processor data bus.

• RISC processors do not typically perform data (re)alignment, so the data from each external device must be placed on the proper data lane.

• In an attempt to use an 8-bit memory device to supply instructions or data to a 64-bit data bus, 8-bidirectional latching transceivers must be used to move the byte to the correct byte lane on the 64-bit bus.

• Thus the processor expects from one to eight bytes on each transfer.

• The memory controller must generate from one to eight memory cycles to the 8-bit memory by generating the addresses, latching the resulting data, & presenting it to the processor with the TA signal.

Page 21: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Memory System Design

• For this minimal system, we will instead take the approach that all memory is 64-bits wide.

• By using 32-bit pipelined-burst SRAM for the main memory and 16-bit Flash EPROM for start-up code, only 6 components will be needed.

• The controlling logic will be simple and inexpensive, and SRAM will allow very fast memory access speeds.

• The use of SRAM for main memory has become more attractive as speed and size increases and price falls.

• The first step in designing the memory controller is to determine the types of controls that will be needed among the proposed memory devices Flash EPROMs, SRAM and general I/O.

Page 22: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Minimal System Memory Architecture

Page 23: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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.

Page 24: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Pipelined Burst SRAM Memory Connections

MPC 603E

TS *

ADSC * ADSP * SGW * SE2 *

ADV * CY7C1347G

SB(A-D) *

LBOG * SE 3 *

SE1 * SW *

ADSC * BAA *

Memory BWE(0-7) *

Controller SOE * SCS *

ADSC * ADSP * SGW *ADV * SE2 *

SB(A-D) * CY7C1347G

G * LBOSE1 * SE3 *

SW *

Page 25: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Memory Controller Signal Handling

• AACK : Asserted on final memory transfer • TA : Asserted per-beat on each memory transfer • TEA : Asserted on each unsupported memory transfer • BWE(0-7) : Asserted on writes on individual byte lane • SCS : Asserted on all SRAM accesses • SOE : Asserted on all SRAM read accesses • ADSC : Asserted on all burst SRAM accesses before the

first cycle • BAA : Asserted on all burst SRAM accesses during

cycles 2-4 • FCS : Asserted on all Flash accesses • FOE : Asserted on all Flash read accesses • XCS(0-1) : Asserted on all I/O accesses • XOE : Asserted on all I/O read accesses

Page 26: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Memory Controller Architecture

Page 27: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Start Detection Module

• Upon receiving a TS, the memory controller must examine the TT(0-4) signals to determine the type of cycle that will be performed. Of the 32 possible permutations, only those found below are of interest:

TT Encoding

Page 28: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Simulation result

Page 29: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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 in-progress, 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.

Page 30: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Simulation result

Page 31: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Byte Write Enable

• The next group of signals to generate are the byte lane write enables BWE(0-7).

• These signals are generated by using the transfer size signals TSIZ(0-2) along with the lower address bus signals A(29-31) to determine which byte lanes should be active.

Page 32: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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.

Page 33: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Simulation result

Page 34: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Chip Select Module

• The chip-select module, generates the four chip-select signals and selects the proper time delay for accesses to memory .

Page 35: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

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

Page 36: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Simulation result

Page 37: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Cycler State Machine

• The cycler() state machine module controls the remainder of any transaction claimed by the memory controller. For optimal performance, one of four flows are selected.

The flows are as follows:• SRAM single beat transfer• SRAM burst transfer• Programmed-length

transfer (I/O and Flash)• Error transactions

Page 38: Development of CPLD Based Memory Controller for MPC 603E PPC Based Single Board Computer

Memory Controller Module

• The final module is the memory controller itself, which simply interconnects the previous modules.

• The PowerPC processor has one standard interrupt signal (INT) that can be connected to an external interrupt source if needed.

• If extra interrupts are needed, the simplest manner is to merge all level-sensitive interrupts with a logic gate.

• A PowerPC design can be implemented with a small amount of hardware by following this example.

• The resulting system will exhibit fast memory access times.