国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

DDR3-SDRAM控制器設(shè)計及FPGA實現(xiàn)

2016-11-26 08:27:14李元兵姚遠程秦明偉
自動化儀表 2016年8期
關(guān)鍵詞:時鐘控制器模塊

李元兵 姚遠程 秦明偉

(西南科技大學(xué)信息工程學(xué)院1,四川 綿陽 621010;特殊環(huán)境機器人技術(shù)四川省重點實驗室2,四川 綿陽 621010)

?

DDR3-SDRAM控制器設(shè)計及FPGA實現(xiàn)

李元兵1,2姚遠程1,2秦明偉1,2

(西南科技大學(xué)信息工程學(xué)院1,四川 綿陽 621010;特殊環(huán)境機器人技術(shù)四川省重點實驗室2,四川 綿陽 621010)

針對自適應(yīng)接收機中高速A/D采樣數(shù)據(jù)對高帶寬和大容量的需求,提出一種DDR3控制器設(shè)計方案。采用在MIG IP核的基礎(chǔ)上添加用戶接口控制程序的設(shè)計方法,利用ZC706評估板實現(xiàn)了DDR3的讀寫控制。設(shè)計方案具有較高的可移植性和簡單的用戶接口,可以靈活地應(yīng)用到不同的工程中。仿真和板級測試表明,DDR3可在800 MHz的接口頻率工作,傳輸速度可達1 600 MT/s,驗證了系統(tǒng)的可行性和正確性,其將有助于解決海量數(shù)據(jù)的高速緩存問題。

存儲器 控制器 FPGA 高帶寬 大容量 用戶接口 數(shù)據(jù)模塊 模數(shù)轉(zhuǎn)換

0 引言

當(dāng)前,在諸多通信芯片和系統(tǒng)的研發(fā)中,經(jīng)常用到各種大容量、高速讀寫存儲器件。同步動態(tài)隨機存儲器(synchronous dynamic random access memory,SDRAM)以其價格低、速度快、容量大等特點,廣受開發(fā)者的青睞[1]。其中,DDR2和DDR3發(fā)展成熟、應(yīng)用廣泛。DDR3在DDR2的基礎(chǔ)上有了進一步的發(fā)展和改進,因此更具優(yōu)勢,已成為工程人員的首選方案。由于DDR3不能直接識別處理器的訪問請求[2],所以有必要設(shè)計一個DDR3控制器,以控制DDR3的讀寫。

基于ZC706評估板,針對高速數(shù)據(jù)通過DDR3緩存的應(yīng)用背景,利用Xilinx官方的MIG IP核,實現(xiàn)了DDR3控制器的設(shè)計,并在板上完成了驗證。在評估板上,融合了ARM Cortex-A9處理器和Xilinx Zynq-7000系列FPGA芯片XC7Z045。在存儲方面,F(xiàn)PGA連接了一條容量為1 GB的SODIMM式內(nèi)存條,充分滿足設(shè)計需要。

1 DDR3-SDRAM介紹

設(shè)計中使用的DDR3-SDRAM(以下簡稱DDR3)為鎂光公司的MT8JTF12864HZ-1G6內(nèi)存條。該內(nèi)存條由8顆128 MB的內(nèi)存顆粒構(gòu)成,它們組合在一起構(gòu)成單RANK,存儲容量為1 GB。每顆存儲顆粒的數(shù)據(jù)位寬是8 B,8顆放在一起組成了數(shù)據(jù)位寬是64 B的存儲條,再加上設(shè)置其突發(fā)長度為8,所以每次讀寫的數(shù)據(jù)位寬可以達到512 B,很大程度上提高了DDR3的讀寫效率。每個存儲顆粒擁有8個邏輯BANK,對應(yīng)3根BANK選擇線,所有存儲顆粒復(fù)用14根行地址線、10根列地址線。

