<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > FPGA研發(fā)之道(12)-設計不是湊波形(二)FIFO(下)

FPGA研發(fā)之道(12)-設計不是湊波形(二)FIFO(下)

作者: 時(shí)間:2014-11-03 來(lái)源:網(wǎng)絡(luò ) 收藏

  設計中除了上篇所介紹的功能之外, 還有以下作為以下功能使用:

本文引用地址:http://dyxdggzs.com/article/264819.htm

  (1) 內存申請

  在軟件設計中,使用malloc()和free()等函數可以用于內存的申請和釋放。特別是在有操作系統的環(huán)境下,可以保證系統的內存空間被動(dòng)態(tài)的分配和使用,非常的方便。如果在內部實(shí)現此動(dòng)態(tài)的內存分配和申請,相對來(lái)說(shuō)較為復雜,例如某些需要外部數據存儲且需動(dòng)態(tài)改變的應用需求下,需要對外部DDR(或等)的存儲空間,進(jìn)行動(dòng)態(tài)的分配和釋放。通過(guò)使用作為內存分配器,雖然比不上軟件的靈活和方便,但是使用也較為簡(jiǎn)便。

  舉例說(shuō)明假設外部存儲空間為8Mbyte,可將其劃分為8192個(gè)1Kbyte空間。并將數值0-8191存儲中,FIFO內部存儲所標示可用的內存空間。如下圖所示。

  

 

  首先,進(jìn)行內存的初始化,即將0-8191寫(xiě)入FIFO中。

  如需申請內存后,從FIFO中讀取值A,然后根據A的標示,寫(xiě)入A所指示的外部存儲區(DDR)中相應的位置,即申請{A,10’h0_00} ->{A,10’h3_FF}的空間區域。

  如釋放內存后,即可向FIFO中寫(xiě)入相應的值。即可保證下次該空間能夠被設計使用。

  在此種設計中,FIFO承擔了內存分配和釋放器的角色。此時(shí)只能申請或釋放最小單元倍數的內存空間,如本例所示:為1Kbit。如FIFO讀空,則代表申請內存失敗,需要等待其他塊內存釋放后再寫(xiě)入FIFO中,才能再次申請。

  (2) 串并轉換

  對于串并轉換,可能對于FPGA工程師來(lái)說(shuō),非常常見(jiàn),但是如果有專(zhuān)門(mén)的IP實(shí)現此功能,可簡(jiǎn)化設計,減少出錯及驗證的工作量。例如:對于外部輸入的需要進(jìn)行串并轉換的信號,并進(jìn)行存儲的信號,如設計進(jìn)行串并轉換在存儲等操作,設計,可以直接通過(guò)例化讀寫(xiě)位寬不一致的FIFO,例如1入8出的FIFO,可直接將外部輸入信號直接轉換成8BIT信號并進(jìn)行存儲后,供后續處理使用(其他的)。

  (3) 業(yè)務(wù)優(yōu)先級劃分

  通過(guò)FIFO設置不同水位線(xiàn),可以劃分不同的業(yè)務(wù)優(yōu)先級,保證高業(yè)務(wù)優(yōu)先級數據流在帶寬受限時(shí),優(yōu)先通過(guò),而低業(yè)務(wù)優(yōu)先級只能在滿(mǎn)足高優(yōu)先級需求后有多余的帶寬時(shí)才能通過(guò)。并且可以劃分多個(gè)優(yōu)先級,滿(mǎn)足多種業(yè)務(wù)的需求。設計將在以后篇幅中詳述。

  (4)固定帶寬設定

  通過(guò)對FIFO接口的讀出使能,能夠保證實(shí)現固定帶寬的輸出,例如FIFO讀接口為32bit,而讀時(shí)鐘為50Mhz,則輸出為1.6Gbit/S。如實(shí)現固定帶寬的輸出(如1Gbit/S),有兩種方式,一種可以通過(guò)降低時(shí)鐘頻率到31.25Mhz。另一種方式,可通過(guò)讀信號中間插入等待周期,如果讀出長(cháng)度為N的數據所需時(shí)鐘周期為M,則需等待(3M/5)的周期,從而降低至1Gbit/S的處理能力,這在某些需要進(jìn)行流量限制的業(yè)務(wù)方式中使用。

  對于FIFO來(lái)說(shuō),作為FPGA內部資源的一個(gè)常用器件,最常見(jiàn)應用于異步時(shí)鐘域劃分和緩沖數據,但不僅限于此,簡(jiǎn)化設計、減少耦合、輸入輸出接口固定,便于仿真和驗證,都是使用FIFO帶來(lái)的設計上的益處。

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




關(guān)鍵詞: FPGA FIFO SRAM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>