<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è) > EDA/PCB > 設計應用 > 基于Verilog HDL語(yǔ)言的32X8 FIFO設計

基于Verilog HDL語(yǔ)言的32X8 FIFO設計

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

摘要:介紹了的基本概念、設計方法和步驟,采用了一種新穎的讀、寫(xiě)地址寄存器和雙體存儲器的交替讀、寫(xiě)機制,實(shí)現了的基本功能,同時(shí)使本 擁有可同時(shí)讀、寫(xiě)的能力,完全基于 語(yǔ)言實(shí)現了電路功能并應用Synopsys公司的DesignCompiler和VCS對其進(jìn)行綜合、仿真。

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

對基于單體存儲器的FIFO,作為一種數據緩沖器,其數據存放結構和RAM是一致的,只是存取方式有所不同。因RAM中的各存儲單元可被隨機讀寫(xiě),故FIFO的隊首位置及隊列長(cháng)度均可浮動(dòng)。為此,需要用兩個(gè)地址寄存器,分別存儲讀地址(即隊首元素地址)和寫(xiě)地址(即隊尾元素地址加1)。在讀寫(xiě)過(guò)程中FIFO所存儲的信息并不移動(dòng),而是通過(guò)改變讀地址或寫(xiě)地址來(lái)指示隊首隊尾。

FIFO的設計,采用了雙體存儲器的交替讀寫(xiě)機制,使得在對其中一個(gè)存儲器寫(xiě)操作的同時(shí)可以對另一個(gè)存儲器進(jìn)行讀操作;對其中一個(gè)存儲器讀操作的同時(shí)可以對另一個(gè)存儲器進(jìn)行寫(xiě)操作。實(shí)現了高速數據緩沖,速度比單體存儲器的FIFO提高了一倍。

1 指針以及滿(mǎn)空信號的產(chǎn)生

空/滿(mǎn)標志的產(chǎn)生是FIFO的核心部分。如何正確設計此部分的邏輯,直接影響到FIFO的性能。

對于同步FIFO,讀寫(xiě)指針都指向一個(gè)內存的初始位置,每進(jìn)行一次讀寫(xiě)操作,相應的指針就遞增一次,指向下一個(gè)內存位置。當指針移動(dòng)到了內存的最后一個(gè)位置時(shí),它又重新跳回初始位置。在FIFO非滿(mǎn)或非空的情況下,這個(gè)過(guò)程將隨著(zhù)讀寫(xiě)控制信號的變化一直進(jìn)行下去。如果FIFO處于空的狀態(tài),下一個(gè)讀動(dòng)作將會(huì )導致向下溢出(underflow),一個(gè)無(wú)效的數據被讀出;同樣,對于一個(gè)滿(mǎn)了的FIFO,進(jìn)行寫(xiě)動(dòng)作將會(huì )導致向上溢出(overflow),一個(gè)有用的數據被新寫(xiě)入的數據覆蓋。這兩種情況都屬于誤動(dòng)作,因此需要設置滿(mǎn)和空兩個(gè)信號,對滿(mǎn)信號置位表示FIFO處于滿(mǎn)狀態(tài),對滿(mǎn)信號復位表示FIFO非滿(mǎn),還有空間可以寫(xiě)入數據;對空信號置位表示FIFO處于空狀態(tài),對空信號復位表示FIFO非空,還有有效的數據可以讀出。當讀指針和寫(xiě)指針相等也就是指向同一個(gè)內存位置的時(shí)候,FIFO可能處于滿(mǎn)或空兩種狀態(tài)??梢酝ㄟ^(guò)不同的方法判斷或區分FIFO究竟是處于滿(mǎn)狀態(tài)還是空狀態(tài),也就是究竟是寫(xiě)指針從后趕上了讀指針,還是讀指針從后趕上了寫(xiě)指針。

本文所應用的方法是分別將讀、寫(xiě)地址寄存器擴展一位,將最高位設置為狀態(tài)位,其余低位作為地址位,指針由地址位以及狀態(tài)位組成。巧妙地應用地址位和狀態(tài)位的結合實(shí)現對空、滿(mǎn)標志位的控制。當讀寫(xiě)指針的地址位和狀態(tài)位全部吻合的時(shí)候,讀寫(xiě)指針經(jīng)歷了相同次數的循環(huán)移動(dòng),也就是說(shuō),FIFO處于空狀態(tài)(圖1(a));如果讀寫(xiě)指針的地址位相同而狀態(tài)位相反,寫(xiě)指針比讀指針多循環(huán)一次,標志FIFO處于滿(mǎn)狀態(tài)(圖1(b))。


圖1 FIFO處于的狀態(tài)


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: Verilog 32X8 FIFO HDL

評論


相關(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>