模塊雖小但是要有新意,首先寫一個(gè)同步FIFO,這是一個(gè)爛大街的入門級(jí)項(xiàng)目,但是我肯定不會(huì)寫的那么簡單,需求如下:
和大多數(shù)文章所寫描述的同步FIFO的需求不一樣的地方在于最后一個(gè)需求,內(nèi)部例化的sram的讀取動(dòng)作不是讀及讀出的操作。因此基于這種sram,又要兼顧FIFO的標(biāo)準(zhǔn)協(xié)議,以及需要FIFO邏輯速度到達(dá)最優(yōu),需要對設(shè)計(jì)進(jìn)行一些小的處理
下圖為本次同步FIFO設(shè)計(jì)的框圖:

設(shè)計(jì)分析:
- 使用reg0的原因
由于sram延時(shí)一拍讀出,因此就需要有reg0處理延時(shí),既只要reg0為空,寄存器就向sram讀數(shù),達(dá)到提前取數(shù),消除延時(shí)的效果。(一般sram有幾拍延時(shí)就有幾個(gè)reg0) - 使用reg1的原因
reg1用于處理邊界條件,在sram和reg0為空時(shí),沒有讀使能的情況下寫入第一個(gè)數(shù),此時(shí)第一個(gè)數(shù)如果存入sram,則讀取流程將變成sram-reg0-output,中間延遲過長,但是假如使用reg1用于存儲(chǔ)第一個(gè)數(shù)據(jù),則可以把這一拍數(shù)據(jù)延時(shí)解決掉。(且同上述,一般有幾個(gè)reg0就有幾個(gè)reg1) - 使用mux2的原因
mux2也是用于處理邊界條件,在sram和所有寄存器都為空時(shí),寫使能和讀使能同時(shí)來到,則數(shù)據(jù)bypass通過SYNC_FIFO模塊。 - mux0和mux1則用于處理上述邏輯關(guān)于數(shù)據(jù)通道切換的處理。
- 關(guān)于sram存取、各種空滿信號(hào)的判斷,就不再一一敘述,想了解這方面設(shè)計(jì)可以參見網(wǎng)上各種同步FIFO設(shè)計(jì)。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
寄存器
+關(guān)注
關(guān)注
31文章
5609瀏覽量
130019 -
sram
+關(guān)注
關(guān)注
6文章
821瀏覽量
117485 -
fifo
+關(guān)注
關(guān)注
3文章
407瀏覽量
45761 -
同步FIFO
+關(guān)注
關(guān)注
0文章
5瀏覽量
5540 -
FIFO設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
7瀏覽量
5116
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
同步FIFO設(shè)計(jì)詳解及代碼分享
FIFO (先入先出, First In First Out )存儲(chǔ)器,在 FPGA 和數(shù)字 IC 設(shè)計(jì)中非常常用。 根據(jù)接入的時(shí)鐘信號(hào),可以分為同步 FIFO 和異步 FIFO 。
發(fā)表于 06-27 10:24
?3229次閱讀
握手型接口的同步FIFO實(shí)現(xiàn)
按照正常的思路,在前文完成前向時(shí)序優(yōu)化和后向時(shí)序優(yōu)化后,后面緊跟的應(yīng)該是雙向時(shí)序優(yōu)化策略了,不過不急,需要先實(shí)現(xiàn)一下握手型同步FIFO。
可靠性設(shè)計(jì)分析系統(tǒng)
要求,需要按照可靠性工作要求開展各種各樣的可靠性設(shè)計(jì)分析工作。其實(shí),這些可靠性工作,目的解決產(chǎn)品可靠性工程問題,嚴(yán)格控制和降低產(chǎn)品質(zhì)量風(fēng)險(xiǎn)。最近,看到有一個(gè)可靠性設(shè)計(jì)分析系統(tǒng)PosVim,功能還比較
發(fā)表于 12-08 10:47
異步FIFO的設(shè)計(jì)分析及詳細(xì)代碼
本文首先對異步 FIFO 設(shè)計(jì)的重點(diǎn)難點(diǎn)進(jìn)行分析,最后給出詳細(xì)代碼。 一、FIFO簡單講解 FIFO的本質(zhì)是RAM, 先進(jìn)先出 重要參數(shù):fifo
發(fā)表于 11-15 12:52
?9259次閱讀
同步FIFO之Verilog實(shí)現(xiàn)
FIFO的分類根均FIFO工作的時(shí)鐘域,可以將FIFO分為同步FIFO和異步FIFO。
FIFO設(shè)計(jì)—同步FIFO
FIFO是異步數(shù)據(jù)傳輸時(shí)常用的存儲(chǔ)器,多bit數(shù)據(jù)異步傳輸時(shí),無論是從快時(shí)鐘域到慢時(shí)鐘域,還是從慢時(shí)鐘域到快時(shí)鐘域,都可以使用FIFO處理。
發(fā)表于 05-26 16:12
?2346次閱讀
FIFO設(shè)計(jì)—異步FIFO
異步FIFO主要由五部分組成:寫控制端、讀控制端、FIFO Memory和兩個(gè)時(shí)鐘同步端
發(fā)表于 05-26 16:17
?2282次閱讀
一個(gè)簡單的RTL同步FIFO設(shè)計(jì)
FIFO 是FPGA設(shè)計(jì)中最有用的模塊之一。FIFO 在模塊之間提供簡單的握手和同步機(jī)制,是設(shè)計(jì)人員將數(shù)據(jù)從一個(gè)模塊傳輸?shù)搅硪粋€(gè)模塊的常用選擇。
發(fā)表于 06-14 08:59
?830次閱讀
基于寄存器的同步FIFO
? FIFO 是FPGA設(shè)計(jì)中最有用的模塊之一。FIFO 在模塊之間提供簡單的握手和同步機(jī)制,是設(shè)計(jì)人員將數(shù)據(jù)從一個(gè)模塊傳輸?shù)搅硪粋€(gè)模塊的常用選擇。 在這篇文章中,展示了一個(gè)簡單的 RTL 同
基于Verilog的同步FIFO的設(shè)計(jì)方法
同步FIFO的設(shè)計(jì)主要包括讀寫地址的產(chǎn)生、數(shù)據(jù)的讀寫、以及狀態(tài)的控制。下面我們將分別介紹這三個(gè)方面的設(shè)計(jì)。
發(fā)表于 08-31 12:53
?1587次閱讀
為什么異步fifo中讀地址同步在寫時(shí)鐘域時(shí)序分析不通過?
為什么異步fifo中讀地址同步在寫時(shí)鐘域時(shí)序分析不通過? 異步FIFO中讀地址同步在寫時(shí)鐘域時(shí)序分析
同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用
同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用? 1.
同步FIFO和異步FIFO區(qū)別介紹
1. FIFO簡介 FIFO是一種先進(jìn)先出數(shù)據(jù)緩存器,它與普通存儲(chǔ)器的區(qū)別是沒有外部讀寫地址線,使用起來非常簡單,缺點(diǎn)是只能順序讀寫,而不能隨機(jī)讀寫。 2. 使用場景 數(shù)據(jù)緩沖:也就是數(shù)據(jù)寫入過快
同步FIFO設(shè)計(jì)分析
評論