• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種CPU和FPGA的快速交換數(shù)據(jù)方法

      2016-09-15 07:02:57陳慶旭朱明浩余華武
      關(guān)鍵詞:雙口數(shù)據(jù)線寄存器

      陳慶旭,朱明浩,余華武

      (1.南京國(guó)電南自自動(dòng)化有限公司,南京 211153;2.南京依維柯汽車有限公司)

      ?

      一種CPU和FPGA的快速交換數(shù)據(jù)方法

      陳慶旭1,朱明浩2,余華武1

      (1.南京國(guó)電南自自動(dòng)化有限公司,南京 211153;2.南京依維柯汽車有限公司)

      為了提高CPU讀寫FPGA的速度,提出了一種基于Burst方式的CPU和FPGA快速交換數(shù)據(jù)的方法。CPU在完成第一次讀寫之后,F(xiàn)PGA會(huì)記錄該地址,并使雙口RAM的地址自動(dòng)遞增,不需要CPU再給出地址,這樣CPU可以操作多個(gè)連續(xù)地址中雙口RAM的數(shù)據(jù)。經(jīng)過測(cè)試,該方法可以大大提高CPU和FPGA進(jìn)行數(shù)據(jù)交換的速度。

      CPU;FPGA;Burst;快速數(shù)據(jù)交換

      引 言

      隨著可編程邏輯控制器(Field Programmable Gate Array,F(xiàn)PGA)的應(yīng)用日漸廣泛,很多系統(tǒng)采用了中央處理器(Central Processing Unit,CPU)+FPGA的架構(gòu)方式。由于FPGA可以并行運(yùn)算,所以大量的運(yùn)算工作可由FPGA完成,CPU從FPGA中直接讀取計(jì)算結(jié)果,這種方式可以減少CPU的運(yùn)算時(shí)間,降低了對(duì)CPU的要求。

      目前,F(xiàn)PGA一般通過雙口RAM和CPU進(jìn)行交互,通過雙口隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)的緩沖解決FPGA和CPU的速度和并行性等問題。在CPU和FPGA之間有大量的數(shù)據(jù)需要進(jìn)行交互的場(chǎng)合,這種方式CPU讀寫數(shù)據(jù)過程需要占用大量的時(shí)間,如何提高CPU讀寫FPGA的效率已經(jīng)成為很多應(yīng)用中的一個(gè)瓶頸問題。在數(shù)據(jù)量較大的電力系統(tǒng)濾波、圖像處理等應(yīng)用場(chǎng)合,CPU讀取數(shù)據(jù)的時(shí)間是無法忽略的,甚至?xí)斐上到y(tǒng)的響應(yīng)時(shí)間無法滿足要求。

      盡管目前可以采用PCI-E、SRIO等方式實(shí)現(xiàn)CPU和FPGA之間的快速數(shù)據(jù)交換,但是這些方式對(duì)CPU和FPGA具有較高的要求,在某些成本比較敏感的場(chǎng)合是無法使用的。

      本文提出了一種不需要增加額外成本,采用Burst方式對(duì)FPGA進(jìn)行讀寫的方法。在CPU和FPGA有大量數(shù)據(jù)進(jìn)行交互的場(chǎng)合,采用這種方式大大降低了CPU讀寫FPGA所需要的時(shí)間,提高了CPU讀寫FPGA的效率。

      1 Burst模式的基本原理

      目前很多CPU都支持Burst讀寫模式,通過該模式可以快速連續(xù)地完成多次讀寫。目前該模式一般僅用在了DRAM的讀寫操作中。圖1是DRAM芯片的讀時(shí)序。

      圖1 DRAM的Burst時(shí)序

      當(dāng)DRAM芯片收到讀命令后,需要等待一段時(shí)間后才可以輸出數(shù)據(jù),該值稱為CAS Latency。CPU給出讀命令后,等待CAS Latency時(shí)間后,DRAM就可以連續(xù)輸出后續(xù)地址的數(shù)據(jù)傳送給CPU,數(shù)據(jù)的數(shù)量可以由Burst Length進(jìn)行設(shè)置。

      在DRAM內(nèi)部維護(hù)了一個(gè)地址寄存器,每當(dāng)輸出一個(gè)數(shù)據(jù)后,內(nèi)部地址寄存器自動(dòng)加1,讀取下一個(gè)地址中的數(shù)據(jù),由于每次讀取數(shù)據(jù)都經(jīng)過了CAS Latency的延時(shí),在第一個(gè)輸出后,在下一個(gè)周期的時(shí)候,下一個(gè)地址的數(shù)據(jù)進(jìn)行輸出,這樣在外部CPU看來,等待CAS Latency時(shí)間后,每個(gè)時(shí)鐘周期都可以讀到DRAM的數(shù)據(jù)。采用這種方式后,可以大大提高CPU和DRAM交換數(shù)據(jù)的效率。

      2 Burst模式CPU和FPGA交換數(shù)據(jù)方法

      參考DRAM的讀寫過程,把Burst模式應(yīng)用到CPU和FPGA之間進(jìn)行數(shù)據(jù)交換。FPGA內(nèi)部的雙口RAM地址不再由CPU給出的地址直接控制,而是使用FPGA內(nèi)部維護(hù)的地址寄存器進(jìn)行設(shè)置。

      圖2 CPU和FPGA的連接

      另外,為了實(shí)現(xiàn)以上工作方式,還需要CPU和FPGA的工作時(shí)鐘是同步的,只有這樣,CPU和FPGA才可以按照同樣的步調(diào)進(jìn)行工作,為了實(shí)現(xiàn)這種功能,需要CPU和FPGA使用同一個(gè)外部時(shí)鐘。CPU和FPGA的連接如圖2所示。

      另外,CPU需要能夠支持Burst功能,在Freescale的MPC82XX系列CPU中,每個(gè)片選輸出都可以靈活地配置Burst的長(zhǎng)度、等待周期等,其他的CPU、DSP也有類似的功能。

      當(dāng)CPU開始對(duì)FPGA進(jìn)行讀寫操作的時(shí)候,F(xiàn)PGA會(huì)把CPU給出的地址存儲(chǔ)到內(nèi)部地址寄存器,同時(shí)雙口RAM開始輸出該地址的數(shù)據(jù)。在下一個(gè)時(shí)鐘周期到來時(shí),F(xiàn)PGA會(huì)把內(nèi)部地址寄存器的值加1,內(nèi)部雙口RAM開始輸出下一個(gè)地址中的數(shù)據(jù),依此類推,CPU便可以連續(xù)地從FPGA內(nèi)部讀取到雙口RAM中的數(shù)據(jù)。圖3給出Burst長(zhǎng)度等于8時(shí),CPU讀取FPGA內(nèi)部雙口RAM的時(shí)序圖。

      圖3 FPGA的Burst時(shí)序

      CPU給出/CS和/RD信號(hào)的同時(shí),也給出了雙口RAM讀地址,在FPGA內(nèi)部鎖存該地址并把其送到雙口RAM的地址端,在之后的每個(gè)時(shí)鐘周期內(nèi),F(xiàn)PGA會(huì)自動(dòng)把雙口RAM的輸入地址加1,輸出下一個(gè)地址雙口RAM中的數(shù)據(jù)。在圖3中,假定FPGA雙口RAM的輸出延時(shí)是2個(gè)時(shí)鐘周期,那么CPU將會(huì)在/RD信號(hào)2個(gè)周期后讀到地址Addr0中的數(shù)據(jù)Dout0,第3個(gè)周期讀到地址Addr0+1中的數(shù)據(jù)Dout1,依此類推,在此之后的每個(gè)時(shí)鐘周期,CPU都可以讀到FPGA中的一個(gè)數(shù)據(jù)。

      采用Burst模式要求數(shù)據(jù)線的各位輸出延時(shí)必須基本一致,只有這樣才可以保證各位數(shù)據(jù)同時(shí)到達(dá)CPU。表1是FPGA編譯報(bào)告中所給出的數(shù)據(jù)輸出延時(shí)的報(bào)告。

      表1 FPGA的數(shù)據(jù)輸出延時(shí)(單位:ns)

      可以看到,16位數(shù)據(jù)線的輸出延時(shí)均為10~20 ns。以100 MHz外頻的MPC8247為例,由于CPU的每個(gè)時(shí)鐘周期是10 ns,所以數(shù)據(jù)輸出延時(shí)取為2個(gè)時(shí)鐘周期,此時(shí)建立時(shí)間最短的是DATA[11]信號(hào),等于3.746 ns;保持時(shí)間最短的是DATA[13]信號(hào),等于3.799 ns。查閱MPC8247的手冊(cè),CPU要求的建立時(shí)間不小于3.5 ns,保持時(shí)間不小于0.5 ns,時(shí)序上是可以滿足要求的。當(dāng)不同數(shù)據(jù)線之間的延時(shí)差異比較大時(shí),可以通過時(shí)序約束來保證不同數(shù)據(jù)線之間延時(shí)的一致性。

      結(jié) 語

      對(duì)于外頻是100 MHz的CPU,每讀一次至少需要4個(gè)時(shí)鐘周期,那么讀8次共需要32個(gè)時(shí)鐘周期,而采用上面的方式后,在10個(gè)時(shí)鐘周期內(nèi)就可以讀到8個(gè)數(shù)據(jù),讀寫速度至少提高了3.2倍。表2是MPC8247在關(guān)閉中斷的情況下,實(shí)際測(cè)試得到的1 s內(nèi)CPU讀寫FPGA的次數(shù)和吞吐率(數(shù)據(jù)位寬按照16位計(jì)算)。

      表2 是否采用Burst方式的性能對(duì)比

      可以看到,采用Burst方式后,CPU讀數(shù)據(jù)的速度大約提高了3.7倍左右,與理論上基本相符。該方案在產(chǎn)品中經(jīng)過長(zhǎng)期應(yīng)用,可靠性良好。

      [1] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2009.

      [2] 閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].4版.北京:高等教育出版社,2004.

      [3] 羅苑棠.CPLD/FPGA常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2007.

      [4] Micron Inc.MT48LC4M32 User’s guide,2001.

      [5] Freescale Inc.MPC8272 PowerQUICC II Family Reference Manual,2005.

      陳慶旭(工程師)、余華武(高級(jí)工程師),主要研究方向?yàn)槔^電保護(hù)平臺(tái);朱明浩(助理工程師),主要研究方向?yàn)樽詣?dòng)化控制。

      Method of Exchange Data Quickly Between CPU and FPGA

      Chen Qingxu1,Zhu Minghao2,Yu Huawu1

      (1.Nanjing SAC Automation Co.,Ltd.,Nanjing 211153,China;2.Nanjing IVECO Co.,Ltd.)

      To improve the reading and writing speed of the CPU for FPGA,a method of exchange data quickly between CPU and FPGA based on the Burst mode is proposed.There is a base address register in FPGA.After the CPU finished the first reading command,FPGA can record the address and increase the dual-port RAM address automatically without the address provided by CPU.So the CPU can operate multiple data of the consecutive address.The test results show that the method can improve the data exchanging speed between CPU and FPGA.

      CPU;FPGA;Burst;exchange data quickly

      TP368.1

      A

      (責(zé)任編輯:薛士然2016-02-29)

      猜你喜歡
      雙口數(shù)據(jù)線寄存器
      數(shù)據(jù)線長(zhǎng)短影響充電速度
      雙口形式的戴維寧定理在電路分析中的應(yīng)用
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      雙口RAM在機(jī)載嵌入式系統(tǒng)中的應(yīng)用
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      數(shù)據(jù)線接口超聲波焊接設(shè)備設(shè)計(jì)
      焊接(2016年7期)2016-02-27 13:05:07
      會(huì)叫喚的數(shù)據(jù)線
      雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
      雙口RAM在無人機(jī)三余度飛控計(jì)算機(jī)數(shù)據(jù)交換中的應(yīng)用
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      莲花县| 茂名市| 惠水县| 四川省| 鸡西市| 瓮安县| 洛南县| 卓资县| 抚顺市| 宁化县| 岑巩县| 内丘县| 烟台市| 六枝特区| 深水埗区| 曲麻莱县| 凌海市| 昭苏县| 孟连| 高雄市| 页游| 南开区| 多伦县| 白河县| 高密市| 四川省| 开平市| 攀枝花市| 南雄市| 鲁山县| 临颍县| 鱼台县| 仙游县| 兴安盟| 西贡区| 渝北区| 宁乡县| 潍坊市| 佛冈县| 平遥县| 富顺县|