Tải bản đầy đủ (.pdf) (5 trang)

Thiết kế DDR3 SDRAM controller trên nền tảng FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (855.15 KB, 5 trang )

ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 3(88).2015

69

THIẾT KẾ DDR3 SDRAM CONTROLLER TRÊN NỀN TẢNG FPGA
DESIGNING DDR3 SDRAM CONTROLLER BASED ON FPGA
Phạm Văn Phát
Trường Cao đẳng Công nghệ, Đại học Đà Nẵng;
Tóm tắt - DDR3 SDRAM là bộ nhớ bán dẫn được sử dụng phổ
biến nhất hiện nay. Để truy cập bộ nhớ, yêu cầu hệ thống cần có
khối điều khiển bộ nhớ (MC). MC thực hiện các chức năng điều
khiển ghi và đọc dữ liệu, làm tươi dữ liệu lưu trữ trên SDRAM với
nhiều chế độ hoạt động khác nhau. Trong các hệ thống phức tạp,
MC giữ vai trò như một trọng tài đảm bảo việc truy cập lên SDRAM
đạt hiệu quả cao nhất. Bài báo này trình bày các nghiên cứu, thiết
kế khối điều khiển bộ nhớ cho DDR3 SDRAM, bao gồm việc thiết
kế giản đồ máy trạng thái (FSM), mô phỏng các chức năng như
thiết lập trạng thái khởi động, thiết lập các chế độ hoạt động, hoạt
động làm tươi, ghi đọc dữ liệu trên SDRAM theo tiêu chuẩn JEDEC
và các đặc tả kỹ thuật của MICRON. Thiết kế cấu trúc, tổng hợp
và mô phỏng các hoạt động của MC được thực hiện trên phần
mềm ISE14.3 của Xilinx.

Abstract - DDR3 SDRAM is most commonly used today. To
access memory, the system should have the Memory Controller
block (MC). The main function of the MC is to control activities
write, read and refresh data on the RAM with many different
operating modes. In the multi-system, MC acts as an arbiter in
order to ensure access to the RAM with the highest efficiency. This
paper presents the research and designs MC for DDR3 SDRAM
including the design of functional blocks, Finite State Machine


(FSM), simulating the basic functions such as setting the starting
status, setting modes, refreshing, reading and writing data on the
Ram according to JEDEC standards and specification of MICRON.
Design of architecture, synthesis and simulation of the operations
of the MC is performed in ISE14.3 software by Xilinx.

Từ khóa - memory controller; DDR3; ghi/ đọc dữ liệu; giao tiếp bộ
nhớ; giản đồ máy trạng thái (FSM); ISE; FPGA.

Key words - memory controller; DDR3; read/ write data; memory
interface; finite-state machine (FSM); ISE; FPGA.

1. Đặt vấn đề
Hiện nay, với sự phát triển nhanh của công nghệ bán
dẫn, các thiết bị số ngày càng trở nên nhỏ gọn, tiện lợi hơn,
hoạt động với tốc độ nhanh hơn và tiêu tốn ít điện năng
hơn. Cùng với đó, bộ nhớ cũng được nghiên cứu phát triển
không ngừng, DDR3 SDRAM (DDR3: Double Data Rate
Type Three Synchronous Dynamic Random Access
Memory) là bộ nhớ bán dẫn được sử dụng phổ biến nhất
hiện nay.
So với thế hệ bộ nhớ DDR2 trước đó, DDR3 tiết kiệm
đến 30% điện năng tiêu thụ [1, 6]. Với tần số xung đồng
hồ (Clock) 100MHz, DDR3 cho tốc độ dữ liệu tối đa đến
6.400MB/s, ngoài ra các DDR3 tiêu chuẩn cho phép dung
lượng nhớ trên SDRAM lên đến 8Gb [1, 10]. Ưu điểm
chính của DDR3 là tiêu thụ ít điện năng, tốc độ nhanh hơn
và băng thông rộng hơn. Bộ nhớ DDR3 là giải pháp lựa
chọn hiệu quả cho các hệ thống máy tính, các thế hệ CPU
hiện tại của Intel vẫn hỗ trợ cho loại bộ nhớ này.

