intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:5

24
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết Thiết kế DDR3 SDRAM controller trên nền tảng FPGA 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.

Chủ đề:
Lưu

Nội dung Text: Thiết kế DDR3 SDRAM controller trên nền tảng FPGA

  1. 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 là bộ nhớ bán dẫn được sử dụng phổ Abstract - DDR3 SDRAM is most commonly used today. To biến nhất hiện nay. Để truy cập bộ nhớ, yêu cầu hệ thống cần có access memory, the system should have the Memory Controller khối điều khiển bộ nhớ (MC). MC thực hiện các chức năng điều block (MC). The main function of the MC is to control activities khiển ghi và đọc dữ liệu, làm tươi dữ liệu lưu trữ trên SDRAM với write, read and refresh data on the RAM with many different nhiều chế độ hoạt động khác nhau. Trong các hệ thống phức tạp, operating modes. In the multi-system, MC acts as an arbiter in MC giữ vai trò như một trọng tài đảm bảo việc truy cập lên SDRAM order to ensure access to the RAM with the highest efficiency. This đạ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 paper presents the research and designs MC for DDR3 SDRAM kế khối điều khiển bộ nhớ cho DDR3 SDRAM, bao gồm việc thiết including the design of functional blocks, Finite State Machine kế giản đồ máy trạng thái (FSM), mô phỏng các chức năng như (FSM), simulating the basic functions such as setting the starting thiết lập trạng thái khởi động, thiết lập các chế độ hoạt động, hoạt status, setting modes, refreshing, reading and writing data on the động làm tươi, ghi đọc dữ liệu trên SDRAM theo tiêu chuẩn JEDEC Ram according to JEDEC standards and specification of MICRON. và các đặc tả kỹ thuật của MICRON. Thiết kế cấu trúc, tổng hợp Design of architecture, synthesis and simulation of the operations và mô phỏng các hoạt động của MC được thực hiện trên phần of the MC is performed in ISE14.3 software by Xilinx. mềm ISE14.3 của Xilinx. Từ khóa - memory controller; DDR3; ghi/ đọc dữ liệu; giao tiếp bộ Key words - memory controller; DDR3; read/ write data; memory nhớ; giản đồ máy trạng thái (FSM); ISE; FPGA. interface; finite-state machine (FSM); ISE; FPGA. 1. Đặt vấn đề hoạt động của MC. Hiện nay, với sự phát triển nhanh của công nghệ bán 2. Bộ nhớ DDR3 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 DDR3 là loại bộ nhớ động truy cập ngẫu nhiên tốc độ hơn. Cùng với đó, bộ nhớ cũng được nghiên cứu phát triển cao có cấu trúc bên trong gồm 8 Bank DRAM. DDR3 sử không ngừng, DDR3 SDRAM (DDR3: Double Data Rate dụng kiến trúc tìm nạp 8n-bit, trong khi các dòng SDRAM Type Three Synchronous Dynamic Random Access trước đó chỉ sử dụng cấu trúc 2n (DDR) và 4n (DDR2). Với Memory) là bộ nhớ bán dẫn được sử dụng phổ biến nhất cấu trúc 8n-bit, trong cùng một tốc độ của xung Clock hiện nay. DDR3, có tốc độ dữ liệu lớn gấp 2 lần DDR2 và gấp 4 lần DDR [4, 9]. 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ữ Hình 1. Kiến trúc n-bit của DDR SDRAM 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 làm tươi (refresh) dữ liệu theo vùng, trong khi DDR3 và tổ chức quá trình truy cập lên DDR3 đạt hiệu quả DDR và DDR2 thực hiện chức năng này cho toàn bộ cao nhất [1, 4]. DRAM theo một chu kỳ nhất định. Chức năng ODT (On- Trên cơ sở các tiêu chuẩn được công bố của JEDEC Die Terminal) ứng với điểm cuối trở kháng bộ nhớ DDR3 cho SDRAM, thiết kế cấu trúc và đặc tả kỹ thuật bộ nhớ có điện trở nằm bên trong SDRAM, nên tín hiệu sạch và ổn 1Gb DDR3 của hãng Micron [6, 7], trong nghiên cứu này, định hơn DDR, cho phép bộ nhớ DDR3 hoạt động ở tần số tác giả sử dụng phần mềm ISE14.3 của Xilinx để thiết kế cao. Để truy cập bộ nhớ, mạch điều khiển bộ nhớ cấp các MC cho DDR3 với các thành phần gồm: khối khởi tạo tín hiệu điều khiển, địa chỉ và dữ liệu cho SDRAM. Một số (initialization), khối giao tiếp người dùng (user interface) thông số định thời quan trọng của DDR3 cần được xác định và khối điều khiển các trạng thái hoạt động (activation). là tCL - tRCD - tRP - tRAS. Bảng 1 là thông số định thời DDR3 Ngoài ra, bài báo cũng trình bày một số kết quả mô phỏng của hãng Micron [6, 10].
  2. 70 Phạm Văn Phát Bảng 1. Tham số định thời 1GB DD3 SDRAM Data Target tRCD- Memory I/O Bus Cycle DDR3 type rate tRCD- tRP- clock clock time (MT/s) tRP-CL CL(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 DDR3-1600 200 MHz 800 MHz 1,25 ns 1600 11-11-11 13,75 Hình 2. Sơ đồ khối tổng quan thiết kế MC clk rst_n 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 ip_en ddr3_ba [2:0] 3. Thiết kế khối điều khiển DDR3 wr_en ddr3_a [12:0] addr ddr3_ck 3.1. Các công trình liên quan [(DDR_BANK_WIDTH+DDR_ROW_WIDTH+ DDR_COLUMN_WIDTH)-1:0] ddr3_ck_n ddr3_ck_en Data_write_in ddr3_cs_n Nghiên cứu thiết kế lõi IP SDR SDRAM Controller From user [DDR_DATA_WIDTH-1:0] ddr3_ras_n (SDRC) của Trung tâm Nghiên cứu và Đào tạo Thiết kế Vi dqm ddr3_cas_n ddr3_we_n mạch ĐHQG HCM (ICDREC) thiết kế lõi IP cho SDR [DDR_DQM_WIDTH-1:0] DDR3-SDRAM ddr3_odt Interface_ddr3 ddr3_data_in [15:0] SDRAM, lõi IP nhận các lệnh từ Bus AMBA 2.0 và chuyển ip_rd_ready CONTROLLER ddr3_data_out [15:0] đổi chúng thành chuỗi lệnh được yêu cầu bởi bộ nhớ SDR ip_wr_ready ddr3_write_udps ddr3_write_ldps SDRAM; Cung cấp các thông số định thời được cấu hình data_read_out ddr3_write_udps_n ddr3_write_ldps_n trước (tCL, tRC, tRCD, tRP, tMRD, tRRD, tRFC, tRAS, tWR) và tương [DDR_DATA_WIDTH-1:0] ddr3_read_udps ddr3_read_ldps ddr3_dir_data ddr3_read_udps_n thích Bus AMBA AHB, thực hiện các chức năng: khởi tạo ddr3_dir_udqs ddr3_read_ldps_n ban đầu hoàn chỉnh, tự động làm tươi và chế độ tiết kiệm ddr3_dir_ldqs ddr3_dir_udqs_n ddr3_rst_n ddr3_dm [1:0] năng lượng (Self Refresh) [8]. ddr3_dir_ldqs_n K.SIREESHA, S.Ch.Kantha Rao thiết kế DDR3 Hình 3. Sơ đồ thiết kế ở mức TOP khối MC SDRAM Controller để giao tiếp với Hash CAM (Content khởi động DDR3 SDRAM, đồng thời giám sát chu kỳ Addressable Memory) tốc độ cao. Cấu trúc MC gồm các Refresh để báo cho khối Activation phát lệnh Refresh theo khối khởi tạo, giao tiếp và khối điều khiển giao tiếp định kỳ. Trong quá trình khởi tạo, MC thiết lập 4 chế độ hoạt SDRAM. MC hoạt động với cấu hình 64 bit dữ liệu, chức động MR0, MR1, MR2, MR3 cho DDR3. Tạo các tín hiệu năng tự động Refresh, Precharge, các hoạt động Read/ chọn Chip(init_cs_n), tích cực xung Clock (init_ ck_en) như Write với BL8 và BC4 [1, 2, 5]. ở Hình 4, địa chỉ khởi động (init_ addr, init_bank) và các Lõi IP DDR3 SDRAM Controller do Lattice lệnh khởi động (init_command). Ngoài ra, khối này còn tạo Semiconductor thiết kế phát triển trên phần cứng FPGA tín hiệu báo cho khối Activation biết quá trình khởi động LatticeECP3, giao tiếp với DDR3 SDRAM theo chuẩn đã hoàn thành(init_complete) và tín hiệu báo làm tươi JESD79-3, hỗ trợ các DDR3 cấu hình x4, x8 và x16, BL8 (init_refresh) DDR3. hoặc BC4, xung nhịp Clock 200MHz, cho phép lập trình Khối Activation làm nhiệm vụ giao tiếp trực tiếp với được các tham số định thời, tự động khởi tạo, làm tươi [4]. DDR3 để thiết lập các chế độ hoạt động, điều khiển việc 3.2. Thiết kế các khối chức năng truy xuất, làm tươi. Các tín hiệu điều khiển từ chính khối DDR3 Controller có chức năng điều khiển mọi hoạt động Activation tạo ra khi quá trình khởi động đã hoàn tất và quá truy cập SDRAM. MC sẽ tự động khởi động DDR3, phát trình đọc/ ghi DDR3 diễn ra. Đồng thời khối này cũng tạo các lệnh cần thiết như Read, Write, Refresh, Seft Refresh, ra các tín hiệu báo hiệu quá trình Read/Write hoàn thành, Precharge… để đảm bảo DDR3 hoạt động với hiệu suất cao. đọc FIFO ghi dữ liệu và bus dữ liệu đọc từ SDRAM, trả về Sơ đồ thiết kế tổng quát MC ở Hình 2 có 3 khối chức năng cho giao tiếp người sử dụng, xóa bộ đếm giám sát Auto chính: User Interface, DDR3 SDRAM Initialization và Refresh sau mỗi lần làm tươi DDR3. DDR3 SDRAM Activation. Sơ đồ thiết kế mức TOP trong 3.3. Thiết kế máy trạng thái FSM Hình 3 mô tả chi tiết các chân tín hiệu I/O của MC. Sơ đồ mô tả máy trạng thái khối điều khiển DDR3 được Khối User Interface có chức năng giao tiếp với người thiết kế như ở Hình 6. Kết thúc quá trình khởi tạo, MC ở dùng. Khối này có chứa các thanh ghi FIFO lưu địa chỉ ghi trạng thái rỗi IDLE. Ở trạng thái này, MC định kỳ tự động và FIFO lưu dữ liệu phục vụ cho quá trình đọc và ghi dữ thực hiện hoạt động Refresh DDR3. Có 2 chế độ làm tươi liệu vào DDR3. Trong khối này có hai thành phần mạch là Refresh và Self Refresh, sau lệnh làm tươi DDR3, MC chính là mạch điều khiển Read và Write. Hai mạch này tổ về lại trạng thái IDLE và sẵn sàng nhận lệnh điều khiển từ hợp các tín hiệu từ giao tiếp User để tạo ra tín hiệu điều người dùng thông qua các tín hiệu giao tiếp người dùng. khiển cho khối Activation. Mạch điều khiển đọc phát hiện Khi có các tác động Read/ Write từ giao tiếp người lệnh đọc từ giao tiếp User, chốt lại các giá trị địa chỉ và tạo dùng, khối Activation phát lệnh truy cập DDR3. Trước khi tín hiệu khởi động khối Activation đọc SDRAM. Mạch kết thúc quá trình Read/Write, MC thực hiện lệnh điều khiển ghi phát hiện lệnh ghi từ giao tiếp User, lưu lại Precharge để ngưng kích hoạt Bank hiện hành hoặt tất cả các giá trị địa chỉ, dữ liệu ghi vào các FIFO và tạo tín hiệu các Bank của SDRAM và trở về trạng thái rỗi IDLE trước khởi động khối Activation ghi DRAM [4, 8]. khi thực hiện một truy cập mới nhằm đảm bảo dữ liệu Khối Initialization làm nhiệm vụ thực hiện quy trình không bị mất và được thực thi một cách chính xác.
  3. 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 WAIT_FOR_I NIT current_state =? init_complete SET_MR3 t_exit_sel_refresh = tDLL t_refresh = 200ns current_state =? SET_MR1 WAIT_FOR_S act_ck_en = 0 init_refresh SELF_ WAIT_FOR_R ELF_ REFRESH IDLE REFRESH EFRESH REFRESH current_state =? SET_MR0 rd_wr_en = user_rd | current_state user_wr =? SET_ZQCL FSM CONTROLL READ/WRITE ACTIVE current_state =? SET_NOP_ODT wr_en = rd_en = DDR3_NOP 100 t_active_complete & t_active_complete WAIT_FOR_A init_command user_wr CTIVE & user_rd 001 [2:0] 010 Hình 4. Sơ đồ tổ hợp tín hiệu init_cs_n và WRITE READ init_command khối Initialization Address current_state current_state WAIT_FOR_ WAIT_FOR_R user_wr =? WRITE EAD =? Them precharge READ sel_addr col_waddr 1 A10=0 de khong auto current_state precharge sel_addr =? t_wr_complete PRECHARGE t_rd_complete col_raddr 0 AL+ CWL + 3CK + tWR AL+ CL +3CK 1 WRITE act_addr_wait user_wr 0 init_complete act_addr Automatic 0 sequence row_waddr 1 act_addr 1 WAIT_FOR_ 13'1_1111_1111_1111 ddr3_a Command PRECHARGE 1 sequence row_raddr t_precharge 0 init_addr 0 Hình 5. Sơ đồ tổ hợp địa chỉ khối Activation Hình 6. Sơ đồ máy trạng thái (FSM) 4. Kết quả mô phỏng và thảo luận environment.v kết nối MC với DDR3. File testbench 4.1. Thiết kế Top Module 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ử Đã Tỉ lệ chiếm Có sẵn dụng dùng 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% Số lượng các bộ đệm tín hiệu 1 16 6% 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 Hình 7. Sơ đồ RTL DDR3 MC Micron, sau khi tín hiệu ck_e tích cực mức thấp và duy trì Thiết kế MC được thực hiện trên phần mềm ISE14.3 trong thời gian 500s, MC chuyển sang trạng thái Set của Xilinx, với cấu hình sử dụng loại DDR3 1GB chạy trên mode, tuần tự các Mode được thiết lập MR2, MR3, MR1 và nền tảng Chip xa6slx45t-3fgg484 Spartan6 FPGA của MR0. Sau khi thực hiện xong hoạt động Set mode, qúa trình Xilinx. Sau khi thiết kế các Module thành phần, Module khởi tạo kết thúc bằng báo hiệu Init_complete và MC ở ddr3_sdram_top.v liên kết các Module thành phần,
  4. 72 Phạm Văn Phát 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. 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 4.3. Write Data đọc phát hiện lệnh Read từ giao tiếp User, lưu lại giá trị địa Hình 9 là kết quả mô phỏng hoạt động ghi 8 khối dữ liệu chỉ vào các FIFO. Bước kế tiếp là tạo tín hiệu khởi động khối từ Database vào địa chỉ Bank 2, row 3 của DDR3. Quá trình Activation phát địa chỉ lên bus và cho phép đọc rd_en đọc ghi dữ liệu được thực hiện 2 bước, đầu tiên là mạch điều dữ liệu từ DDR3 ra bus act_data_out. Kết thúc quá trình đọc khiển ghi phát hiện lệnh Write từ giao tiếp User, lưu lại các dữ liệu bằng báo hiệu act_rd_complete từ khối Activation 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ỉ, 5. Kết luận dữ liệu lên bus và cho phép ghi wr_en ghi dữ liệu vào DDR3. Trong nghiên cứu này, tác giả đã thiết kế Memory 4.4. Read Data 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 Hình 10. Kết quả mô phỏng hoạt động đọc dữ liệu từ DDR3 động 200MHz trong [3, 4] và SDR trong [8]. Tuy nhiên,
  5. ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 3(88).2015 73 nghiên cứu đạt được ở mức thiết kế logic, tổng hợp và mô Achieving High Speed Read Operation”, International Journal for Research in Science & Advanced Technologies, ISSN 2319-2690; phỏng để đánh giá Timing. Hướng phát triển tiếp theo của Issue-2, Volume-1; Feb 2013, pp.013-016. nghiên cứu này là thiết kế Module ghép nối MC lên Bus và [4] Semiconductor, Double Data Rate (DDR3) SDRAM Controller IP nhúng hệ thống xuống KIT. Core User’s Guide, Lattice, March 2012. [5] X. Yang, et al, “High Performance IP Lookup Circuit Using DDR TÀI LIỆU THAM KHẢO SDRAM”, IEEE International SOC Conference (SOCC), Sept. 2008, pp. 371-374. [1] K.Sireesha, S.Upender, “Design of High Speed DDR3 SDRAM [6] Micron Technology Inc, 1Gb: x4, x8, x16 DDR3 SDRAM Features, Controller”, International Journal of Engineering Research and Micron, 2008. Applications, ISSN: 2248-9622, Vol. 1, Issue 3, pp.969-973. [7] JEDEC, Double Data Rate (DDR) SDRAM Specification, Jedec [2] Ajay, Adesh Kumar, Dhirendra Singh Gangwar, “Design and solid state technology association, March 2009. Simulation of DDR3 SDRAM controller for High Performance in VHDL”, International Journal of VLSI and Embedded Systems- [8] http://icdrec.edu.vn IJVES, ISSN: 2249 – 6556, Vol 04, Article 06124; July 2013, [9] http://www.jedec.org pp.548-556. [10] http:// www.micron.com [3] S.Ch.Kantha Rao, “Design Of DDR3 SDRAM Controller For (BBT nhận bài: 12/12/2014, phản biện xong: 12/01/2015)
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2