DDR3較上一代DDR2有一些重要改進和新的特點:預(yù)取能力變?yōu)? B,是DDR2預(yù)取能力的兩倍,有效地克服了核心頻率較低的問題;新增加ZQ校準(zhǔn)功能;數(shù)據(jù)總線和控制總線使用獨立的參考電壓,以提高系統(tǒng)數(shù)據(jù)總線的信噪等級;突發(fā)長度(burst length,BL)由DDR2的4變?yōu)?;增加了突發(fā)突變(burst chop,BC)模式等[3-4]。

在功耗方面,DDR3的功耗不到DDR2的75%,功耗明顯降低,其最顯著的表現(xiàn)就是DDR3的核心電壓從DDR2的1.8 V降為1.5 V。除了電壓降低以外,DDR3還有許多節(jié)能方面的改進,如:重置、溫度自刷新(self refresh temperature,SRT)、局部自刷新(partial array self-refresh,PASR)等。重置功能是DDR3新增加的,這簡化了DDR3的初始化處理。當(dāng)重置信號激活時,DDR3不會進行任何操作,僅保持最少的活動量來節(jié)省功耗;溫度自刷新功能通過芯片的溫度來選擇刷新頻率,在確保數(shù)據(jù)不遺漏的情況下,降低刷新頻率,減少功耗;局部自刷新使得DDR3只需刷新某些邏輯BANK,避免全部刷新,從而盡量減少自刷新功耗。

配置DDR3芯片的方法是設(shè)置其內(nèi)部的模式寄存器和擴展寄存器,不同的配置將導(dǎo)致DDR3在不同的模式下工作。決定其工作狀態(tài)的操作指令有片選信號(chip select,CS)、行地址選擇信號(row address strobe, RAS)、列地址選擇信號(column address strobe,CAS)和寫使能信號(write enable,WE),它們的組合決定了DDR3的工作方式,如表1所示。

表1 操作指令集

表1中:1代表高電平,0代表低電平??刂破鞅仨殲镈DR3提供滿足時序要求的這些控制信號,才能準(zhǔn)確地控制DDR3的各種不同操作。

DDR3上電后,一定要遵從標(biāo)準(zhǔn)協(xié)議的規(guī)定進行初始化,并配置一些基本參數(shù),否則會導(dǎo)致DDR3的工作狀態(tài)不確定。在初始化的過程中,對寄存器進行設(shè)置,同時可以完成CAS延遲、突發(fā)長度、突發(fā)類型、片上端接電阻(ODT)值等參數(shù)的設(shè)定[5]。只有在初始化完成后,DDR3才能在就緒狀態(tài)工作,等待相應(yīng)的操作指令;進入正常工作狀態(tài)后,用戶才能控制其讀寫。

2 DDR3 SDRAM控制器設(shè)計

2.1 總體設(shè)計

由于DDR3的控制邏輯復(fù)雜,為了縮短工程人員的開發(fā)周期,Xilinx公司為開發(fā)人員提供了可以用來生成DDR3控制器的MIG IP核。開發(fā)人員只要通過IP核的GUI選擇內(nèi)存芯片,并設(shè)置控制器的相關(guān)參數(shù),便可在IP核自動生成設(shè)計所需的RTL文件、用戶約束文件以及網(wǎng)表文件。用戶通過更改一些接口,即可生成測試工程,并進行DDR3讀寫測試。設(shè)計將控制器的系統(tǒng)時鐘和參考時鐘都設(shè)置為200 MHz。

控制器由系統(tǒng)時鐘和復(fù)位模塊、用戶接口模塊、MIG IP核生成的控制器接口模塊組成,其結(jié)構(gòu)如圖1所示。

圖1 控制器結(jié)構(gòu)圖

圖1中:板上系統(tǒng)時鐘為200 MHz差分時鐘,經(jīng)過MIG IP核中的鎖相環(huán)倍頻到800 MHz,作為控制器的主時鐘頻率。由于DDR3能夠在時鐘的上下沿都傳輸數(shù)據(jù),因此,其傳輸速度達到1 600 MT/s。DDR3控制器封裝了用戶邏輯到存儲器邏輯的轉(zhuǎn)換,所以用戶只需進行用戶接口設(shè)計,按照MIG的讀寫時序向控制器發(fā)送命令、地址和數(shù)據(jù)[6-7]。MIG的讀寫時序相對簡單,利于用戶實現(xiàn)。因此,用戶接口模塊是DDR3控制系統(tǒng)的核心內(nèi)容,也是設(shè)計的重點。