Để truy cập bộ nhớ, các hệ thống máy tính cần đến một
khối điều khiển bộ nhớ Memory Controller (MC). Chức
năng chính của MC là thiết lập trạng thái khởi động ban
đầu, các chế độ hoạt động khác nhau cho DDR3, điều khiển
các hoạt động làm tươi dữ liệu, các hoạt động ghi/đọc dữ
liệu. Trong các hệ thống xử lý phức tạp, MC giữ vai trò
như một trọng tài nhằm tránh xung đột quyền truy cập lên
DDR3 và tổ chức quá trình truy cập lên DDR3 đạt hiệu quả
cao nhất [1, 4].
Trên cơ sở các tiêu chuẩn được công bố của JEDEC
cho SDRAM, thiết kế cấu trúc và đặc tả kỹ thuật bộ nhớ
1Gb DDR3 của hãng Micron [6, 7], trong nghiên cứu này,
tác giả sử dụng phần mềm ISE14.3 của Xilinx để thiết kế
MC cho DDR3 với các thành phần gồm: khối khởi tạo
(initialization), khối giao tiếp người dùng (user interface)
và khối điều khiển các trạng thái hoạt động (activation).
Ngồi ra, bài báo cũng trình bày một số kết quả mô phỏng

hoạt động của MC.
2. Bộ nhớ DDR3
DDR3 là loại bộ nhớ động truy cập ngẫu nhiên tốc độ
cao có cấu trúc bên trong gồm 8 Bank DRAM. DDR3 sử
dụng kiến trúc tìm nạp 8n-bit, trong khi các dịng SDRAM
trước đó chỉ sử dụng cấu trúc 2n (DDR) và 4n (DDR2). Với
cấu trúc 8n-bit, trong cùng một tốc độ của xung Clock
DDR3, có tốc độ dữ liệu lớn gấp 2 lần DDR2 và gấp 4 lần
DDR [4, 9].

Hình 1. Kiến trúc n-bit của DDR SDRAM


DDR3 làm tươi (refresh) dữ liệu theo vùng, trong khi
DDR và DDR2 thực hiện chức năng này cho toàn bộ
DRAM theo một chu kỳ nhất định. Chức năng ODT (OnDie Terminal) ứng với điểm cuối trở kháng bộ nhớ DDR3
có điện trở nằm bên trong SDRAM, nên tín hiệu sạch và ổn
định hơn DDR, cho phép bộ nhớ DDR3 hoạt động ở tần số
cao. Để truy cập bộ nhớ, mạch điều khiển bộ nhớ cấp các
tín hiệu điều khiển, địa chỉ và dữ liệu cho SDRAM. Một số
thông số định thời quan trọng của DDR3 cần được xác định
là tCL - tRCD - tRP - tRAS. Bảng 1 là thông số định thời DDR3
của hãng Micron [6, 10].


Phạm Văn Phát

70

Bảng 1. Tham số định thời 1GB DD3 SDRAM
DDR3 type

Memory
clock

I/O Bus
clock

Cycle
time

Data Target
rate

tRCD(MT/s) tRP-CL

tRCDtRPCL(ns)

DDR3-2133 266 MHz 1066 MHz 938 ps 2133 14-14-14 13,09
DDR3-1866 233 MHz 933 MHz 1,07 ns 1866 13-13-13 13,91

Hình 2. Sơ đồ khối tổng quan thiết kế MC

DDR3-1600 200 MHz 800 MHz 1,25 ns 1600 11-11-11 13,75
DDR3-1333 166 MHz 667 MHz 1,50 ns 1333

9-9-9

13,50

DDR3-1066 133 MHz 533 MHz 1,87 ns 1066

7-7-7

13,10

clk

ip_en

3. Thiết kế khối điều khiển DDR3

wr_en
addr


