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[.]
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; phatcdcn@gmail.com Tóm tắt - DDR3 SDRAM nhớ bán dẫn sử dụng phổ biến Để truy cập nhớ, yêu cầu hệ thống cần có khối điều khiển nhớ (MC) MC thực chức điều khiển ghi đọc liệu, làm tươi liệu lưu trữ SDRAM với nhiều chế độ hoạt động khác Trong hệ thống phức tạp, MC giữ vai trò trọng tài đảm bảo việc truy cập lên SDRAM đạt hiệu cao Bài báo trình bày nghiên cứu, thiết kế khối điều khiển nhớ cho DDR3 SDRAM, bao gồm việc thiết kế giản đồ máy trạng thái (FSM), mô chức thiết lập trạng thái khởi động, thiết lập chế độ hoạt động, hoạt động làm tươi, ghi đọc liệu SDRAM theo tiêu chuẩn JEDEC đặc tả kỹ thuật MICRON Thiết kế cấu trúc, tổng hợp mô hoạt động MC thực phần mềm ISE14.3 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 liệu; giao tiếp 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 Đặt vấn đề Hiện nay, với phát triển nhanh công nghệ bán dẫn, thiết bị số ngày trở nên nhỏ gọn, tiện lợi hơn, hoạt động với tốc độ nhanh tiêu tốn điện Cùng với đó, nhớ 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) nhớ bán dẫn sử dụng phổ biến So với hệ nhớ DDR2 trước đó, DDR3 tiết kiệm đến 30% điện tiêu thụ [1, 6] Với tần số xung đồng hồ (Clock) 100MHz, DDR3 cho tốc độ liệu tối đa đến 6.400MB/s, DDR3 tiêu chuẩn cho phép dung lượng nhớ SDRAM lên đến 8Gb [1, 10] Ưu điểm DDR3 tiêu thụ điện năng, tốc độ nhanh băng thông rộng Bộ nhớ DDR3 giải pháp lựa chọn hiệu cho hệ thống máy tính, hệ CPU Intel hỗ trợ cho loại nhớ Để truy cập nhớ, hệ thống máy tính cần đến khối điều khiển nhớ Memory Controller (MC) Chức MC thiết lập trạng thái khởi động ban đầu, chế độ hoạt động khác cho DDR3, điều khiển hoạt động làm tươi liệu, hoạt động ghi/đọc liệu Trong hệ thống xử lý phức tạp, MC giữ vai trò trọng tài nhằm tránh xung đột quyền truy cập lên DDR3 tổ chức trình truy cập lên DDR3 đạt hiệu cao [1, 4] Trên sở tiêu chuẩn công bố JEDEC cho SDRAM, thiết kế cấu trúc đặc tả kỹ thuật nhớ 1Gb DDR3 hãng Micron [6, 7], nghiên cứu này, tác giả sử dụng phần mềm ISE14.3 Xilinx để thiết kế MC cho DDR3 với thành phần gồm: khối khởi tạo (initialization), khối giao tiếp người dùng (user interface) khối điều khiển trạng thái hoạt động (activation) Ngoài ra, báo trình bày số kết mơ hoạt động MC Bộ nhớ DDR3 DDR3 loại nhớ động truy cập ngẫu nhiên tốc độ cao có cấu trúc bên gồm Bank DRAM DDR3 sử dụng kiến trúc tìm nạp 8n-bit, dịng SDRAM trước sử dụng cấu trúc 2n (DDR) 4n (DDR2) Với cấu trúc 8n-bit, tốc độ xung Clock DDR3, có tốc độ liệu lớn gấp lần DDR2 gấp lần DDR [4, 9] Hình Kiến trúc n-bit DDR SDRAM DDR3 làm tươi (refresh) liệu theo vùng, DDR DDR2 thực chức cho toàn DRAM theo chu kỳ định Chức ODT (OnDie Terminal) ứng với điểm cuối trở kháng nhớ DDR3 có điện trở nằm bên SDRAM, nên tín hiệu ổn định DDR, cho phép nhớ DDR3 hoạt động tần số cao Để truy cập nhớ, mạch điều khiển nhớ cấp tín hiệu điều khiển, địa liệu cho SDRAM Một số thông số định thời quan trọng DDR3 cần xác định tCL - tRCD - tRP - tRAS Bảng thông số định thời DDR3 hãng Micron [6, 10] Phạm Văn Phát 70 Bảng 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 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 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) Trung tâm Nghiên cứu Đà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 lệnh từ Bus AMBA 2.0 chuyển đổi chúng thành chuỗi lệnh yêu cầu nhớ SDR SDRAM; Cung cấp thơng số định thời cấu hình trước (tCL, tRC, tRCD, tRP, tMRD, tRRD, tRFC, tRAS, tWR) tương thích Bus AMBA AHB, thực chức năng: khởi tạo ban đầu hoàn chỉnh, tự động làm tươi chế độ tiết kiệm 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 khối khởi tạo, giao tiếp khối điều khiển giao tiếp SDRAM MC hoạt động với cấu hình 64 bit liệu, chức tự động Refresh, Precharge, hoạt động Read/ Write với BL8 BC4 [1, 2, 5] Lõi IP DDR3 SDRAM Controller Lattice Semiconductor thiết kế phát triển phần cứng FPGA LatticeECP3, giao tiếp với DDR3 SDRAM theo chuẩn JESD79-3, hỗ trợ DDR3 cấu hình x4, x8 x16, BL8 BC4, xung nhịp Clock 200MHz, cho phép lập trình tham số định thời, tự động khởi tạo, làm tươi [4] 3.2 Thiết kế khối chức DDR3 Controller có chức điều khiển hoạt động truy cập SDRAM MC tự động khởi động DDR3, phát lệnh cần thiết 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 quát MC Hình có khối chức chính: User Interface, DDR3 SDRAM Initialization DDR3 SDRAM Activation Sơ đồ thiết kế mức TOP Hình mơ tả chi tiết chân tín hiệu I/O MC Khối User Interface có chức giao tiếp với người dùng Khối có chứa ghi FIFO lưu địa ghi FIFO lưu liệu phục vụ cho trình đọc ghi liệu vào DDR3 Trong khối có hai thành phần mạch mạch điều khiển Read Write Hai mạch tổ hợp tín hiệu từ giao tiếp User để tạo tín hiệu điều khiển cho khối Activation Mạch điều khiển đọc phát lệnh đọc từ giao tiếp User, chốt lại giá trị địa tạo tín hiệu khởi động khối Activation đọc SDRAM Mạch điều khiển ghi phát lệnh ghi từ giao tiếp User, lưu lại giá trị địa chỉ, liệu ghi vào FIFO 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 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 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 trình khởi tạo, MC thiết lập chế độ hoạt động MR0, MR1, MR2, MR3 cho DDR3 Tạo tín hiệu chọn Chip(init_cs_n), tích cực xung Clock (init_ ck_en) Hình 4, địa khởi động (init_ addr, init_bank) lệnh khởi động (init_command) Ngồi ra, khối 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) 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 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ừ khối Activation tạo q trình khởi động hồn tất q trình đọc/ ghi DDR3 diễn Đồng thời khối tạo tín hiệu báo hiệu q trình Read/Write hồn thành, đọc FIFO ghi liệu bus liệu đọc từ SDRAM, trả cho giao tiếp người sử dụng, xóa đếm giám sát Auto Refresh sau 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 thiết kế Hình Kết thúc 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 hoạt động Refresh DDR3 Có chế độ làm tươi Refresh Self Refresh, sau lệnh làm tươi DDR3, MC lại trạng thái IDLE sẵn sàng nhận lệnh điều khiển từ người dùng thơng qua tín hiệu giao tiếp người dùng Khi 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 kết thúc trình Read/Write, MC thực lệnh Precharge để ngưng kích hoạt Bank hành hoặt tất Bank SDRAM trở trạng thái rỗi IDLE trước thực truy cập nhằm đảm bảo liệu không bị thực thi cách 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 = 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 Sơ đồ tổ hợp tín hiệu init_cs_n init_command khối Initialization WRITE READ WAIT_FOR_ WRITE WAIT_FOR_R EAD Address current_state current_state =? user_wr =? col_waddr col_raddr Them A10=0 de khong auto precharge precharge READ sel_addr PRECHARGE t_rd_complete AL+ CL +3CK init_complete act_addr Automatic sequence act_addr 13'1_1111_1111_1111 row_raddr t_wr_complete AL+ CWL + 3CK + tWR WRITE act_addr_wait =? user_wr row_waddr sel_addr current_state ddr3_a Command sequence WAIT_FOR_ PRECHARGE t_precharge init_addr Hình Sơ đồ tổ hợp địa khối Activation Kết mô thảo luận 4.1 Thiết kế Top Module Hình 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 lái tín hiệu điều khiển Mức chiếm dụng tài nguyên phần cứng khối MC Bảng Bảng 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 ghi 164 54576 0% Số lượng bảng tra (LUT) 320 27288 1% Số lượng cặp LUT-FlipFlop 151 333 45% Số lượng khối vào/ 114 296 38% 16 6% Số lượng đệm tín hiệu Hình Sơ đồ RTL DDR3 MC Thiết kế MC thực phần mềm ISE14.3 Xilinx, với cấu hình sử dụng loại DDR3 1GB chạy tảng Chip xa6slx45t-3fgg484 Spartan6 FPGA Xilinx Sau thiết kế Module thành phần, Module ddr3_sdram_top.v liên kết Module thành phần, 4.2 Set Mode Kết mô hoạt động Set mode Hình 8, có mode hoạt động tương ứng thiết lập cho DDR3 gồm MR0, MR1, MR2 MR3 Dựa đặc tả Set Mode Micron, sau tín hiệu ck_e tích cực mức thấp trì thời gian 500s, MC chuyển sang trạng thái Set mode, Mode thiết lập MR2, MR3, MR1 MR0 Sau thực xong hoạt động Set mode, qúa trình khởi tạo kết thúc báo hiệu Init_complete MC Phạm Văn Phát 72 Set mode mr2, mr3, mr1, mr0 Hình Kết mơ hoạt động Set Mode Write Data vào DDR3 (bank2, row 3, column 1-8) Hình Kết mô hoạt động ghi liệu vào DDR3 trạng thái rỗi IDLE 4.3 Write Data Hình kết mô hoạt động ghi khối liệu từ Database vào địa Bank 2, row DDR3 Quá trình ghi liệu thực bước, mạch điều khiển ghi phát lệnh Write từ giao tiếp User, lưu lại giá trị địa chỉ, liệu ghi từ Database vào FIFO Bước tạo tín hiệu khởi động khối Activation phát địa chỉ, liệu lên bus cho phép ghi wr_en ghi liệu vào DDR3 4.4 Read Data Hình 10 Kết mơ hoạt động đọc liệu từ DDR3 Tương tự hoạt động ghi, Hình 10 kết mơ hoạt động đọc liệu từ DDR3 Đầu tiên mạch điều khiển đọc phát lệnh Read từ giao tiếp User, lưu lại giá trị địa vào FIFO Bước tạo tín hiệu khởi động khối Activation phát địa lên bus cho phép đọc rd_en đọc liệu từ DDR3 bus act_data_out Kết thúc trình đọc liệu báo hiệu act_rd_complete từ khối Activation 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 Xilinx Nghiên cứu thực thiết kế logic cho khối chức năng, tổng hợp thực mô để đánh giá hoạt động MC Các hoạt động mô gồm Refresh, Precharge, Set mode, Read Write Kết mô cho thấy hoạt động MC với tiến trình thiết kế trạng thái máy FSM MC thực bước khởi tạo hoàn chỉnh tiêu chuẩn khuyến nghị JEDEC Trong giai đoạn khởi tạo, MC thực Set mode cho DDR3 với mode MR0, MR1, MR2, MR3 thiết lập Hoạt động Read/Write liệu lên DDR3 SDRAM mô cho kết xác MC cho DDR3 SDRAM hoạt động tốc độ 314MHz so với tần số hoạt động 200MHz [3, 4] SDR [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 mức thiết kế logic, tổng hợp mô để đánh giá Timing Hướng phát triển nghiên cứu thiết kế Module ghép nối MC lên Bus 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://icdrec.edu.vn http://www.jedec.org http:// www.micron.com (BBT nhận bài: 12/12/2014, phản biện xong: 12/01/2015) ... 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... 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... 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) Trung tâm Nghiên cứu Đào tạo Thiết kế Vi mạch ĐHQG HCM (ICDREC) thiết kế lõi IP cho SDR SDRAM,