美章網 資料文庫 異步FIFO的設計范文

異步FIFO的設計范文

本站小編為你精心準備了異步FIFO的設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

異步FIFO的設計

《電子器件雜志》2014年第三期

1FIFO狀態判斷設計

1.1寫、讀指針的產生過程在FIFO的工作過程中,數據的寫入和讀出是按順序進行的,一旦給其上電,寫\讀指針都指向第1個存儲單元,每當收到寫\讀指令時,寫\讀指針都加1,當寫\讀指針指向存儲器最后一個單元時,寫\讀指針又回到初始位置,形成環形地址[5]。由于在寫入前一個數據的同時要對下一個數據進行預充電,所以,在寫入第1個數據時是不需要預充電的,這樣寫計數器輸出的寫地址指針要從0開始計數,在寫時鐘處于低電平期間進行數據寫入,在寫時鐘上升沿時發生跳變,而讀地址指針則是從1開始計數的,在讀時鐘的上升沿發生跳變。本設計的FIFO容量為1MB(Mbyte),因此地址指針有20bit。FIFO的工作原理如下:剛開始時,FIFO是處于復位(RESET)狀態的,讀寫地址都相等且為0,FIFO處于空狀態,讀信號被阻塞,只能進行寫操作,每進行一次,寫指針就遞增1。在對FIFO進行最后一次寫操作時,寫指針的值由19回到0,此時讀寫地址指針又相等,FIFO處于滿狀態。此后寫信號被阻塞,只能進行讀操作,同理,每進行一次,讀指針就遞增1,直到讀指針再次回到0,此時FIFO再次回到空狀態。綜上所述,FIFO的空滿狀態都是在讀、寫地址指針相等時才會出現,于是判斷空滿狀態的問題就歸結于如何在讀、寫地址指針相等時,判斷出FIFO是處于空狀態還是滿狀態。傳統的方法是直接將讀、寫指針通過一個減法器進行運算,將運算結果與一個預設值進行比較:若(讀指針地址—寫地址指針<=預設值)時,為滿狀態,相反為空狀態。此法存在兩個弊端。首先,采用減法器這樣復雜的運算邏輯會降低FIFO的運行效率。其次,由于運算結果是和一個預設值進行比較,會產生一個相對誤差,其準確性也會降低。本設計采用為寫\讀地址指針分別附加一位的方法來判斷FIFO的狀態,當寫\讀指針遍歷一次存儲器地址時,則增加的這一位改其“0”,“1”狀態,通過判斷寫、讀指針該改變位是否相等,從而正確判斷空滿狀態。即寫邏輯產生WP,WE,WF三組指針,讀邏輯產生RP,RE,RF三組指針,如圖2所示[6]。這里先給出結論:WF要比WP提前一個寫時鐘周期,WE要比WF延遲半個周期,其波形示意如圖3;RF要比RP提前半個讀時鐘周期,RE要比RP提前一個讀時鐘周期。其波形示意圖如圖4。

