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

DDR3上的雙讀寫通道設計與實現(xiàn)

2018-04-17 08:42:39葉李萍王經坤姚遠程
自動化儀表 2018年4期
關鍵詞:用戶設計

唐 瑞,葉李萍,王經坤,姚遠程

(1.西南科技大學信息工程學院,四川 綿陽 621010;2.西華師范大學商學院,四川 南充 637000)

0 引言

第三代雙倍數據傳輸速率同步動態(tài)隨機存儲器(double-data-rate three synchronous dynamic random access memory,DDR3 SDRAM)自面世以來,以其相對于DDR2更高的運行效能與更低的電壓功耗等優(yōu)勢,迅速在諸多領域中取代了DDR2,成為新一代高速、大容量數據緩存器中的較好選擇[1]。通常Xilinx官方提供的DDR3 IP核中默認只有一套讀寫通道,讀寫共用同一套地址[2]。本設計是在DDR3上,切割出兩套獨立讀寫通道,基于時分復用(time division multiplexing,TDM)原則,使每一套讀寫接口互不影響。在第一套接口中向DDR3寫入數據的同時,該設計實現(xiàn)了向第二套接口中寫入或者讀出數據,增強了DDR3的靈活性,提高了DDR3的使用效率。

1 DDR3的雙讀寫通道設計

隨著高速圖像處理技術的飛速發(fā)展,在實現(xiàn)圖像算法的過程中,往往需要實時處理大量的數據,所以必須采用高速數據緩存器DDR3作為實時數據緩存工具。目前,各大FPGA廠商都提供了對DDR3讀寫控制的IP核。但該IP核僅支持一套讀寫接口[3],無法同時進行讀寫。這是由于DDR3本身的特性所決定的。為了彌補這一缺點,需要設計一種從用戶接口到DDR3的橋接電路。該電路使用時分復用的設計理念,能充分提高DDR3的讀寫效率;同時,結合外部的緩存器先入先出隊列(first input first output,FIFO),可同時實現(xiàn)對DDR3的讀寫操作。

2 實現(xiàn)方案設計

本文使用Xilinx公司提供的IP核,生成控制DDR3的控制器核(memory interface generator,MIG),并與用戶接口[4]。本設計在該控制器的基礎上,通過時分復用原則,將一套不獨立的讀寫通道搭建為雙獨立的讀寫通道,能滿足用戶同時讀寫的要求。

2.1 硬件模塊結構

整個硬件模塊分為4大部分:用戶接口模塊,時分復用橋接電路模塊,Xilinx公司所提供的DDR3控制器以及DDR3芯片。其中,用戶接口模塊作為面向用戶的接口,包含兩套獨立的讀寫接口。此模塊是發(fā)起讀寫操作的源頭。時分復用橋接電路模塊可實現(xiàn)雙讀寫端口向單讀寫端口的轉換。此模塊內部包含4個FIFO,用于DDR3讀寫雙通道的數據臨時緩存。DDR3控制器由IP核MIG生成,能完成對DDR3寫入數據和讀出數據的操作,是DDR3的主要控制器,但其僅有一套非獨立讀寫通道。DDR3高速數據緩存器屬于外部硬件器件,可實現(xiàn)數據存儲功能。整個系統(tǒng)硬件設計結構如圖1所示。

圖1  系統(tǒng)硬件設計結構圖Fig.1 Structure of system hardware design

2.2 用戶接口模塊設計

用戶接口包括兩套獨立的讀寫接口port1和port2,可實現(xiàn)用戶數據、用戶配置信息與橋接電路模塊之間的交互。在每套讀寫接口中均有配置端口和數據端口。配置端口包括用戶需要讀(寫)的數據長度,讀(寫)操作的起始地址,讀(寫)命令信號的觸發(fā),讀(寫)操作完成反饋信號;數據端口包括寫入的數據信號,寫入數據有效信號,讀出數據有效信號與讀出的數據信號。port1與port2兩套讀寫接口完全一致,皆包含以上信息。本設計所采用的同步時鐘是由DDR3控制器核輸出的用戶時鐘。該同步時鐘為200 MHz。

2.3 時分復用橋接電路設計

2.3.1時分復用狀態(tài)機設計