3.1. Các cơng trình liên quan
Nghiên cứu thiết kế lõi IP SDR SDRAM Controller
(SDRC) của Trung tâm Nghiên cứu và Đào tạo Thiết kế Vi
mạch ĐHQG HCM (ICDREC) thiết kế lõi IP cho SDR
SDRAM, lõi IP nhận các lệnh từ Bus AMBA 2.0 và chuyển
đổi chúng thành chuỗi lệnh được yêu cầu bởi bộ nhớ SDR
SDRAM; Cung cấp các thông số định thời được cấu hình
trước (tCL, tRC, tRCD, tRP, tMRD, tRRD, tRFC, tRAS, tWR) và tương
thích Bus AMBA AHB, thực hiện các chức năng: khởi tạo
ban đầu hoàn chỉnh, tự động làm tươi và chế độ tiết kiệm
năng lượng (Self Refresh) [8].
K.SIREESHA, S.Ch.Kantha Rao thiết kế DDR3
SDRAM Controller để giao tiếp với Hash CAM (Content
Addressable Memory) tốc độ cao. Cấu trúc MC gồm các
khối khởi tạo, giao tiếp và khối điều khiển giao tiếp
SDRAM. MC hoạt động với cấu hình 64 bit dữ liệu, chức
năng tự động Refresh, Precharge, các hoạt động Read/
Write với BL8 và BC4 [1, 2, 5].
Lõi IP DDR3 SDRAM Controller do Lattice
Semiconductor thiết kế phát triển trên phần cứng FPGA
LatticeECP3, giao tiếp với DDR3 SDRAM theo chuẩn
JESD79-3, hỗ trợ các DDR3 cấu hình x4, x8 và x16, BL8
hoặc BC4, xung nhịp Clock 200MHz, cho phép lập trình
được các tham số định thời, tự động khởi tạo, làm tươi [4].
3.2. Thiết kế các khối chức năng
DDR3 Controller có chức năng điều khiển mọi hoạt động
truy cập SDRAM. MC sẽ tự động khởi động DDR3, phát
các lệnh cần thiết như Read, Write, Refresh, Seft Refresh,
Precharge… để đảm bảo DDR3 hoạt động với hiệu suất cao.

Sơ đồ thiết kế tổng qt MC ở Hình 2 có 3 khối chức năng
chính: User Interface, DDR3 SDRAM Initialization và
DDR3 SDRAM Activation. Sơ đồ thiết kế mức TOP trong
Hình 3 mơ tả chi tiết các chân tín hiệu I/O của MC.
Khối User Interface có chức năng giao tiếp với người
dùng. Khối này có chứa các thanh ghi FIFO lưu địa chỉ ghi
và FIFO lưu dữ liệu phục vụ cho quá trình đọc và ghi dữ
liệu vào DDR3. Trong khối này có hai thành phần mạch
chính là mạch điều khiển Read và Write. Hai mạch này tổ
hợp các tín hiệu từ giao tiếp User để tạo ra tín hiệu điều
khiển cho khối Activation. Mạch điều khiển đọc phát hiện
lệnh đọc từ giao tiếp User, chốt lại các giá trị địa chỉ và tạo
tín hiệu khởi động khối Activation đọc SDRAM. Mạch
điều khiển ghi phát hiện lệnh ghi từ giao tiếp User, lưu lại
các giá trị địa chỉ, dữ liệu ghi vào các FIFO và tạo tín hiệu
khởi động khối Activation ghi DRAM [4, 8].
Khối Initialization làm nhiệm vụ thực hiện quy trình

rst_n

[(DDR_BANK_WIDTH+DDR_ROW_WIDTH+
DDR_COLUMN_WIDTH)-1:0]

Data_write_in

From user

[DDR_DATA_WIDTH-1:0]

dqm

[DDR_DQM_WIDTH-1:0]

ip_rd_ready

DDR3-SDRAM
CONTROLLER

ip_wr_ready
data_read_out
[DDR_DATA_WIDTH-1:0]

ddr3_dir_data
ddr3_dir_udqs
ddr3_dir_ldqs
ddr3_dir_udqs_n
ddr3_dir_ldqs_n