2.2 用戶接口模塊設(shè)計

用戶接口是用戶控制DDR3的直接操作端口,需由用戶根據(jù)工程的數(shù)據(jù)量大小、數(shù)據(jù)位寬、數(shù)據(jù)速率、緩存深度等參數(shù)自行設(shè)計。用戶接口設(shè)計方案如圖2所示,主要包括寫數(shù)據(jù)模塊、讀數(shù)據(jù)模塊和控制模塊。考慮到DDR3只包含一套地址結(jié)構(gòu),因此讀寫不能同時進行。

本文采用將讀寫數(shù)據(jù)通道分開的設(shè)計思想,對DDR3進行分時操作。根據(jù)工程中數(shù)據(jù)量的大小和DDR3的容量大小計算讀寫的時間,并按照這個時間產(chǎn)生外部切換信號,由外部切換信號來控制DDR3的讀寫;根據(jù)切換信號,分別將讀寫的命令、地址和數(shù)據(jù)發(fā)送給控制模塊,在控制模塊內(nèi)部通過FIFO緩存的方式[8]完成數(shù)據(jù)的跨時鐘域處理,以避免產(chǎn)生亞穩(wěn)態(tài),確保數(shù)據(jù)完整性[9]。

圖2 用戶接口框圖

當(dāng)對DDR3進行寫操作時,由寫數(shù)據(jù)模塊產(chǎn)生命令、地址和數(shù)據(jù),通過地址命令選擇器后傳送給控制模塊;同時,將數(shù)據(jù)傳送到控制模塊,控制模塊完成跨時鐘域處理后,再將數(shù)據(jù)傳送到DDR3控制器,進行寫操作。在進行寫操作時,將寫地址進行覆蓋寄存。當(dāng)檢測到切換信號的切換沿時,將寄存的最大寫數(shù)據(jù)地址發(fā)送給讀數(shù)據(jù)模塊,讀數(shù)據(jù)模塊將此地址作為讀數(shù)據(jù)最大地址。

當(dāng)根據(jù)切換信號對DDR3進行讀操作時,讀數(shù)據(jù)模塊把從寫數(shù)據(jù)模塊接收到的最大寫地址作為最大讀地址傳送給控制模塊,由控制模塊處理后傳送給DDR3控制器,以確保數(shù)據(jù)全部讀出;讀出的數(shù)據(jù)由控制模塊處理后返回給讀數(shù)據(jù)模塊,供用戶分析。通過這種讀寫方式,可以按需更改每次DDR3讀寫的數(shù)據(jù)量,增加了控制器系統(tǒng)的靈活性。

寫數(shù)據(jù)模塊的主要信號有app_cmd、app_addr、app_en、app_wdf_data、app_wdf_wren、app_rdy和app_wdf_rdy。app_cmd是操作命令信號,3′b000表示寫入,3′b001表示讀出;app_addr是操作地址;app_en是操作地址使能,只有當(dāng)app_en為高電平的時候,對應(yīng)的操作地址才是有效的;app_wdf_data是寫入的數(shù)據(jù)接口;app_wdf_wren是寫入數(shù)據(jù)的使能信號,只有當(dāng)app_wdf_wren為高電平時,寫入的數(shù)據(jù)才是有效的;app_rdy和app_wdf_rdy是DDR3 IP核反饋給控制模塊的信號,當(dāng)DDR3準(zhǔn)備好接收寫數(shù)據(jù)地址和寫數(shù)據(jù)命令時,app_rdy為高電平,此時用戶需置高app_en,發(fā)送的地址才是有效的;當(dāng)DDR3準(zhǔn)備好接收寫數(shù)據(jù)時,app_wdf_rdy為高,此時用戶需置高app_wdf_wren,發(fā)送給DDR3控制器的數(shù)據(jù)才是有效的。只要將地址系統(tǒng)和數(shù)據(jù)系統(tǒng)按照時序關(guān)系圖對應(yīng),就可以將數(shù)據(jù)寫入DDR3。