本文采取時分復用的思想,通過數據切換器,使兩套讀寫接口分時地與DDR3控制器接口相連接。每組讀寫接口負責讀和寫兩種任務。所以,總的狀態(tài)可以分為4種:port1寫數據任務,port1讀數據任務,port2寫數據任務,port2讀數據任務。由用戶接口模塊配置的指令決定執(zhí)行哪些指令。用戶可以同時下達多個指令任務,由時分復用輪循機制輪流執(zhí)行任務,以達到同時讀寫的效果[5]。

為了讓4個任務在執(zhí)行時避免因建立沖突而相互獨立,需要定義4個狀態(tài)。每個狀態(tài)對應執(zhí)行一個任務。狀態(tài)機在空閑狀態(tài)中經過條件判斷結構,確定跳轉到用戶下達的任務狀態(tài);進入任務狀態(tài)后,開始任務執(zhí)行計時;任務計時計滿后,無論該任務是否執(zhí)行完畢,都通過一個額外的結束狀態(tài)跳轉到空閑狀態(tài),以完成循環(huán)。時分復用狀態(tài)機設計如圖2所示。

圖2 時分復用狀態(tài)機設計圖Fig.2 Design of the TDM state machine

圖2中,IDEL為空閑狀態(tài)。在該狀態(tài)中,可實現(xiàn)4種任務命令檢測,并對用戶已下達的多個任務指令進行執(zhí)行順序的劃分。任務執(zhí)行順序的劃分采用了1個2 bit位寬的單向計數器flag來實現(xiàn)。flag值為1,對應port1寫數據任務;flag值為2,對應port1讀數據任務;flag值為3,對應port2寫數據任務;flag值為0,對應port2讀數據任務。規(guī)定flag在任務執(zhí)行計時滿8個時鐘周期之后,不管任務是否完成,都跳轉到空閑狀態(tài),flag自動單向加1。flag的不同值代表著對不同任務指令情況進行檢測。當flag為1時,若檢測到用戶下達過port1寫數據任務,而此時又是在port1寫狀態(tài)中,則執(zhí)行該任務;若沒有檢測到用戶下達過port1寫數據任務,則返回,flag自動單向加1,并進行下一個任務狀態(tài)檢測[6]。

2.3.2實現(xiàn)時間片的劃分

用戶下達的不同指令任務信息會存儲在不同的對應寄存器中。當上電復位時,該寄存器值為0。當用戶發(fā)送讀(寫)指令任務(上升沿脈沖觸發(fā))時,該寄存器值置1,完成任務下達。當任務執(zhí)行一段時間后,如通過地址長度檢測到該任務被執(zhí)行完成,則該命令寄存器被清零,完成任務。

為了實現(xiàn)用戶發(fā)布的指令任務能同時進行,設計中若單個任務耗時長于8個時鐘單位,則該任務不能被一次性執(zhí)行完畢,而是采用任務執(zhí)行計時的機制。通過定義一個任務執(zhí)行時間計數器,無論任務是否執(zhí)行完畢,只要該計數器達到閾值,便立即跳出執(zhí)行狀態(tài)并回到IDEL,flag加1,自動檢測執(zhí)行其他隊列任務。這樣使用輪循的時分復用機制,能滿足同時讀寫的目標。該過程完成了對DDR3執(zhí)行各種任務時間片的切分。設計中所設置的兩組接口讀寫數據任務定時閾值為8個時鐘周期,同步時鐘為200 MHz[7]。

在經過多次循環(huán)后,用戶發(fā)布的所有任務被執(zhí)行完畢。在此過程中,讀寫數據個數計數器對任務中讀寫的數據總量進行計數。系統(tǒng)每讀寫一個數據,則與任務相對應的讀寫數據個數計數器便累加一次。當累計值達到用戶配置的讀寫數據個數(用戶配置讀寫數據長度,通過讀寫數據長度來換算出具體的讀寫數據個數)時,判定本次任務執(zhí)行完畢,從而將該任務對應的寄存器中的任務信號置0。

系統(tǒng)檢測到讀(寫)命令后,即跳轉到相應的狀態(tài)執(zhí)行任務。每個不同的任務狀態(tài)映射為對DDR3控制器讀(寫)操作的不同配置。在進入不同狀態(tài)的同時,對應任務起始地址端口的地址值被寄存在相應的地址寄存器中。4個這樣的地址寄存器通過任務狀態(tài)控制的數據選擇器連接到DDR3控制器的地址端口。在DDR3和對應FIFO準備完畢的前提下,每次對App_wdf_data端口讀(寫)一個數據,地址寄存器便自增8。由于該端口位寬為512 bit,而DDR3存儲單元位寬只有64 bit,即相當于一次存取了8個DDR3單元數據。當地址寄存器計數至用戶配置的地址緩存長度時,讀(寫)數據個數計數器同時記滿,任務執(zhí)行完畢,解除任務指令,任務寄存器有效信號置0。

