999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的DDR2 SDRAM控制器設(shè)計

2021-07-02 12:22:34錢素琴劉晶華
電子測試 2021年11期
關(guān)鍵詞:信號設(shè)計

錢素琴,劉晶華

(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海,201600)

0 引言

隨著數(shù)據(jù)采集系統(tǒng)的發(fā)展,應(yīng)用于圖像采集和數(shù)據(jù)傳輸?shù)阮I(lǐng)域的產(chǎn)品對存儲器的速度要求越來越高。DDR2系列的SDRAM動態(tài)存儲器因為其能在時鐘的正負(fù)沿進行兩倍速度讀寫[1],同時具有低成本、高速、大容量、運行穩(wěn)定等高性價比的優(yōu)點,所以在各個領(lǐng)域中被廣泛使用[2]。比如文獻3采用DDR2來存儲視頻數(shù)據(jù)[3],文獻4利用DDR2實現(xiàn)了數(shù)據(jù)量較大的原始紅外圖像的緩存[4],文獻5將DDR2存儲技術(shù)應(yīng)用到了船舶港口物流跟蹤系統(tǒng)中[5]等。

DDR2復(fù)雜苛刻的操作時序,造成對應(yīng)的DDR2控制器電路結(jié)構(gòu)也比較特別。很多FPGA廠商利用其可編程芯片的豐富軟硬件資源設(shè)計了DDR2存儲控制器IP核[6],其中Altera公司設(shè)計的存儲控制器因其效率最高使用較為廣泛。要實現(xiàn)DDR2控制器的設(shè)計,用戶只需了解FPGA芯片專用于連接DDR2的引腳功能及存儲器的工作機制即可。

本設(shè)計主控制器選用了Altera公司Cyclone IV系列的EP4CE30F23C8,數(shù)據(jù)緩存器選用了Micron公司內(nèi)存為2Gbit大小的MT47H128M16-25E,研究了DDR2 SDRAM的工作原理及控制器IP核解決方案,在現(xiàn)場可編程門陣列芯片F(xiàn)PGA中實現(xiàn)DDR2控制器設(shè)計,并在嵌入式邏輯分析儀Signaltap中顯示了雙邊沿時鐘主頻工作下的測試結(jié)果,在166.7MHz時鐘頻率下實現(xiàn)了穩(wěn)定讀寫的目標(biāo)。

1 DDR2的工作機制

1.1 DDR2的初始化

DDR2 SDRAM有許多操作步驟,包括加載模式、自刷新、預(yù)充電、激活、讀寫操作和空閑等待。在進行上述操作之前必須要在上電后按照規(guī)定的步驟完成初始化。在初始化的過程中主要是對其模式寄存器的值進行配置來完成CAS延遲、突發(fā)長度、突發(fā)類型、輸出驅(qū)動能力、片上端接電阻(ODT)值、伴隨CAS的附加延遲、片外驅(qū)動器校準(zhǔn)等參數(shù)的配置,為之后的讀寫操作做準(zhǔn)備。

1.2 DDR2的讀寫操作

DDR2讀寫操作前需要對指定段的行進行激活,每個段只允許打開1行進行讀寫操作,如果要對同一段中的其他行進行讀寫操作,則必須先用預(yù)充電命令關(guān)閉已經(jīng)打開的行,再用激活命令打開需要進行讀寫操作的行。實際上是鎖定行地址,再進行突發(fā)操作,對連續(xù)地址單元進行讀寫操作[6]。DDR2可支持突發(fā)讀寫,突發(fā)讀寫長度為4和8,也稱突發(fā)傳輸,簡化了DDR2的讀寫操作并提高了讀寫效率。

1.3 IP核

Altera為用戶提供了DDR2控制的兩個IP, 一個是DDR2 SDRAM Controller with UniPHY,另一個為DDR2 SDRAM Controller with ALTMEMPHY。DDR2 SDRAM Controller with UniPHY的性能比DDR2 SDRAM Controller with ALTMEMPHY更好一些,兩種IP使用的方法是相同的,但UniPHY不支持Cyclone系列的芯片,所以在Cyclone 系列的FPGA上只能使用ALTMEMPHY IP來實現(xiàn)DDR2。

2 DDR2 SDRAM控制器的設(shè)計

圖1為本方案的控制器總體結(jié)構(gòu)框圖,主要包括FPGA和DDR2 SDRAM,其中FPGA內(nèi)部模塊包括參數(shù)計算、輸入FIFO、DDR2控制器、輸出FIFO。圖像數(shù)據(jù)緩存是通過FPGA片內(nèi)的輸入輸出FIFO資源與片外的DDR2 SDRAM進行的,其中,各個模塊之間數(shù)據(jù)位寬不一致和數(shù)據(jù)傳輸速度不匹配的問題可以由輸入輸出FIFO解決,高速大容量的數(shù)據(jù)緩存可以借助DDR2 SDRAM來實現(xiàn)。