讀數(shù)據(jù)模塊的主要信號有app_cmd、app_addr、app_en、app_rdy、app_rd_data和app_rd_data_valid,讀操作沒有數(shù)據(jù)總線信號對應(yīng)使能信號。其中:app_cmd、app_addr、app_en和app_rdy這4個信號的作用與寫數(shù)據(jù)模塊一樣,分別是DDR3 IP核反饋給控制模塊的讀出數(shù)據(jù)和數(shù)據(jù)有效信號。當(dāng)用戶發(fā)送命令和地址后,每隔一段時間都將拉高讀數(shù)據(jù)有效信號,同時傳出讀數(shù)據(jù)。

3 系統(tǒng)測試與分析

3.1 仿真分析

控制器生成以后,將代碼加入到Vivado2015.1軟件中,以進行控制器功能驗證。代碼中包含了一個測試模塊,該模塊能夠隨機地對DDR3進行一系列讀寫,并且能對比讀寫數(shù)據(jù),以便驗證控制器的正確性。仿真過程中,大約經(jīng)過55.4 μs的仿真時間,init_calib_complete的值由0變?yōu)?,說明DDR3初始化已經(jīng)成功。由于設(shè)計時將DDR3的突發(fā)長度設(shè)置為8,所以地址以8為單位進行增長。當(dāng)用戶給出一個地址,控制器就可以連續(xù)讀取8個地址的數(shù)據(jù)。由于數(shù)據(jù)總線的寬度為64位,所以每次讀寫操作的位寬達到512位。該測試模塊帶有數(shù)據(jù)出錯標(biāo)志位tg_compare_error,可通過這個信號比較控制器讀寫是否一致。當(dāng)有數(shù)據(jù)出錯的時候,tg_compare_error的值為1。仿真結(jié)果表明,tg_compare_error信號的輸出一直為0,說明沒有數(shù)據(jù)出錯,控制器的功能驗證通過。

3.2 硬件測試

為了驗證所設(shè)計的控制器能否工作,要對控制器進行FPGA板級的下板測試,以確保設(shè)計的可行性與可靠性。系統(tǒng)綜合實現(xiàn)后,把bit文件加載到ZC706評估板上進行板級調(diào)試。為了便于分析,由Xilinx提供了FPGA片上調(diào)試工具[10],它可以捕獲和顯示實時信號,觀察在系統(tǒng)設(shè)計中硬件和軟件之間的相互作用??刂破鲗崟r采集到的數(shù)據(jù)存儲到FPGA片內(nèi)的RAM中,并通過JTAG接口傳送到軟件中顯示,使用非常方便。由于RAM容量和一次采樣到的數(shù)據(jù)都有限,因此在硬件測試時,以循環(huán)讀寫的方式進行。DDR3工作的主時鐘頻率為800 MHz,數(shù)據(jù)傳輸速度達到1 600 MT/s。讀寫比較信號dbg_cmp_error輸出始終為低電平,說明寫入和讀取的數(shù)據(jù)相同,控制器能夠正常工作,由此完成硬件測試。

4 結(jié)束語

通過對DDR3技術(shù)特點和原理的分析,利用Xilinx公司提供的Vivado軟件和MIG IP核,設(shè)計了DDR3控制器系統(tǒng),并且在ZC706評估板上予以實現(xiàn)。通過仿真和下板測試,證明了該控制器能夠穩(wěn)定地對DDR3內(nèi)存條進行讀寫??刂破鞯闹鲿r鐘工作在800 MHz,數(shù)據(jù)傳輸速率達到1 600 MT/s,表明了設(shè)計的可行性和正確性,可以將其運用到自適應(yīng)接收機中,對高速A/D采樣數(shù)據(jù)進行高速緩存。通過IP核設(shè)計的DDR3控制器具有較好的適用性和靈活性,消耗邏輯資源較少,移植方便。以MIG IP核為基礎(chǔ)進行系統(tǒng)開發(fā),減少了系統(tǒng)的開發(fā)成本,同時也縮短了系統(tǒng)的開發(fā)時間。