用戶接口電路中使用了4個FIFO作為數據緩存。待寫入DDR3的數據被緩存在寫數據FIFO中。寫數據FIFO輸入位寬為256 bit,輸出位寬為512 bit,以便與DDR3控制器對接。待讀取的數據被緩存在讀數據FIFO中。讀數據FIFO的輸入位寬為512 bit,輸出位寬為256 bit,以便與用戶接口對接。當讀寫FIFO出現(xiàn)任何讀空或因寫滿而導致其未準備好時,整個系統(tǒng)的任務都將暫停執(zhí)行,直到FIFO恢復正常才可繼續(xù)執(zhí)行。

3 板級實際測試

系統(tǒng)采用Xilinx的SUME開發(fā)板作為實現(xiàn)平臺。FPGA采用Vertex7系列的XC7VX690TFFG1761。在Xilinx的VIVADO集成開發(fā)環(huán)境中,根據以上硬件設計方法,采用VerilogHDL建模實現(xiàn)系統(tǒng)功能。編寫用戶模塊產生數據和控制信息源,通過綜合布局、布線生成比特流文件;然后將比特流文件下載到FPGA板卡上,借助集成在VIVADO中的在線邏輯分析儀工具Debug,實現(xiàn)對測試信號的抓取分析[8]。

經實際上板測試,若同時往port1與port2寫入一定長度的數據:分析Debug工具抓取到的結果,基本實現(xiàn)了同時向DDR3的port1與port2寫入數據,數據和有效信號都能同時從用戶接口模塊送入時分復用橋接電路。但從抓取DDR3核的寫入數據端口可以看到,實際上數據是被輪流寫入port1與port2的,地址在兩個接口間輪流切換,直至寫完用戶規(guī)定的地址長度。同樣地,同時對寫入數據進行讀取,分別從port1里讀取剛才寫入port1的數據,從port2里讀出剛才寫入port2的數據。此時可以看出,雖從總體上是兩個端口同時在讀數據,但實際放大后是分時間片讀數據。port1和port2接口交替讀取,提高了DDR3實際使用效率,沒有閑置狀態(tài)。

為了驗證數據的正確性,定義了一個累加數據源,同時向port1與port2寫入一定大小的數據;分別利用Debug工具抓取用戶接口模塊的寫入數據與DDR3核接口的寫入數據,對比其是否相同,以確定數據是否成功寫入。從板級測試可以確認,在按照規(guī)定時序送入port1與port2的累加數時,從0開始累加,并隨著數據有效信號每次加1,一直寫到規(guī)定長度。因此,從地址對應的數據來看,寫入DDR3數據驗證成功。而在寫入數據完成之后,port_wr_done信號拉高,告知用戶已經準備好讀取數據。用戶接口此時送入讀取指令,在port1和port2中同時讀取剛才寫入的數據。從Debug的信息來看,port1與port2能同時讀取數據,且數據為從0開始依次累加,與寫入數據一致,所以DDR3讀取驗證成功。此外,用戶每次下達任務時都能在DDR3的任意地址范圍內選擇讀、寫數據的地址,比如選擇性讀取幾段而非全部數據,以此來測試本設計的靈活性。板級測試表明,DDR3能按要求靈活選擇寫入或讀出地址,各功能可正常使用。

4 結束語

基于Xilinx公司提供的DDR3 IP核控制器MIG,完成了在DDR3上切割為雙獨立讀寫通道的用戶接口。兩套接口互不干擾,能同時完成讀寫操作[9]。設計了一種時分復用橋接電路,將DDR3 IP核MIG提供的一套控制接口搭建為兩套獨立的用戶讀寫接口,通過數據切換器使兩套用戶讀寫接口按時間片分時與DDR3控制器接口相連。通過Virtex-7 XC7V690T板級測試,證明了該DDR3雙讀寫通道控制器能高速、穩(wěn)定、有效地工作,能滿足用戶同時進行兩套接口的讀寫操作;用戶接口操作時鐘達到200 MHz,DDR3內部數據存儲時鐘達到800 MHz。此雙通道DDR3緩存器適用于各種需要大量高速緩存數據的系統(tǒng)的研發(fā)工作,突破了傳統(tǒng)DDR3僅有一套非獨立讀寫接口的局限,提高了DDR3的靈活性與工作效率。

