在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣設計一個同步FIFO?(3)

jf_78858299 ? 來源:IC加油站 硅谷老李 ? 作者:硅谷老李 ? 2023-05-04 15:59 ? 次閱讀

這一篇來講一下如何解決上一篇[如何設計一個同步FIFO(二)]最后提出的問題。

在上一篇中,我們設計的基于雙端口SRAM的同步FIFO結構如下,

我們說這個結構之所以使得FIFO的輸出Q在讀完SRAM之后保持穩定,其實需要SRAM本身可以保持RDATA在讀操作之后的多個周期保持穩定。即SRAM本身的讀時序如下圖所示:圖中cycle 4,5,6都沒有讀操作,SRAM的RDATA依然保持D0不變。

但是如果SRAM的讀時序不能保證這樣,而是只能保證數據RDATA valid一個周期,那么我們就無法使用上面的結構。

那么要怎么做才能達到我們想要的FIFO時序呢?大家可以很容易想到,如果想保持數據穩定,那還是要借助一級Flop的幫忙,即將SRAM的輸出RDATA鎖在一個buffer flop里。不過大家也看到,在上一講里我們下面的結構也還是有問題。

下面老李帶領大家整理設計思路。我們看上面的SRAM的時序圖,可以發現,我們周期T的時候讀一次SRAM,數據在T+1周期到RDATA,我們再把這個數據存到一級flop中,那么要在T+2周期才能在flop的q上看見這個數據。這2個周期是無法避免的。所以說,當我們的FIFO要pop一次,然后下一個周期FIFO的Q數據要切換成最頭上的數據(假設這個數據是head),那么我們可以得出結論,我們不能在pop的這一個cycle才去從SRAM中讀head,而必須讓head在這pop之前已經被讀到了flop里,那么當pop來了之后,我們只需要讓FIFO的q切換到這個flop輸出就可以了。這是設計思路的第一層次。

下面大家再考慮,我們切換到了另一個flop,那么這個時候輸出前一個Q的那個flop干什么去呢?當然不能閑著,它的任務是去接受此時存在SRAM里最頭上的數據,相當于從SRAM里提前預支了這個數,緩存在這里,這樣當下一個pop來的時候,可以在下一個周期再切換到它。

所以大家可以得出一個下面的結構。

要注意的點是我們這里有兩級輸出buffer flop,在上一講當中我們說FIFO進來的第一個數不能存到RAM里,而是要直接存到輸出級flop去。那么在上面的結構有相應的變化:FIFO進來的前兩個數都不能存到RAM里,而是要從第3個數開始才把數據存到RAM里。

時序圖建議大家自己畫一下。

聰明的同學可能覺得這個思路很眼熟,沒錯,這里的解決的辦法其實是數字電路設計中很常見的一個思路:乒乓Ping-pong buffer。

ping-pong buffer很常用,也是數字電路設計中的一個常考知識點。特別是valid/ready 握手協議中如何插入一級pipestage還能保證傳輸沒有bubble,即每個周期都能夠傳輸數據,老李當年面試被問到不止一次,老李自己做面試官也喜歡問這個問題。其實老李之前是想專門拿出來一篇來講ping-pong buffer的,不過發現其他很多公眾號博主已經寫過相應的文章了,老李覺得大家看他們的文章就可以。所以這篇咱們只是簡略講一講ping-pong buffer在這里的應用。

這里也給另外一個公眾號“數字IC自修室”打個廣告,上面也有很多很棒的文章,關于ping pong buffer大家可以看這一篇

[芯片設計小經驗——乒乓buffer]

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • sram
    +關注

    關注

    6

    文章

    768

    瀏覽量

    114754
  • fifo
    +關注

    關注

    3

    文章

    389

    瀏覽量

    43770