[1] 李憲強.FPGA項目開發(fā)實戰(zhàn)講解[M].北京:電子工業(yè)出版社,2015:175-178.

[2] PAN G T,LUO L,OU G D,et al. Design and implementation of a DDR3-based memory controller[C]//2013 Third International Conference on Intelligent System Design and Engineering Applications,2013:540-543.

[3] JEDEC Organization. JEDEC Standard DDR3 SDRAM Specification[S].2010.

[4] 馬志超.DDR3控制器的設(shè)計與驗證[D].西安:西安電子科技大學(xué),2013.

[5] 丁寧,馬游春,秦麗,等.基于FPGA的DDR3-SDRAM控制器用戶接口設(shè)計[J].科學(xué)技術(shù)與工程,2014,14(17):225-228.

[6] 張剛,賈建超,趙龍.基于FPGA的DDR3 SDRAM控制器設(shè)計與實現(xiàn)[J].電子科技,2014,27(1):70-73.

[7] 李晉文,胡軍,曹躍勝,等.DDR3時序分析與設(shè)計[J].計算機科學(xué),2012,39(4):293-296.

[8] 馬其琪,鮑愛達.基于DDR3 SDRAM的高速大容量數(shù)據(jù)緩存設(shè)計[J].計算機測量與控制,2015,23(9):3112-3114.

[9] ZHOU R J,HAO Y Y,HU J S. Quick system-level DDR3 signal integrity simulation research[J].Journal of Electronic Science and Technology,2013,11(3):286-290.

[10]黃云翔.DDR3 SDRAM控制器的設(shè)計和驗證[D].廣州:華南理工大學(xué),2012.

Design of DDR3-SDRAM Controller and FPGA Implementation

Aiming at the requirements of high bandwidth and large capacity for high-speed A/D sampling data in adaptive receiver,a design scheme of double data rate 3 (DDR3) controller is put forward. The design method of adding a user interface control program based on MIG IP core is adopted,and the controller is realized using ZC706 evaluation board. The design has better flexibility,high transplantability,and simple user interface,which can be flexibly applied into different projects. Through the simulation and board level test,the interfacing frequency of DDR3 can work at 800 MHz,and the transmission speed is up to 1 600 MT/s,which verifies the feasibility and correctness of the system,and will have a significant impact to solve the problem of massive data cache.

Memory Controller FPGA High bandwidth Large capacity User interface Data module Analog-digital conversion

國防基礎(chǔ)科研計劃基金資助項目(編號:B3120133002)。

李元兵(1991—),男,現(xiàn)為西南科技大學(xué)電子與通信工程專業(yè)在讀碩士研究生;主要從事高速并行信號處理的研究。

TH7;TP332

A

10.16086/j.cnki.issn 1000-0380.201608002

修改稿收到日期:2016-05-05。

猜你喜歡
時鐘控制器模塊
28通道收發(fā)處理模塊設(shè)計
“選修3—3”模塊的復(fù)習(xí)備考
別樣的“時鐘”
古代的時鐘
有趣的時鐘
時鐘會開“花”
選修6 第三模塊 International Relationships
模糊PID控制器設(shè)計及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
自動化博覽(2014年9期)2014-02-28 22:33:17
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
长泰县| 元朗区| 南通市| 都昌县| 讷河市| 论坛| 石屏县| 阳谷县| 安新县| 黑水县| 鱼台县| 湘西| 寿宁县| 正阳县| 县级市| 乌鲁木齐县| 河南省| 红安县| 九龙坡区| 蓬莱市| 绥棱县| 健康| 通渭县| 延安市| 巴东县| 靖江市| 桃园市| 美姑县| 抚州市| 高清| 闽清县| 石景山区| 安阳县| 灵台县| 灵璧县| 江口县| 呼玛县| 宿迁市| 瓦房店市| 东乌珠穆沁旗| 龙海市|