ddr3_ba [2:0]
ddr3_a [12:0]
ddr3_ck
ddr3_ck_n
ddr3_ck_en
ddr3_cs_n
ddr3_ras_n
ddr3_cas_n
ddr3_we_n
ddr3_odt
ddr3_data_in [15:0]
ddr3_data_out [15:0]
ddr3_write_udps

ddr3_write_ldps
ddr3_write_udps_n
ddr3_write_ldps_n
ddr3_read_udps
ddr3_read_ldps
ddr3_read_udps_n
ddr3_read_ldps_n
ddr3_rst_n
ddr3_dm [1:0]

Interface_ddr3

Hình 3. Sơ đồ thiết kế ở mức TOP khối MC

khởi động DDR3 SDRAM, đồng thời giám sát chu kỳ
Refresh để báo cho khối Activation phát lệnh Refresh theo
định kỳ. Trong quá trình khởi tạo, MC thiết lập 4 chế độ hoạt
động MR0, MR1, MR2, MR3 cho DDR3. Tạo các tín hiệu
chọn Chip(init_cs_n), tích cực xung Clock (init_ ck_en) như
ở Hình 4, địa chỉ khởi động (init_ addr, init_bank) và các
lệnh khởi động (init_command). Ngoài ra, khối này cịn tạo
tín hiệu báo cho khối Activation biết q trình khởi động
đã hồn thành(init_complete) và tín hiệu báo làm tươi
(init_refresh) DDR3.
Khối Activation làm nhiệm vụ giao tiếp trực tiếp với
DDR3 để thiết lập các chế độ hoạt động, điều khiển việc
truy xuất, làm tươi. Các tín hiệu điều khiển từ chính khối
Activation tạo ra khi q trình khởi động đã hồn tất và q
trình đọc/ ghi DDR3 diễn ra. Đồng thời khối này cũng tạo
ra các tín hiệu báo hiệu q trình Read/Write hồn thành,

đọc FIFO ghi dữ liệu và bus dữ liệu đọc từ SDRAM, trả về
cho giao tiếp người sử dụng, xóa bộ đếm giám sát Auto
Refresh sau mỗi lần làm tươi DDR3.
3.3. Thiết kế máy trạng thái FSM
Sơ đồ mô tả máy trạng thái khối điều khiển DDR3 được
thiết kế như ở Hình 6. Kết thúc quá trình khởi tạo, MC ở
trạng thái rỗi IDLE. Ở trạng thái này, MC định kỳ tự động
thực hiện hoạt động Refresh DDR3. Có 2 chế độ làm tươi
là Refresh và Self Refresh, sau lệnh làm tươi DDR3, MC
về lại trạng thái IDLE và sẵn sàng nhận lệnh điều khiển từ
người dùng thơng qua các tín hiệu giao tiếp người dùng.
Khi có các tác động Read/ Write từ giao tiếp người
dùng, khối Activation phát lệnh truy cập DDR3. Trước khi
kết thúc quá trình Read/Write, MC thực hiện lệnh
Precharge để ngưng kích hoạt Bank hiện hành hoặt tất cả
các Bank của SDRAM và trở về trạng thái rỗi IDLE trước
khi thực hiện một truy cập mới nhằm đảm bảo dữ liệu
khơng bị mất và được thực thi một cách chính xác.


ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 3(88).2015

71

current_state
=?

SET_MR2

rst_n


current_state

WAIT_FOR_I
NIT

=?

SET_MR3

init_complete
t_exit_sel_refresh = tDLL

t_refresh = 200ns

current_state
=?

SET_MR1

WAIT_FOR_S
ELF_
REFRESH

current_state

SELF_
REFRESH

act_ck_en = 0


init_refresh

IDLE

WAIT_FOR_R
EFRESH

REFRESH

=?

SET_MR0

rd_wr_en = user_rd |
user_wr

current_state
=?

SET_ZQCL

FSM CONTROLL READ/WRITE

ACTIVE

current_state
SET_NOP_ODT

