《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 在FPGA中基于信元的FIFO設計方法
在FPGA中基于信元的FIFO設計方法
摘要: 設計工程師通常在FPGA上實現FIFO(先進先出寄存器)的時候,都會使用由芯片提供商所提供的FIFO。但是,由于其通用性使得其針對性變差,某些情況下會變得不方便或者將增加硬件成本。此時,需要進行自行FIFO設計。本文提供了一種基于信元的FIFO設計方法以供設計者在適當的時候選用。這種方法也適合于不定長包的處理。
關鍵詞: FPGA 信元 FIFO ATM
Abstract:
Key words :

  設計工程師通常在FPGA上實現FIFO(先進先出寄存器)的時候,都會使用由芯片提供商所提供的FIFO。但是,由于其通用性使得其針對性變差,某些情況下會變得不方便或者將增加硬件成本。

  此時,需要進行自行FIFO設計。本文提供了一種基于信元的FIFO設計方法以供設計者在適當的時候選用。這種方法也適合于不定長包的處理。

  FIFO在數字通訊芯片領域中有兩個主要的作用,緩沖數據和隔離時鐘。對于FIFO的設計,最關鍵的問題是如何實現RAM的讀寫雙方的信息交換。一般情況下,設計者都直接調用廠商為自己的FPGA專門打造的FIFO核?;締卧荈IFO所使用的RAM的一次讀寫操作的最小單元,如一個字節,一個字或者是一個雙字。所謂操作粒度,即FIFO的讀寫雙方的信息交換是基于這些基本單元。

  ATM應用中的FIFO設計

  以ATM的設計為例,在ATM的相關設計中,設計者則更多希望一個FIFO對外給出的信息是“現在FIFO中還剩下幾個信元”。要實現這一功能通常有兩種方法:

  調用廠商提供的以操作粒度為基本單元的通用FIFO,然后在這個FIFO的外面再加上一個“套子”。這個套子里面設計一些計數器,根據計數內容對外提供相應的信息。

  設計操作粒度為信元的定制FIFO。這樣對外直接提供設計者最希望得到的信息,即FIFO中還有多少個信元。

  設定FIFO最多可以存放4個信元?;締卧獮樽止?,因此RAM的數據寬度為8位,一個信元的長度為53字節。

  把RAM分成4個信元區域,讀寫地址的高二位指明信元區域,低六位指明信元區域內的字節地址,這樣組合成8位讀寫地址。讀寫雙方的信息交換是互相通知對方還有多少個信元在FIFO中。讀寫雙方都擁有自己的記分牌(Scoreboard),這個記分牌可以由一個四位的寄存器來實現,每一位對應一個信元區域。當一個信元區域中有一個完整的信元的時候,記分牌的相應的寄存器被設置為‘1’,否則為‘0’。讀出方讀出一個信元,修改自己記分牌的動作叫做清位。寫入方寫入一個完整信元,修改自己記分牌的動作叫置位。

  從邏輯上說,只需要讀出方把自己的記分牌的信息(清位信息)傳送給寫入方,同時寫入方把自己的記分牌的信息(置位信息)傳送給讀出方就可以了,即只要構成兩條邏輯通道就可以滿足需求。但是,在硬件上的實現卻要比這種只從邏輯上的思考要復雜。由于讀寫雙方有可能處在不同的時鐘域,所以當讀寫雙方交換信息的時候就需要處理信號采樣的亞穩態情況。我們使用下面的方法來處理信號亞穩態。

  消除信號亞穩態

  在讀、寫入方之間建立下面的四條單向數據通道:傳送寫入方到讀出方的置位信息(Wr2RdSet);寫入方到讀出方的清位信息(Wr2RdRst);讀出方到寫入方的清位信息(Rd2WrRst);讀出方到寫入方的置位信息(Rd2WrSet)。由于讀出方只發生清位信息,而寫入方只發生置位信息,所以信息本身只有兩個。四條通道可以被劃分為兩個信息組:一個組(Rd2WrRst和Wr2RdRst)傳遞清位信息,叫清位信息組;一個組(Wr2RdSet?和Rd2WrSet)傳遞置位信息,叫置位信息組。讀出方使用清位信息組,寫入方使用置位信息組。這樣做的目的是為了建立起一個穩定的握手機制。在讀出方設置一個專門的發送電路,當此發送電路通過Rd2WrRst發出了清位信息后,等待寫入方通過Wr2RdRst通道送回關于這個信息被接收的確認。當收到這個信息的確認后,讀出方發送電路復位。同樣的,寫入方也有一個發送電路,操作過程同讀出方一致,無非是使用置位信息組。這兩個發送電路都各由四個寄存器組成,一位對應一個信元區域。

  為了解決Rd2WrRst進入寫入方時引起的信號亞穩態,需要在寫入方設置一個專門消除亞穩態的電路模塊。根據Rd2WrRst和Rd2WrSet特點不一樣,這個模塊有多種設計方法,但是其宗旨都是使用連續兩次采樣的方式。

  這里介紹一種比較簡單的方法。在設計的時候,把Rd2WrRst和Rd2WrSet的信號都設計為電平方式,即當讀出方要發送一個信元區域的清位信息的時候,就把Rd2WrRst信號通道里對應的信元區域位設置為‘1’。這個‘1’電平一直保持到寫入方的確認到達。當這個‘1’電平被寫入方采樣的時候,由于‘1’同步于讀出方的時鐘,所以很有可能會產生寫入方第一次采樣為一個不確切值,即通常意義上的亞穩態狀態。但是,由于讀出方一直保持‘1’電平,所以寫時鐘在第二次采樣的時候就會得到一個穩定的采樣樣本,從而消除了Rd2WrRst的亞穩態。對于解決Wr2RdSet進入讀出方的時候引起的信號亞穩態的方法和讀出方一樣。

  對于Rd2WrSet通道里面的信息,其實是讀出方給寫入方的置位確認。這個信號的源頭是寫入方發出的Wr2RdSet,讀出方對Wr2RdSet不做任何處理,只是單純地把它里面的信息拷貝到Rd2WrSet通道并回送寫入方,當Rd2WrSet進入寫入方的時候,進入消除亞穩態電路,最后復位寫入方的發送電路。對于Wr2RdRst通道里面的信息操作也和Rd2WrSet的信息一樣。整個電路的結構如圖所示。

 

