<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 基于FPGA的跨時鐘域信號處理——借助存儲器

          基于FPGA的跨時鐘域信號處理——借助存儲器

          作者: 時間:2015-02-25 來源:網(wǎng)絡(luò) 收藏

            為了達(dá)到可靠的數(shù)據(jù)傳輸,借助來完成跨時鐘域通信也是很常用的手段。在早期的跨時鐘域設(shè)計(jì)中,在兩個處理器間添加一個雙口RAM或者FIFO來完成相互間的數(shù)據(jù)交換是很常見的做法。如今的大都集成了一些用戶可靈活配置的存儲塊,因此,使用開發(fā)商提供的免費(fèi)IP核可以很方便的嵌入一些常用的來完成跨時鐘域數(shù)據(jù)傳輸?shù)娜蝿?wù)。使用內(nèi)嵌和使用外部擴(kuò)展存儲器的基本原理是一樣的,如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/270067.htm


          點(diǎn)擊看大圖


            圖1 借助存儲器的跨時鐘域傳輸

            雙口RAM更適合于需要互通信的設(shè)計(jì),只要雙方對地址做好適當(dāng)?shù)姆峙?,那么剩下的工作只是控制好存儲器的讀寫時序。FIFO本身的特性(先進(jìn)先出)決定了它更適合于單向的數(shù)據(jù)傳輸??傊?,借助存儲器進(jìn)行跨時鐘域傳輸?shù)淖畲蠛锰幵谟?,設(shè)計(jì)者不需要再花時間和精力考慮如何處理同步問題,因?yàn)檫@些工作都交給了存儲器,我們也不用關(guān)心存儲器內(nèi)部到底使用了怎樣的工作機(jī)制來解決沖突問題(當(dāng)然了,存儲芯片內(nèi)部肯定是有一套完善的同步處理機(jī)制)。我們可以把更多的時間花在數(shù)據(jù)流以及存儲器接口的控制上。借助存儲器的另一個優(yōu)勢,它可以大大提高通信雙方的數(shù)據(jù)吞吐率,它不像握手信號和邏輯同步處理機(jī)制那樣在同步設(shè)計(jì)上耗費(fèi)太多的時鐘周期,它的速度瓶頸基本就是存儲器本身的速度上限。不過,在得到便利的同時,我們也不得不以付出更多的Money作為代價。

            下文將重點(diǎn)探討異步FIFO在跨時鐘域通信中的使用。常見的異步FIFO接口如圖2所示,F(xiàn)IFO兩側(cè)會有相對獨(dú)立的兩套控制總線。若寫入請求wrreq在寫入時鐘wrclk的上升沿處于有效狀態(tài),那么FIFO將在該時鐘沿將鎖存寫入數(shù)據(jù)總線wrdata。同理,若讀請求rdreq在讀時鐘rdclk的上升沿處于有效狀態(tài),那么FIFO將把數(shù)據(jù)放置到讀數(shù)據(jù)總線rddata上,外部邏輯一般在下一個有效時鐘沿讀取該數(shù)據(jù)。

            FIFO一般還會有指示內(nèi)部狀態(tài)的一些接口信號,如圖2中的空標(biāo)志位empty、滿標(biāo)志位full,甚至還會有用多位數(shù)據(jù)線表示的FIFO當(dāng)前數(shù)據(jù)量,這些狀態(tài)標(biāo)志保證了讀寫控制不出現(xiàn)空讀和滿寫的情況。清除信號aclr在某些應(yīng)用中也是需要的,它在有效時能夠清除當(dāng)前FIFO的數(shù)據(jù),讓FIFO復(fù)位到一個空的狀態(tài)。



            圖2 常見異步FIFO接口

            如圖3所示,在特權(quán)同學(xué)設(shè)計(jì)過的一個SDRAM控制器中,就使用了兩個FIFO。由于SDRAM需要定時預(yù)刷新,并且每次讀寫時起始控制的時間開銷相對大一些,因此采用頁讀寫的方式可以大大的提高數(shù)據(jù)吞吐量,而頁讀寫方式需要對數(shù)據(jù)做一些緩存處理。另外,該SDRAM控制器所在的工程中涉及了多個時鐘域。在寫入SDRAM端是一個25MHz的時鐘,在讀SDRAM端是一個50MHz的時鐘,而SDRAM的控制則使用了100MHz的時鐘。盡管實(shí)際工程里這三個時鐘的相位關(guān)系固定,但是不做好多周期約束也很容易引起問題。

            最終,選擇在SDRAM控制器的寫入端和讀出端各使用一個異步FIFO,這既解決了數(shù)據(jù)緩存的問題,也能有效的完成跨時鐘域的信號傳輸。


          點(diǎn)擊看大圖


            圖3 用兩個FIFO設(shè)計(jì)的SDRAM控制器

          樹莓派文章專題:樹莓派是什么?你不知道樹莓派的知識和應(yīng)用

          fpga相關(guān)文章:fpga是什么


          存儲器相關(guān)文章:存儲器原理




          關(guān)鍵詞: FPGA 存儲器

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();