1.2空滿狀態判斷當WE[20:0]=RE[20:0]時,存儲器處于空狀態,EF低電平有效,空狀態比較邏輯圖如圖5所示[7]。圖5中,將經過寄存器輸出的信號WET組地址指針和經由寫地址產生模塊輸出的RE組地址指針進行比較。這個寄存器是由寫時鐘W_clk控制的,高電平有效,主要起到同步信號的作用,減少亞穩態出現的概率[8]。空標志EF的寄存器由讀時鐘R_clk控制,低電平有效,當開始向存儲器最后一個空間內讀出數據時,那么在讀時鐘的下降沿觸發時,空標志EF降為低電平。此后對存儲器進行寫入操作,即在寫時鐘的上升沿觸發時,空標志EF再次升為高電平。另外,為了避免讀時鐘W_clk的高電平和R_clk的低電平同時到來的情況,EF寄存器的置位端由寫時鐘和其延遲后的信號產生的窄脈沖來控制[9]。由于EF寄存器在讀時鐘為低電平時將數據輸出,所以RE指針在讀時鐘的下降沿不能發生跳變,而只能在上升沿跳變,因此得出結論RE比RP提前一個周期。當WF[19:0]=RF[19:0],但WF[20]≠RF[20],即增添的附加位不相等時,存儲器處于滿狀態,滿狀態比較邏輯圖如圖6所示。同理,將經過寄存器輸出的信號RFT組地址指針和經由寫地址產生模塊輸出的WF組地址指針進行比較。當開始向存儲器最后一個空間內寫入數據時,那么在寫時鐘的下降沿觸發時,滿標志FF降為低電平。此后對存儲器進行讀操作,即在讀時鐘的上升沿觸發時,滿標志FF再次升為高電平。由于FF寄存器在寫時鐘為低電平時將數據輸出,所以WF指針在寫時鐘的下降沿不能發生跳變,而只能在上升沿跳變,因此,WF要比WP提前1個周期。如圖7和圖8所示為使用Verilog仿真得到的寫操作過程波形圖,在寫時鐘W_clk的某個下降沿來臨時,滿狀態出現,此時FF變為低電平。

2轉發功能

FIFO的轉發能力是指當FIFO從一個系統接入另一個系統時,不論當前的讀地址指針處于什么位置,第2個系統都能夠將FIFO存儲器中的數據重新讀取。這樣,FIFO中存入的數據可以被多次讀出。如圖9所示,讀地址指針RT處于低電平時有效,在讀時鐘上升沿到來時,系統重新讀出存儲數據。

3測試結果分析

芯片容量為1MB(Mbyte),數據寬度為18bit,經0.18μmCMOS工藝流片。如表1所示,在電源電壓為5V的情況下,使用J750測試系統對芯片進行測試,輸出的最高電壓為2.8V,輸出的電流為20mA左右。根據測試結果,支持異步讀寫及轉發功能,讀寫速度超過160MHz,其轉發功能測試,狀態標志位功能測試均可達到100MHz,且狀態判斷準確。

4結束語

本設計采用分別為讀、寫地址增添一位地址的方法,使得讀寫邏輯分別輸出三組地址,這與原先最直接的做法相比,明顯提高了fifo的速度,提高了狀態判斷的準確性。轉發功能的實現使得FIFO在一些特定的環境下具有很好的使用價值。

作者:王凱孫鋒單位:江南大學物聯網工程學院中國電子科技集團公司58所

精品推薦
主站蜘蛛池模板: 能顺利播放的男男网站free | 美女和男生一起差差差| 国产精品亚洲成在人线| 人妻丰满熟AV无码区HD| 色婷婷精品视频| 国产成人精品久久综合| 800av我要打飞机| 女人18毛片a| 中国猛少妇色XXXXX| 日本全黄三级在线观看| 亚洲av专区无码观看精品天堂| 毛色毛片免费观看| 免费国产成人高清视频网站| 老师的圣水女主小说网| 国产又黄又刺激又爽视频黄| 日韩在线播放全免费| 成人无码av一区二区| 久久国产精品99国产精| 激情六月在线视频观看| 午夜精品久久久久久| 亚洲h在线观看| 国产香港日本三级在线观看| bbw在线观看| 日韩a级毛片免费观看| 亚洲高清成人欧美动作片| 青娱乐手机在线| 国产超碰人人模人人爽人人喊| www.99色| 少妇被又大又粗又爽毛片久久黑人| 久久99蜜桃精品久久久久小说| 日韩大片免费看| 五月婷婷深深爱| 特级毛片在线播放| 免费看毛片电影| 精品无人区一区二区三区| 国产av一区二区三区日韩| 视频在线一区二区三区| 国产大尺度吃奶无遮无挡网| 国产精品永久免费10000| 国产福利在线观看极品美女| 1a级毛片免费观看|