圖1 系統(tǒng)總體結(jié)構(gòu)框圖

系統(tǒng)實現(xiàn)的過程如下:上電后對DDR2存儲器的模式寄存器配置后進行初始化;在讀取數(shù)據(jù)和寫入數(shù)據(jù)時,實現(xiàn)存儲器能上下沿傳輸數(shù)據(jù)和突發(fā)傳輸?shù)囊蟆T趯懭霐?shù)據(jù)操作時將待發(fā)送的數(shù)據(jù)和命令轉(zhuǎn)換成符合存儲器要求的寫指令,然后將數(shù)據(jù)寫入存儲器;在讀取操作時先將讀地址和數(shù)據(jù)長度轉(zhuǎn)換成存儲器要求的讀指令發(fā)送給存儲器讀出需要的數(shù)據(jù),然后從存儲器將讀出的數(shù)據(jù)發(fā)送給用戶端。

在結(jié)構(gòu)框圖的基礎(chǔ)上,本文進行了硬件和軟件兩個部分的設(shè)計。硬件設(shè)計為FPGA與DDR2的信號連接,軟件設(shè)計為以verilog語言為基礎(chǔ)的FPGA邏輯編程控制DDR2的讀寫。

2.1 DDR2 SDRAM控制器的信號連接圖

DDR2 SDRAM控制器的信號連接圖如圖2所示。

圖2 信號連接圖

在本方案中的設(shè)計的測試模塊中有時鐘輸入信號CLK和置位信號RST。功能驗證的部分包含初始化模塊、讀寫控制模塊和數(shù)據(jù)傳輸模塊的驗證。

DDR2 SDRAM與FPGA開發(fā)板上的FPGA相連的是BANK3和BANK4的IO,相連的硬件引腳具體為:系統(tǒng)時鐘差分時鐘信號(CK、CK#)、時鐘使能信號(CKE#)、行列地址復(fù)用總線(A[13:0])、段地址選擇線(BA[2:0])、數(shù)據(jù)總線(DQ[15:0])、隨路時鐘信號(DQS)、片選信號(CS#)、行地址選通信號(CAS#)、列地址選通信號(RAS#)、寫使能信號(WE#)、數(shù)據(jù)屏蔽信號(DM)和片內(nèi)終端電阻控制線(ODT)等[7]。

DDR2 SDRAM的電平電壓為1.8V,參考電壓VREF為電源電壓的一半。由于外部由5V電源供電,所以采用MP1482芯片將外部的5V電源電壓轉(zhuǎn)換成DDR2需要的1.8V電壓。具體電路參考MP1482使用手冊,本文不再贅述。

DDR2的硬件設(shè)計需要嚴(yán)格考慮信號完整性[8],在電路設(shè)計和PCB設(shè)計的時候需要充分考慮匹配電阻/終端電阻、走線阻抗控制和走線等長控制,保證DDR2的高速穩(wěn)定的工作。

2.2 DDR2 SDRAM控制器的邏輯設(shè)計

DDR2 SDRAM控制器的主要功能是實現(xiàn)存儲器芯片的初始化、讀寫操作和數(shù)據(jù)傳輸,它將存儲器復(fù)雜的讀寫時序隱藏起來,轉(zhuǎn)化成簡單易行的操作,通過控制器,只需控制簡單的接口信號,就可以對存儲器芯片進行讀寫操作。寫入數(shù)據(jù)的時候,只要控制寫請求信號wr_burst_req、寫長度wr_burst_len、寫地址wr_burst_add和寫數(shù)據(jù)wr_burst_data。同樣,讀數(shù)據(jù)的時候,只要控制讀請求信號rd_burst_req、讀長度rd_burst_len、讀地址rd_burst_add、讀數(shù)據(jù)有效rd_burst_data_valid和讀數(shù)據(jù)rd_burst_data。本設(shè)計的命令參數(shù)是根據(jù)表1的命令真值表和圖3的狀態(tài)轉(zhuǎn)換圖進行邏輯設(shè)計的。

表1 DDR2 SDRAM基本操作的命令真值表

圖3 DDR2 SDRAM控制器狀態(tài)轉(zhuǎn)換圖

圖3的狀態(tài)轉(zhuǎn)換圖顯示了DDR2 SDRAM控制器把外部的burst 讀請求和寫請求轉(zhuǎn)化成 DDR2 IP接口的Local Bus的所需的信號和時序的流程。具體的讀和寫流程如下:

Burst讀:當(dāng)程序在IDLE狀態(tài)接收到讀請求(rd_burst_req為高)時,會進入MEM_READ狀態(tài)并發(fā)送Local Bus的讀請求命令,讀請求的長度為rd_burst_len。發(fā)送Local Bus的讀請求結(jié)束后進入MEM_READ_WAIT狀態(tài),等待數(shù)據(jù)全部讀出完成。讀數(shù)據(jù)完成后會返回IDLE狀態(tài),并發(fā)送rd_burst_finish信號。

Burst寫:當(dāng)程序在IDLE狀態(tài)接收到寫請求(wr_burst_req為高)時,會先進入MEM_WRITE_FIRST狀態(tài),再輪流進入MEM_WRITE_BURST_BEGIN狀態(tài)和MEM_WRITE狀態(tài)。在MEM_WRITE_BURST_BEGIN狀態(tài),會置位Local Bus的local_burst_begin信號為高,說明這是一個burst的寫命令,burst長度為local_size。在MEM_WRITE狀態(tài),不需要發(fā)送 local_burst_begin信號。在MEM_WRITE_BURST_BEGIN狀態(tài)和MEM_WRITE狀態(tài)里,Local Bus的local_write_req信號一直為高,直到寫入的數(shù)據(jù)完成返回到IDLE狀態(tài),并發(fā)送wr_burst_finish 信號。

3 DDR2 SDRAM控制器的驗證

根據(jù)DDR2 SDRAM控制器狀態(tài)轉(zhuǎn)換圖用硬件開發(fā)語言verilog進行FPGA邏輯編程,編譯仿真后連接JTAG將程序燒錄到FPGA開發(fā)裝置中,測試是否產(chǎn)生讀寫請求信號,以及地址和測試數(shù)據(jù),并校驗讀和寫的數(shù)據(jù)是否正確,并將結(jié)果在SignalTap中顯示出來。

3.1 驗證流程

本方案具體驗證流程如下:

(1)在Quartus II中生成ALTMEMPHY IP核,在該過程中設(shè)置了Device family、Speed grade、DDR2的輸入?yún)⒖紩r鐘頻率和DDR2時鐘頻率等參數(shù);