收藏 人收藏

    評論

    相關推薦

    同步FIFO設計詳解及代碼分享

    FIFO (先入先出, First In First Out )存儲器,在 FPGA 和數字 IC 設計中非常常用。 根據接入的時鐘信號,可以分為同步 FIFO 和異步 FIFO
    發表于 06-27 10:24 ?2160次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>設計詳解及代碼分享

    求大神幫忙給VHDL 寫的同步FIFO

    急需同步FIFO,我這有,但是仿真圖不對,我也不知道是不是代碼有問題。
    發表于 03-15 09:25

    異步FIFO結構

    設計FIFO是ASIC設計者遇到的最普遍的問題之。本文著重介紹怎樣設計FIFO——這是
    發表于 10-15 08:44 ?94次下載

    FPGA之FIFO練習3:設計思路

    根據FIFO工作的時鐘域,可以將FIFO分為同步FIFO和異步FIFO同步
    的頭像 發表于 11-29 07:08 ?1893次閱讀

    同步FIFO之Verilog實現

    FIFO的分類根均FIFO工作的時鐘域,可以將FIFO分為同步FIFO和異步FIFO
    的頭像 發表于 11-01 09:57 ?2027次閱讀

    怎樣設計同步FIFO?(1)

    今天咱們開始聊聊FIFO的設計。FIFO數字電路中常見的模塊,主要作用是數據產生端和接受端在短期內速率不匹配時作為數據緩存。FIFO
    的頭像 發表于 05-04 15:48 ?890次閱讀

    怎樣設計同步FIFO?(2)

    開始往下讀之前,老李先問問題,假如現在讓你設計深度為N的基于2port SRAM的同步FIFO
    的頭像 發表于 05-04 15:55 ?1064次閱讀
    <b class='flag-5'>怎樣</b>設計<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>?(2)

    FIFO設計—同步FIFO

    FIFO是異步數據傳輸時常用的存儲器,多bit數據異步傳輸時,無論是從快時鐘域到慢時鐘域,還是從慢時鐘域到快時鐘域,都可以使用FIFO處理。
    發表于 05-26 16:12 ?1538次閱讀
    <b class='flag-5'>FIFO</b>設計—<b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>

    FIFO設計—異步FIFO

    異步FIFO主要由五部分組成:寫控制端、讀控制端、FIFO Memory和兩時鐘同步
    發表于 05-26 16:17 ?1563次閱讀
    <b class='flag-5'>FIFO</b>設計—異步<b class='flag-5'>FIFO</b>

    同步FIFO設計(上)

    FIFO,First In First Out,先入先出隊列,顧名思義,即第一個到達的數據也將會是第一個離開。
    的頭像 發表于 06-05 14:39 ?966次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>設計(上)

    簡單的RTL同步FIFO設計

    FIFO 是FPGA設計中最有用的模塊之FIFO 在模塊之間提供簡單的握手和同步機制,是設計人員將數據從
    發表于 06-14 08:59 ?466次閱讀

    基于寄存器的同步FIFO

    ? FIFO 是FPGA設計中最有用的模塊之FIFO 在模塊之間提供簡單的握手和同步機制,是設計人員將數據從
    的頭像 發表于 06-14 09:02 ?785次閱讀

    基于Verilog的同步FIFO的設計方法

    同步FIFO的設計主要包括讀寫地址的產生、數據的讀寫、以及狀態的控制。下面我們將分別介紹這三方面的設計。
    發表于 08-31 12:53 ?903次閱讀

    同步FIFO設計分析

    模塊雖小但是要有新意,首先寫同步FIFO,這是爛大街的入門級項目,但是我肯定不會寫的那么
    的頭像 發表于 09-11 17:11 ?640次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>FIFO</b>設計分析

    同步FIFO和異步FIFO的區別 同步FIFO和異步FIFO各在什么情況下應用

    簡單的種,其特點是輸入和輸出都與時鐘信號同步,當時鐘到來時,數據總是處于穩定狀態,因此容易實現數據的傳輸和存儲。 而異步FIFO則是在波形的上升沿和下降沿上進行處理,在輸入輸出端口處分別增加輸入和輸出指針,用于管理數據的讀寫。
    的頭像 發表于 10-18 15:23 ?1735次閱讀
    主站蜘蛛池模板: www一级毛片| 国产精品一一在线观看| 狠狠色狠狠色综合日日32| 人人干97| 你懂的网站在线播放| 久久青草精品一区二区三区| 亚洲欧美成人在线| 黄色大视频| 91在线免费视频| 欧美一区二区三区视频在线观看| www.一区二区| 四虎在线最新永久免费播放| 亚洲最大的成人网| 男人j进入女人免费视频| 狠狠色噜噜狠狠狠狠98| 亚洲精品成人a在线观看| 四虎永久在线精品影院| 欧美色视频日本片免费高清| 狠狠躁夜夜躁人人爽天天段| 成年午夜一级毛片视频| 婷婷综合网站| 2018天天射| 日日射天天射| 欧美性一区| 五月丁香啪啪| 午夜女同影院| 亚洲成a人v在线观看| 亚洲成人激情片| 色爱综合区| 国产手机免费视频| 天天干天天操天天插| 偷自在线| 精品亚洲午夜久久久久| 69日本xxxxxxxxx98| 在线日韩一区| 日本番囗| aa黄色毛片| 国产精品久久久久久久久久免费 | 琪琪午夜免费影院在线观看| 色色色色色色色色色色色色 | 男女刺激性视频大片|