Académique Documents
Professionnel Documents
Culture Documents
Pavan Kumar Reddy Brindha AG Vaishnavi S Lekshmi Vishwanath Amritha Krishna R S Anju C Arun Rajan (621638) (621685) (621703) (621653) (621663) (621661) (621844)
OVERVIEW
INTRODUCTION OBJECTIVE MOTIVATION ARCHITECTURE OF DDR3 CONTROLLER MICRO ARCHITECTURE OF DDR3 CONTROLLER TASKS COMPLETED
2/28/2014
INTRODUCTION
DRAM (Dynamic random access memory) Random access : indicates that any position in the memory can be accessed by providing the row and column address
Dynamic : The memory is designed using transistor and capacitor. This involves periodic charging of the capacitors
2/28/2014
INTRODUCTION CONT
Specific features of DDR3 1) Faster than earlier generations as it provides data in both edges of the clock cycle 2) Better performance than previous generation DDR2 by writing /reading 8 consecutive locations. DDR2 can read/write 4 consecutive locations 3) Lower power due to smaller die-size and lower supply voltage
4) Larger densities. Reduces the number of pins by using row and column multiplexing
2/28/2014
OBJECTIVE
To design a DDR3 memory controller for interfacing AXI and DDR3 DRAM memory
2/28/2014
MOTIVATION
DDR3 memory controller acts as an interface between AXI and DDR3 DRAM memory Row, column and bank address decoding is done by this module
2/28/2014
RESET_N
DDR3_CS
REFRESH TIMER
DDR3_CK_N DDR3_CK
DDR3_CAS_N
COMMAND CONTROLLER
COMMAND PATH
ADDRESS DECODER
DDR3_DQ
WRITE PATH
DDR3_DQS
READ PATH
2/28/2014 DDR3 CONTROLLER DESIGN 7
2/28/2014
RAS_N CS
WE_N CAS_N
RST_N
WRITE
READ
CLK
RST_N
CK CK_N CLK RST_N DLL_RESET DLL_ENABLE BA[2:0] MRS ODT CKE ZQCL
mrs[18:16]
mrs[15:0]
INITIALISATION MODULE
MRS MODULE
BA_ADDR[2:0]
DEV_READY
CAS_N
CA[{11,9:0}] WE_N RA[15:0]
CLK
WRITE COMMAND_ACK
REFRESH ACTIVE
OPENED_ROW
RST_N
AXI
READ
FSM MODULE
PRECHARGE
MATCH
ADDR[31:0]
DQS
DATA_VALID
READ_DATA[31:0]
DQS_N DQ[7:0] 9
INITIALIZATION
Purpose For creating source synchronization (ie for creating the clock for memory) To inform the timing setup (in terms of latencies) to the memory Provides On Die Termination(ODT) information for fabrication Provides the calibration precision required for DDR-PHY
2/28/2014
10
INITILIZATION
IDLE WAIT 500s WAIT TXPR LOAD MODE COMMAND TO MR2 WAIT TMRD LOAD MODE COMMAND TO MR1 LOAD MODE COMMAND TO MR0
CONT
WAIT ZQCL
2/28/2014
11
INITILIZATION
Mode register select
CONT
2/28/2014
12
INITILIZATION
Device ready
CONT
2/28/2014
13
INITILIZATION
CONT
2/28/2014
14
INITILIZATION
CHALLENGES Specification mismatch ZQCL mismatch Timing violations tCK(avg ) parameter violation
CONT
SOLUTIONS
Changed the clock-period and parameters accordingly Added ZQCL command to command path The code was debugged and added timing delays The column latency and additive latency were changed accordingly
2/28/2014
15
ADDRESS DECODER
Purpose Addressing of 8GB memory Column address Row address Bank Address Maintains row status logic Organization 8 banks with 1GB each This addressed as 4GB address at a time A11 bit of column address is used to select top 4GB or bottom 4GB 16 bit row address 10 bit column address
512 512
2/28/2014
A11
16
2/28/2014
17
COMMAND PATH
Purpose Helps in decoding the command issued by the AXI and indicates it to the memory by the ras_n, cas_n, we_n and cs_n signals Based on the command, command path either passes MRS contents or the row /column address to the addr_out Achieves address multiplexing by passing row address during activate/precharge commands The column address is passed during read and write commands Based on the command, command path either passes register address or bank address through the ba_out
2/28/2014
18
addr out
ADDRESS DECODER
!MRS/OC
MRS
0
ba ADDRESS DECODER
nop active precharge read write refresh
2/28/2014
1 !MRS/OC
2/28/2014
20
2/28/2014
21
COMMAND CONTROLLER
Purpose
Acts as the heart of the module Responsible for taking care of all the latencies of the memory Issues refresh, activate, precharge, read and write commands to the command path after the wait latencies Takes care of issuing device ready signal and command acknowledgement signal to the AXI Acts as the major coordinator with AXI Communicates with the row-status logic to issue precharge and activate commands accordingly Manages read and write data path by issuing appropriate read and write commands
2/28/2014 DDR3 CONTROLLER DESIGN 22
2/28/2014
23
REFRESH
IDLE
(WRITE | READ)& (OPENED_ROW)& !MATCH
PRECHARGE
READ & MATCH & !OPENED_ROW
WAIT_tRP
PRECHARGE DONE
ACTIVATE
WRITE
WAIT_tRCD WAIT_tWR
2/28/2014
READ
WAIT_tCCD
24
2/28/2014
25
2/28/2014
26
2/28/2014
27
WRITE PATH
Purpose The write path should facilitate the writing of data in both posedge and negedge of the clock Should take care of burst length Receives the 32-bit input from the AXI and then divides it according to the burst length and writes into the memory Should provide data strobe signal which indicates to the memory that the data is being written into the memory The strobe should be active for period before and after the transaction of the data transfer
2/28/2014
28
0 1
8 FF
0
8 8
WRITE
0 1
8 FF 8
DQ
select
clk
0 1
DQS
2/28/2014
30
2/28/2014
31
READ PATH
Purpose
Used to read the data from the memory and provide it to the AXI Reads the data from the memory on receiving the strobe signal (DQS) Similar to the write operation, the read operations reads data in both posedge and negedge of the clock Receives the data from the memory according to the burst length Concatenates the data into a 32-bit output and provides to the AXI Provides a valid signal to the AXI which indicates that the valid data is being transferred
2/28/2014 DDR3 CONTROLLER DESIGN 32
32-bit Data
A X I
Control Logic
Read (from FSM) CLK RST_N
33
2/28/2014
34
SOLUTIONS
Incorporated additional signal Studied the DQS pattern as per the specification
2/28/2014
35
2/28/2014
36
TASKS COMPLETED
RTL coding of the blocks as per the micro-architecture All the blocks were integrated and testing was done by forcing the values
2/28/2014
37
?
2/28/2014 DDR3 CONTROLLER DESIGN 38
THANK YOU
2/28/2014
39