(2)編寫mem_burst_v2.v程序完成對DDR2 IP的封裝;

(3)編寫ddr2_test.v測試程序?qū)崿F(xiàn)兩個功能,一個功能是產(chǎn)生讀寫請求信號、地址和測試數(shù)據(jù)并校驗讀和寫的數(shù)據(jù)是否正確,另一個功能是例化mem_burst_v2模塊和第一步中生成的DDR2 IP頂層模塊ddr2.v;

(4)程序編譯完成之后會用Quartus II的對應(yīng)仿真軟件Modelsim將程序的運行結(jié)果進行仿真觀察是否能達到預(yù)期的結(jié)果,仿真完成之后連接JTAG將程序燒錄到FPGA開發(fā)板中,使用SignalTap工具來測試和觀察DDR2讀寫的時序和信號狀態(tài)。

3.2 驗證結(jié)果

開發(fā)的程序在Quartus II中編譯后的資源報告如圖4所示,資源報告內(nèi)容主要包括項目名ddr_test、頂層文件名ddr_test、FPGA系列名Cyclone IV E、FPGA型號EP4CE30F23C8、總邏輯模塊數(shù)7907、引腳數(shù)49以及鎖相環(huán)數(shù)1。

圖4 資源報告

連接JTAG將程序燒錄到FPGA開發(fā)板中,使用SignalTap工具來測試和觀察DDR2讀寫的時序和信號狀態(tài),采樣時鐘使用DDR2 IP產(chǎn)生的phy_clk,具體波形如圖5、圖6和圖7所示。

首先可以觀察一下圖5中DDR burst寫入數(shù)據(jù)的波形,這里波形顯示向DDR2的地址空間E830A6的地址開始寫入01010101,02020202...的數(shù)據(jù)。因為這里的DDR2的burst寫length為2,所以地址信號local_address是每寫入2個數(shù)據(jù)就加2, local_burst_begin信號為第一個數(shù)據(jù)寫的時候為高,第二個數(shù)據(jù)寫的時候為低。

圖5 寫入數(shù)據(jù)圖

這里需要注意:只有當(dāng)local_ready為高和local_write_req信號都為高時,寫入的數(shù)據(jù)才是有效的數(shù)據(jù),如果local_ready信號為低,local_write_req和數(shù)據(jù)需要一直保持,等待local_ready 信號為高才行。

接下去可以觀察一下圖6中DDR2的burst讀的時序,在local_ready信號為高和local_read_req信號為高時,依次讀取地址信號local_address為E830A6,E830A8…的數(shù)據(jù)。

圖6 數(shù)據(jù)地址及信號有效圖

這里也同樣:只有當(dāng)local_ready為高和local_read_req信號都為高時,burst讀才是有效的,如果local_ready信號為低,local_read_req和地址local_address需要一直保持,等待local_ready 信號為高才行。