整個電路的結構

  對于信元字節的計數,和通常的方式一樣,發生在FIFO的外部,外部的電路需要為FIFO提供基于信元字節計數到信元尾的信息。這個信息用來使得FIFO?的讀寫地址指針從一個信元區域跳到下一個信元區域。FIFO向外部電路提供FIFO有多少個信元的信息。這個信息加上外部電路自己產生的計數信息,可以知道FIFO是否將滿,FIFO是否將空等一系列信息。

  通過上面的描述,可以看到外部電路能夠非常自由地控制FIFO的讀寫地址的變化,這是通用FIFO所不具備的功能。由于FIFO給出的是信元的信息,設計者在做有關UTOPIA協議的電路的時候,可以很方便地使用這個信息。同時,如果設計需要UTOPIA的查錯功能,這樣的情況更需要外部電路能控制?FIFO的地址變化。從而使得寫地址指針回跳以覆蓋原先寫入的數據。顯然,這一功能也是通用FIFO很難實現的。

  本文小結

  對于這樣的FIFO應用還可以延伸到對于非定長包的處理,比如說以太包。由于以太包的特點,要在FPGA中完全存儲一個以太包需要的硬件資源很大,所以,有時候對于以太包的處理都會先把其分為固定長的數據塊,并把每一數據塊伴以相應的標識以識別他們是屬于哪一個以太包。這樣一來,就變成了對固定長數據塊的處理。因此,上面所述的FIFO的設計方法又可以用來緩存以太包。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久综合色婷婷| 国产精品久久久久高潮| 亚洲私人影院| 日韩视频在线免费观看| 亚洲电影在线播放| 久久成人在线| 欧美一区二区三区另类| 亚洲欧美日韩国产一区二区三区 | 国产精品免费福利| 欧美日韩网站| 欧美日本国产精品| 欧美黄色日本| 欧美激情一区在线观看| 欧美日本簧片| 欧美色区777第一页| 欧美三级午夜理伦三级中视频| 欧美国产精品中文字幕| 欧美激情一区| 欧美伦理在线观看| 欧美日韩爆操| 欧美欧美午夜aⅴ在线观看| 欧美麻豆久久久久久中文| 欧美欧美天天天天操| 欧美精品在线播放| 欧美三级免费| 国产精品视频福利| 国产自产v一区二区三区c| 精品成人在线视频| 亚洲国产精品福利| 一区二区三区www| 亚洲免费在线视频| 久久精品亚洲精品| 亚洲精品乱码久久久久| 在线视频亚洲| 欧美亚洲一区二区在线观看| 久久久午夜精品| 模特精品在线| 欧美日韩精品一区二区在线播放| 国产精品h在线观看| 国产亚洲欧洲一区高清在线观看 | 一本久道久久综合婷婷鲸鱼| 亚洲五月婷婷| 欧美在线高清| 日韩亚洲不卡在线| 亚洲欧美久久久| 久久久不卡网国产精品一区| 欧美黄色免费网站| 国产精品一区二区你懂的| 精品电影在线观看| 日韩一级片网址| 性色av一区二区三区在线观看 | 午夜视频久久久| 久热精品视频在线免费观看| 欧美日本中文字幕| 国产乱码精品一区二区三区不卡 | 亚洲国产福利在线| 亚洲天堂男人| 亚洲国产欧美一区二区三区同亚洲 | 亚洲午夜精品网| 亚洲第一久久影院| 亚洲一区视频在线观看视频| 久久噜噜亚洲综合| 国产精品成人免费| 激情综合在线| 亚洲在线第一页| 亚洲破处大片| 欧美制服第一页| 欧美日韩视频免费播放| 国模吧视频一区| 亚洲视频免费观看| 亚洲精品国产精品乱码不99| 午夜精品一区二区三区在线播放| 免费不卡中文字幕视频| 国产伦一区二区三区色一情| 亚洲理论在线| 亚洲国产精品黑人久久久| 亚洲欧美日本国产有色| 欧美xart系列高清| 国产亚洲成av人片在线观看桃| 亚洲免费精品| 亚洲欧洲在线播放| 久久综合亚洲社区| 国产乱码精品一区二区三区不卡 | 亚洲第一毛片| 性8sex亚洲区入口| 欧美日韩亚洲一区| 亚洲激情欧美激情| 亚洲国产视频一区| 久久九九全国免费精品观看| 国产精品v片在线观看不卡| 亚洲国产欧美在线人成| 亚洲高清资源| 久久精品99国产精品酒店日本| 欧美性片在线观看| 亚洲欧洲日韩女同| 亚洲国产精品一区二区www| 欧美影院成年免费版| 国产精品久久二区| 一本色道久久加勒比精品| 999在线观看精品免费不卡网站| 久久躁狠狠躁夜夜爽| 国产夜色精品一区二区av| 亚洲女爱视频在线| 亚洲欧美亚洲| 国产精品国产自产拍高清av王其 | 西西人体一区二区| 欧美性猛交99久久久久99按摩| 亚洲精品美女久久久久| 亚洲乱码一区二区| 欧美激情久久久| 亚洲国产精彩中文乱码av在线播放| 久久精品国产亚洲a| 久久人人97超碰精品888| 国产婷婷成人久久av免费高清| 亚洲免费婷婷| 欧美在线欧美在线| 国产女主播一区二区三区| 亚洲午夜视频在线| 午夜精品一区二区三区在线视| 国产精品国产三级国产专区53| 在线亚洲免费视频| 午夜欧美大尺度福利影院在线看| 欧美午夜精品久久久久免费视| 99热在这里有精品免费| 亚洲午夜一区二区三区| 国产精品初高中精品久久| 夜夜夜精品看看| 亚洲欧美日韩精品久久久| 国产精品每日更新| 午夜精品久久久| 久久久久久久高潮| 一区二区在线视频| 亚洲理论在线| 欧美日韩一区二区三区免费| 在线亚洲精品福利网址导航| 亚洲性色视频| 国产欧美日韩综合| 久久精品免费| 欧美成人自拍| 一区二区久久| 欧美一区在线看| 好看的日韩视频| 亚洲精品精选| 国产精品成人观看视频国产奇米| 亚洲免费在线播放| 久久中文久久字幕| 亚洲精品久久7777| 亚洲欧美日韩精品在线| 国产一区二区日韩| 亚洲乱码视频| 国产精品久久一卡二卡| 欧美亚洲综合在线| 美女任你摸久久| 一本高清dvd不卡在线观看| 欧美一区网站| 亚洲国产精品久久久久久女王| 在线视频日韩| 国产亚洲福利| 一本色道久久88精品综合| 国产伦精品一区二区三区四区免费| 久久成人免费网| 欧美日韩亚洲一区二区三区在线 | 久久精品成人| 欧美日韩一区二区三区在线观看免| 亚洲一二三四区| 久久影视精品| 中日韩美女免费视频网址在线观看| 久久国内精品视频| 亚洲精选久久| 久久久精品免费视频| 日韩亚洲欧美综合| 久久久福利视频| 亚洲免费黄色| 麻豆精品一区二区av白丝在线| 日韩亚洲欧美高清| 久久欧美肥婆一二区| 9i看片成人免费高清| 久久久久国产精品人| 99re成人精品视频| 久久综合九色九九| 亚洲视频在线免费观看| 蜜月aⅴ免费一区二区三区| 亚洲视频一区二区| 欧美成人免费在线| 午夜免费久久久久| 欧美三级日本三级少妇99| 久久精品一区| 国产精品伦理| 亚洲精品之草原avav久久| 国产日产高清欧美一区二区三区| 亚洲免费高清| 极品少妇一区二区三区精品视频| 亚洲无线一线二线三线区别av| 影视先锋久久| 欧美一区二区福利在线| 亚洲美女色禁图| 欧美不卡在线视频| 久久精品二区三区| 国产精品试看| 亚洲性视频h|