=?


DDR3_NOP

100
init_command
[2:0]

001

wr_en =
t_active_complete &
user_wr

WAIT_FOR_A
CTIVE

rd_en =
t_active_complete
& user_rd

010

Hình 4. Sơ đồ tổ hợp tín hiệu init_cs_n và
init_command khối Initialization

WRITE

READ

WAIT_FOR_

WRITE

WAIT_FOR_R
EAD

Address
current_state

current_state
=?

user_wr
=?
col_waddr

1

col_raddr

0

Them
A10=0 de
khong auto
precharge

precharge

READ


sel_addr

0

PRECHARGE

t_rd_complete
AL+ CL +3CK

init_complete
act_addr

0

Automatic
sequence

act_addr
13'1_1111_1111_1111

row_raddr

t_wr_complete
AL+ CWL + 3CK + tWR

WRITE
act_addr_wait

1


=?

1

user_wr

row_waddr

sel_addr

current_state

1
ddr3_a

1

Command
sequence

WAIT_FOR_
PRECHARGE
t_precharge

0

init_addr

0


Hình 5. Sơ đồ tổ hợp địa chỉ khối Activation

4. Kết quả mô phỏng và thảo luận
4.1. Thiết kế Top Module

Hình 6. Sơ đồ máy trạng thái (FSM)

environment.v kết nối MC với DDR3. File testbench
tb_ environment.v làm nhiệm vụ gọi file environment.v và
lái các tín hiệu điều khiển. Mức chiếm dụng tài nguyên
phần cứng của khối MC như ở Bảng 2.
Bảng 2. Mức chiếm dụng tài nguyên khối MC
Số lượng phần tử logic sử
dụng

Đã
dùng

Có sẵn

Tỉ lệ chiếm
dụng

Số lượng các thanh ghi

164

54576

0%


Số lượng các bảng tra (LUT)

320

27288

1%

Số lượng các cặp LUT-FlipFlop

151

333

45%

Số lượng các khối vào/ ra

114

296

38%

1

16

6%


Số lượng các bộ đệm tín hiệu

Hình 7. Sơ đồ RTL DDR3 MC

Thiết kế MC được thực hiện trên phần mềm ISE14.3
của Xilinx, với cấu hình sử dụng loại DDR3 1GB chạy trên
nền tảng Chip xa6slx45t-3fgg484 Spartan6 FPGA của
Xilinx. Sau khi thiết kế các Module thành phần, Module
ddr3_sdram_top.v liên kết các Module thành phần,

4.2. Set Mode
Kết quả mơ phỏng hoạt động Set mode ở Hình 8, có 4
mode hoạt động tương ứng được thiết lập cho DDR3 gồm
MR0, MR1, MR2 và MR3. Dựa trên đặc tả Set Mode của
Micron, sau khi tín hiệu ck_e tích cực mức thấp và duy trì
trong thời gian 500s, MC chuyển sang trạng thái Set
mode, tuần tự các Mode được thiết lập MR2, MR3, MR1 và
MR0. Sau khi thực hiện xong hoạt động Set mode, qúa trình
khởi tạo kết thúc bằng báo hiệu Init_complete và MC ở


Phạm Văn Phát

72

Set mode
mr2, mr3, mr1,
mr0
Hình 8. Kết quả mơ phỏng hoạt động Set Mode


Write Data vào DDR3
(bank2, row 3, column
1-8)
Hình 9. Kết quả mơ phỏng hoạt động ghi dữ liệu vào DDR3

trạng thái rỗi IDLE.
4.3. Write Data
Hình 9 là kết quả mô phỏng hoạt động ghi 8 khối dữ liệu
từ Database vào địa chỉ Bank 2, row 3 của DDR3. Quá trình
ghi dữ liệu được thực hiện 2 bước, đầu tiên là mạch điều
khiển ghi phát hiện lệnh Write từ giao tiếp User, lưu lại các
giá trị địa chỉ, dữ liệu ghi từ Database vào các FIFO. Bước
kế tiếp là tạo tín hiệu khởi động khối Activation phát địa chỉ,
dữ liệu lên bus và cho phép ghi wr_en ghi dữ liệu vào DDR3.
4.4. Read Data