參考文獻:

[1] 唐瑞,姚遠程,秦明偉.高速圖像模擬源的研究與實現(xiàn)[J].自動化儀表,2017,38(8):40-44.

[2] 嚴振杰,俞磊,周鵬成.AP1000無線通信系統(tǒng)電磁兼容性試驗設計[J].自動化儀表,2017,38(2):82-85.

[3] 董旭明,李志斌.計算機視覺在并聯(lián)機器人運動學標定中的應用[J].自動化儀表,2016,37(5):16-19.

[4] WANG B P,DU J S,BI X.High bandwidth memory interface design based on DDR3 SDRAM and FPGA[C]//International Soc Design Conference,Gyeongju,2016.

[5] 高勝.高速采樣數據存儲控制器的設計與實現(xiàn)[D].成都:電子科技大學,2016.

[6] ANIL L,SIDDHARTH V,MICHAEL P.A Case Study:Power measurement and optimization of DDR3 DIMM in servers[C]//2015 IEEE Electrical Design of Advanced Packaging and Systems Symposium,Bangalore,2015.

[7] HITESH S,MERVIN J,DAVID S.DDR3 Interconnect optimization-signal integrity and timing analysis perspective[C]//2015 International Conference on Control,Electronics,Renewable Energy and Communications,Bandung,2015.

[8] 畢然.基于DDR3的CMOS高速圖像采集系統(tǒng)的FPGA設計與實現(xiàn)[D].哈爾濱: 哈爾濱理工大學,2015.

[9] JANESKV J,RIZZO N D,HOUSSAMEDDINE D.Device performance in a fully functional 800MHz DDR3 spin torque magnetic random access memory[C]//Memory Workshop (IMW),2015 5th IEEE International,Taipei,2015.

猜你喜歡
用戶設計
何為設計的守護之道?
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: 久久精品人妻中文视频| 美女免费黄网站| 精品国产污污免费网站| 亚洲男女天堂| a级毛片免费播放| 亚洲电影天堂在线国语对白| 一本大道视频精品人妻| 欧美中文一区| 精品少妇人妻av无码久久| 久久九九热视频| 日本欧美精品| 美女免费精品高清毛片在线视| 亚洲无码免费黄色网址| 国产亚洲精品资源在线26u| 国产91在线|中文| 亚洲国产精品人久久电影| 精品福利网| 欧美精品另类| 91av国产在线| 国产精品成人一区二区不卡| 日韩第一页在线| 国产精品部在线观看| 天天做天天爱夜夜爽毛片毛片| 一本久道久综合久久鬼色| 看你懂的巨臀中文字幕一区二区| 国产人人射| 国产理论最新国产精品视频| 亚洲国产看片基地久久1024| 免费无码又爽又黄又刺激网站| 99热这里都是国产精品| a毛片基地免费大全| 久久久黄色片| www.youjizz.com久久| 无码日韩精品91超碰| av在线手机播放| 伊人久久久久久久| 国产日韩欧美成人| 国产杨幂丝袜av在线播放| 国产在线自乱拍播放| 在线精品自拍| 久久精品aⅴ无码中文字幕| 国产成人1024精品| 好吊妞欧美视频免费| V一区无码内射国产| 精品三级在线| 亚洲综合婷婷激情| 99免费视频观看| 亚洲第一成年免费网站| 99一级毛片| 无码精品国产dvd在线观看9久| 99激情网| 欧美人与动牲交a欧美精品| 福利国产微拍广场一区视频在线| 伊人国产无码高清视频| 99re66精品视频在线观看| 亚洲综合色婷婷中文字幕| 欧美午夜视频在线| 久久精品亚洲热综合一区二区| 亚洲 欧美 偷自乱 图片| 亚洲无码视频一区二区三区 | 久久国产拍爱| 国产主播福利在线观看| 在线播放国产一区| 久久激情影院| 国产成人亚洲毛片| 日韩欧美中文| 午夜不卡视频| 色网站在线视频| 玖玖免费视频在线观看| 永久免费AⅤ无码网站在线观看| 亚洲无码一区在线观看| 国产精品视频第一专区| 色悠久久综合| 人妖无码第一页| 亚洲欧美成人综合| 亚洲三级成人| 久久这里只有精品66| 91在线无码精品秘九色APP| 国产日韩欧美中文| 久操中文在线| 中国毛片网| 国产成人精品日本亚洲|