繼續(xù)觀察讀出的數(shù)據(jù)是否跟之前寫入的數(shù)據(jù)一致,local_read_req信號請求為高等待一段時間后,local_rddata_valid信號會變高,這里DDR2輸出有效的數(shù)據(jù)01010101,02020202....,如圖7所示,DDR2讀出的數(shù)據(jù)正是之前寫入到DDR2中的數(shù)據(jù)。

圖7 讀數(shù)據(jù)圖

根據(jù)以上的DDR2測試,可以得到在Intel的FPGA Cyclone IV系列開發(fā)板上的DDR2部分能夠穩(wěn)定地在166.7MHz時鐘頻率下工作,因為DDR2采用上下沿數(shù)據(jù)讀寫,所以數(shù)據(jù)讀寫傳輸達到330MHz的頻率。在編程時,IP核的封裝模塊即本方案中的mem_burst_v2模塊非常重要,可以簡化對DDR2 IP接口和時序控制的難度,并且能方便后續(xù)的其他模塊如讀寫模塊的使用,也能為程序的移植帶來便捷。

4 結(jié)論

本文首先介紹了DDR2 SDRAM的工作機制,包括DDR2 SDRAM的初始化、工作方式和IP核;之后根據(jù)DDR2 SDRAM的操作原理設(shè)計了DDR2 SDRAM的控制器,包括硬件設(shè)計和軟件設(shè)計兩個方面;硬件設(shè)計給出了信號連接圖,軟件設(shè)計給出了整個控制器系統(tǒng)的狀態(tài)轉(zhuǎn)換圖,包括突發(fā)模式下讀寫操作的狀態(tài)轉(zhuǎn)換;最后對設(shè)計的DDR2 SDRAM控制器進行了驗證,證明了在166.7MHz時鐘頻率下讀寫操作以及l(fā)ocal_ready和local_read_req等控制信號都可以正常作用,并且數(shù)據(jù)正確。通過本文對DDR2 SDRAM控制器的設(shè)計,大大簡化了DDR2 SDRAM的讀寫操作功能。

猜你喜歡
信號設(shè)計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設(shè)計的守護之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長個的信號
瞞天過海——仿生設(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 欧美一道本| 国产成人精品高清不卡在线| 在线看片中文字幕| 在线观看亚洲天堂| 亚洲视频二| 国产精品网曝门免费视频| a欧美在线| 国产成人艳妇AA视频在线| 国产美女无遮挡免费视频| 国产精品九九视频| 国产视频自拍一区| 日韩色图在线观看| 久青草免费在线视频| 直接黄91麻豆网站| 亚洲综合专区| 久久精品波多野结衣| 日韩精品无码免费专网站| 天天综合网亚洲网站| 成人毛片免费观看| 精品国产99久久| 精品久久久久成人码免费动漫| 成人免费视频一区| 在线观看免费国产| 激情亚洲天堂| 亚洲一区二区日韩欧美gif| 亚洲开心婷婷中文字幕| 日韩精品专区免费无码aⅴ| 尤物成AV人片在线观看| 久久精品日日躁夜夜躁欧美| 免费午夜无码18禁无码影院| 国产一级妓女av网站| 在线观看精品国产入口| 亚洲成人播放| 成人精品在线观看| 欧美笫一页| 亚国产欧美在线人成| 色综合综合网| www.精品国产| 香蕉国产精品视频| 一区二区日韩国产精久久| 国产h视频在线观看视频| 亚洲成a人片| 特级aaaaaaaaa毛片免费视频 | 亚洲中文制服丝袜欧美精品| 亚洲第一精品福利| 免费一级毛片在线播放傲雪网| 成人免费一级片| 日本在线免费网站| 青青青国产精品国产精品美女| av在线无码浏览| 国产国语一级毛片| 中文成人无码国产亚洲| 又大又硬又爽免费视频| 亚洲欧美一区在线| 四虎永久在线| 老司国产精品视频91| 亚洲码一区二区三区| 亚洲国产欧洲精品路线久久| 亚洲第一黄色网址| 国产精品嫩草影院av| 露脸真实国语乱在线观看| 最新无码专区超级碰碰碰| 在线不卡免费视频| 国产一区二区三区在线精品专区| 国产情侣一区二区三区| 国产91精品久久| 久久人搡人人玩人妻精品一| 视频在线观看一区二区| 亚洲一区免费看| 成人国产一区二区三区| 99久久免费精品特色大片| 国产三级韩国三级理| 国产一级毛片高清完整视频版| 日韩欧美视频第一区在线观看 | 2024av在线无码中文最新| 亚洲日韩欧美在线观看| 不卡无码h在线观看| 亚洲欧洲日韩综合| 国产日韩欧美在线播放| 亚洲最猛黑人xxxx黑人猛交| 人禽伦免费交视频网页播放| 久久亚洲欧美综合|