Hình 10. Kết quả mơ phỏng hoạt động đọc dữ liệu từ DDR3

Tương tự hoạt động ghi, Hình 10 là kết quả mơ phỏng
hoạt động đọc dữ liệu từ DDR3. Đầu tiên là mạch điều khiển
đọc phát hiện lệnh Read từ giao tiếp User, lưu lại giá trị địa
chỉ vào các FIFO. Bước kế tiếp là tạo tín hiệu khởi động khối
Activation phát địa chỉ lên bus và cho phép đọc rd_en đọc
dữ liệu từ DDR3 ra bus act_data_out. Kết thúc quá trình đọc
dữ liệu bằng báo hiệu act_rd_complete từ khối Activation
5. Kết luận
Trong nghiên cứu này, tác giả đã thiết kế Memory
Controller cho DDR3 SDRAM, sử dụng phần mềm ISE
của Xilinx. Nghiên cứu đã thực hiện thiết kế logic cho các

khối chức năng, tổng hợp và thực hiện các mô phỏng để
đánh giá hoạt động của MC. Các hoạt động được mô phỏng
gồm Refresh, Precharge, Set mode, Read và Write. Kết quả
mô phỏng cho thấy hoạt động của MC đúng với tiến trình
thiết kế trạng thái máy FSM. MC thực hiện các bước khởi
tạo hoàn chỉnh đúng tiêu chuẩn khuyến nghị của JEDEC.
Trong giai đoạn khởi tạo, MC thực hiện Set mode cho
DDR3 với 4 mode MR0, MR1, MR2, MR3 được thiết lập.
Hoạt động Read/Write dữ liệu lên DDR3 SDRAM cũng
được mô phỏng và cho kết quả chính xác. MC cho DDR3
SDRAM hoạt động ở tốc độ 314MHz so với tần số hoạt
động 200MHz trong [3, 4] và SDR trong [8]. Tuy nhiên,


ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 3(88).2015

nghiên cứu đạt được ở mức thiết kế logic, tổng hợp và mô
phỏng để đánh giá Timing. Hướng phát triển tiếp theo của
nghiên cứu này là thiết kế Module ghép nối MC lên Bus và
nhúng hệ thống xuống KIT.
TÀI LIỆU THAM KHẢO
[1] K.Sireesha, S.Upender, “Design of High Speed DDR3 SDRAM
Controller”, International Journal of Engineering Research and
Applications, ISSN: 2248-9622, Vol. 1, Issue 3, pp.969-973.
[2] Ajay, Adesh Kumar, Dhirendra Singh Gangwar, “Design and
Simulation of DDR3 SDRAM controller for High Performance in
VHDL”, International Journal of VLSI and Embedded SystemsIJVES, ISSN: 2249 – 6556, Vol 04, Article 06124; July 2013,
pp.548-556.
[3] S.Ch.Kantha Rao, “Design Of DDR3 SDRAM Controller For


[4]
[5]

[6]
[7]
[8]
[9]
[10]

73

Achieving High Speed Read Operation”, International Journal for
Research in Science & Advanced Technologies, ISSN 2319-2690;
Issue-2, Volume-1; Feb 2013, pp.013-016.
Semiconductor, Double Data Rate (DDR3) SDRAM Controller IP
Core User’s Guide, Lattice, March 2012.
X. Yang, et al, “High Performance IP Lookup Circuit Using DDR
SDRAM”, IEEE International SOC Conference (SOCC), Sept.
2008, pp. 371-374.
Micron Technology Inc, 1Gb: x4, x8, x16 DDR3 SDRAM Features,
Micron, 2008.
JEDEC, Double Data Rate (DDR) SDRAM Specification, Jedec
solid state technology association, March 2009.


http:// www.micron.com

(BBT nhận bài: 12/12/2014, phản biện xong: 12/01/2015)




×