两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種多路讀寫多容量選擇的FIFO控制器的制作方法

文檔序號:11480757閱讀:590來源:國知局
一種多路讀寫多容量選擇的FIFO控制器的制造方法與工藝

本實用新型涉及一種多路讀寫多容量選擇的FIFO控制器,屬于數字集成電路的技術領域。



背景技術:

FIFO(First In First Out),即先進先出存儲器的簡稱,在系統(tǒng)設計中,為了增加數據傳輸速率、大批量處理數據流、解決不同時鐘域系統(tǒng)之間的數據傳輸問題,通常使用FIFO存儲器。

常見的FIFO存儲器一般有兩種構成方式:一種是由移位寄存器陣列構成,另一種是由具有讀和寫地址指針的雙端口RAM構成。根據FIFO工作的時鐘域,又可以將FIFO存儲器分為同步FIFO和異步FIFO兩類,同步FIFO是指讀時鐘與寫時鐘為同一個時鐘,而異步FIFO是指讀時鐘與寫時鐘為兩個互相獨立的時鐘。FIFO的使用非常廣泛,其中又以由SRAM組成的FIFO更為緊湊實用,本實用新型主要是針對由SRAM組成的FIFO提出改進。

在一般設計實現中,一塊SRAM只用來實現一個FIFO,單塊SRAM的容量通常比作為緩存用的FIFO的容量大得多,那么,大容量的SRAM僅實現一個FIFO會白白浪費掉剩余的存儲空間。尤其是SRAM應用需求多或需要多個容量不一樣的FIFO等設計需求時,多個SRAM剩余的存儲空間浪費更加嚴重,資源利用率也比較低。



技術實現要素:

本實用新型的發(fā)明目的是針對上述背景技術的不足,提供了一種多路讀寫多容量選擇的FIFO控制器,實現了FIFO容量的靈活調整以及SRAM剩余存儲體空間的充分利用,解決了一塊SRAM僅用以實現一個FIFO存在資源利用率低的技術問題。

本實用新型為實現上述發(fā)明目的采用如下技術方案:

一種多路讀寫多容量選擇的FIFO控制器,包括:

FIFO控制電路,根據系統(tǒng)輸入容量選擇信號分配當前FIFO容量,調節(jié)當前FIFO讀地址信號和當前FIFO寫地址信號,

用戶SRAM讀寫控制電路,接收FIFO控制電路輸出的當前FIFO容量指示信號,根據SRAM存儲體電路除去當前FIFO容量后的剩余容量為各用戶設備分配類似FIFO操作的讀寫地址,

地址譯碼電路,根據系統(tǒng)設備地址信號輸出表征系統(tǒng)所選當前FIFO及用戶設備的選擇信號,

多路選擇電路,接收FIFO控制電路輸出的當前FIFO讀地址信號和當前FIFO寫地址信號、用戶SRAM讀寫控制電路輸出的各用戶設備類似FIFO操作的讀寫地址、地址譯碼電路輸出的選擇信號,完成系統(tǒng)所選當前FIFO的讀寫操作及系統(tǒng)所選用戶設備的類似FIFO操作,及,

SRAM存儲體電路,具有按照當前FIFO容量劃分的當前FIFO存儲體空間以及各用戶設備類似FIFO操作的數據存儲體空間。

作為多路讀寫多容量選擇的FIFO控制器的進一步優(yōu)化方案,類似FIFO操作包含但不限于RAM讀寫操作、堆棧操作。

作為多路讀寫多容量選擇的FIFO控制器的進一步優(yōu)化方案,FIFO控制電路包括:

FIFO容量選擇電路,根據其輸入端接收的系統(tǒng)輸入容量選擇信號以及SRAM存儲體電路中不同存儲體空間的閾值選擇當前FIFO容量,

當前長度信號產生電路,根據當前長度信號的值與當前FIFO容量的數值關系、FIFO寫數據使能信號、FIFO讀數據使能信號,依據防止寫溢出和讀空的原則調節(jié)當前長度信號的值,

讀地址信號產生電路,在進行FIFO讀操作的過程中,根據當前FIFO讀地址信號與當前FIFO容量的數值關系調節(jié)當前FIFO讀地址信號的值,及,

寫地址信號產生電路,根據當前長度信號和當前FIFO讀地址信號之和與當前FIFO容量的數值關系調節(jié)當前FIFO寫地址信號。

再進一步的,多路讀寫多容量選擇的FIFO控制器中的FIFO容量選擇電路通過多路選擇器實現,多路選擇器的輸入端輸入SRAM存儲體電路中不同存儲體空間的閾值,多路選擇器的選擇端接系統(tǒng)輸入容量選擇信號,多路選擇器輸出當前FIFO容量。

再進一步的,多路讀寫多容量選擇的FIFO控制器中的當前長度信號產生電路:在FIFO寫數據使能信號有效且當前長度信號的值在當前FIFO容量范圍內時,對當前長度信號的值加一進行FIFO寫操作,否則,在FIFO讀數據使能信號有效且當前長度信號的值大于零時對當前長度信號的值減一進行FIFO讀操作。

更進一步的,多路讀寫多容量選擇的FIFO控制器中的當前長度信號產生電路包括:兩個二選一數據選擇器及D觸發(fā)器,

第一二選一數據選擇器,其選擇端輸入FIFO讀數據使能信號讀數據使能信號有效且當前長度信號值大于0的邏輯判別式,其1輸入端輸入當前長度信號減一的值,

第二二選一數據選擇器,其選擇端輸入FIFO寫使能信號有效且當前長度信號值在當前FIFO容量范圍內的邏輯判別式,其1輸入端輸入當前長度信號加一的值,其0輸入端接第一二選一數據選擇器的輸出端,

D觸發(fā)器,其輸入端接第二二選一數據選擇器的輸出端,其輸出端接第一二選一數據選擇器的0輸入端。

再進一步的,多路讀寫多容量選擇的FIFO控制器中的讀地址信號產生電路:

在FIFO讀數據使能信號有效且當前長度信號大于0的情況下:當前FIFO讀地址信號在當前FIFO容量范圍內時,對當前FIFO讀地址信號進行加一操作,直至當前FIFO讀地址信號超出當前FIFO容量范圍時,對當前FIFO讀地址信號進行歸零操作;其余情況下保持當前FIFO讀地址信號不變。

更進一步的,多路讀寫多容量選擇的FIFO控制器中的讀地址信號產生電路包括:兩個二選一數據選擇器及D觸發(fā)器,

第一二選一數據選擇器,其選擇端輸入當前FIFO讀地址信號等于當前FIFO容量的邏輯判別式,其0輸入端輸入當前FIFO讀地址信號加一的值,其1輸入端輸入0,

第二二選一數據選擇器,其選擇端輸入FIFO讀數據使能信號有效且當前長度信號大于0的邏輯判別式,其1輸入端接第一二選一數據選擇器的輸出端,

D觸發(fā)器,其輸入端接第二二選一數據選擇器的輸出端,其輸出端接第二二選一數據選擇器的0輸入端。

再進一步的,多路讀寫多容量選擇的FIFO控制器中的寫地址信號產生電路:

當前長度信號與當前FIFO讀地址信號之和在當前FIFO容量范圍內時,以當前長度信號與當前FIFO讀地址信號的和為當前FIFO寫地址信號,

當前長度信號與當前FIFO讀地址信號之和超出當前FIFO容量范圍時,將當前長度信號和當前FIFO讀地址信號累加后再減去當前FIFO容量的值賦予當前FIFO寫地址信號。

更進一步的,多路讀寫多容量選擇的FIFO控制器中的寫地址信號產生電路通過一二選一數據選擇器實現,該二選一數據選擇器的選擇端輸入當前長度信號與當前FIFO讀地址信號之和大于當前FIFO容量的邏輯判別式,該二選一數據選擇器的0輸入端輸入當前長度信號與當前FIFO讀地址信號之和,該二選一數據選擇器的1輸入端輸入當前長度信號和當前FIFO讀地址信號累加后再減去當前FIFO容量的值。

本實用新型采用上述技術方案,具有以下有益效果:通過FIFO控制電路分配FIFO容量并為系統(tǒng)當前FIFO操作分配SRAM讀寫地址,通過用戶SRAM讀寫控制電路和地址譯碼電路的設計實現了其它用戶設備共享訪問FIFO未占用的SRAM地址空間,可靈活調整SRAM芯片存儲體空間的劃分并充分利用未被FIFO占用的SRAM地址空間,有效整合了SRAM存儲體,提高了資源利用率。

附圖說明

圖1為本實用新型涉及的FIFO控制器的系統(tǒng)框圖。

圖2為FIFO容量選擇電路的框圖。

圖3為讀地址信號產生電路的框圖。

圖4為當前長度信號產生電路的框圖。

圖5為寫地址信號產生電路的框圖。

圖中標號說明:101、FIFO控制電路,102、用戶SRAM讀寫控制電路,103、地址譯碼電路,104、多路選擇電路,105、SRAM存儲體電路。

具體實施方式

下面結合附圖對實用新型的技術方案進行詳細說明。

本實用新型涉及的多路讀寫多容量選擇的FIFO控制器如圖1所示,包括:FIFO控制電路101、用戶SRAM讀寫控制電路102、地址譯碼電路103、多路選擇電路104以及SRAM存儲體電路105。

FIFO控制電路101:根據系統(tǒng)輸入容量選擇信號fifo_size選擇當前FIFO容量,容量指示信號為depth,輸出容量指示信號depth到用戶SRAM讀寫控制電路102;將FIFO寫入數據wr_din輸出到fifo_din;將FIFO寫數據使能信號wr_en輸出到fifo_wr;將FIFO讀數據使能信號rd_en輸出到fifo_rd;另外,FIFO控制電路101輸出對SRAM的讀地址信號fifo_raddr(即當前FIFO讀地址信號)和寫地址信號fifo_waddr(即當前FIFO寫地址信號)。以上5個輸出信號均輸出到多路選擇電路104。

用戶SRAM讀寫控制電路102,由多個用戶自定義SRAM讀寫控制電路組成,輸入FIFO控制電路101產生的容量指示信號depth。此處根據SRAM剩余空間大小,可擴展N個SRAM讀寫控制子模塊user1_ctr1至userN_ctr1,第一個子模塊輸出寫入數據user1_din,讀地址信號user1_raddr,寫地址信號user1_waddr,讀數據使能信號user1_rd,寫數據使能信號user1_wr。依次類推,第N個子模塊輸出寫入數據userN_din,讀地址信號userN_raddr,寫地址信號userN_waddr,讀數據使能信號userN_rd,寫數據使能信號userN_wr。以上信號均輸出到多路選擇電路104。

地址譯碼電路103,輸入為系統(tǒng)設備地址信號dev_addr,對系統(tǒng)設備地址信號dev_addr地址譯碼處理后輸出多路選擇信號sel到多路選擇電路104,該多路選擇信號表征系統(tǒng)所選當前FIFO及用戶設備。

多路選擇電路104,輸入為FIFO控制電路101輸出的5路控制信號、用戶SRAM讀寫控制電路102輸出的N路信號以及地址譯碼電路103輸出的多路選擇信號sel,同時,輸出SRAM寫數據信號din,SRAM讀地址信號raddr,SRAM寫地址信號waddr,SRAM讀數據使能信號rd,SRAM寫數據使能信號wr,以上5路信號輸出到SRAM存儲體電路105。

SRAM存儲體電路105是根據當前FIFO容量及用戶SRAM讀寫控制電路類似FIFO讀寫地址分配的存儲體空間,輸入為多路選擇電路104輸出的SRAM寫數據信號din、SRAM讀地址信號raddr、SRAM寫地址信號waddr、SRAM讀數據使能信號rd、SRAM寫數據使能信號wr,輸出為SRAM讀數據信號dout。fifo space為當前FIFO存儲體空間,user1 space至userN space為各用戶設備類似FIFO操作的數據存儲體空間,類似FIFO 操作包括RAM讀寫操作、堆棧操作等。

FIFO控制電路101由FIFO容量選擇電路、讀地址信號產生電路、當前長度信號產生電路和寫地址信號產生電路構成。

FIFO容量選擇電路如圖2所示,根據系統(tǒng)輸入容量選擇信號fifo_size確定當前FIFO的容量depth。FIFO容量選擇電路可通過一多路選擇器實現,多路選擇器的輸入端輸入SRAM存儲體電路105中不同存儲體空間的閾值Threshold_1至Threshold_n,多路選擇器的選擇端接系統(tǒng)輸入容量選擇信號fifo_size,多路選擇器輸出當前FIFO容量depth。

讀地址信號產生電路如圖3所示:當FIFO讀數據使能信號rd_en有效、當前長度信號len_addr大于零且當前FIFO讀地址信號r_addr不等于depth-1時,對當前FIFO讀地址信號r_addr加一進行讀操作,直至FIFO讀地址信號r_addr等于depth-1時,FIFO讀地址信號r_addr被置零;其它情況下FIFO讀地址信號r_addr保持不變。讀地址信號產生電路具體可由兩個二選一數據選擇器及D觸發(fā)器實現,第一二選一數據選擇器的選擇端輸入邏輯判別式:r_addr==( depth-1),第一二選一數據選擇器的0輸入端輸入r_addr+1,第一二選一數據選擇器的1輸入端輸入0,第二二選一數據選擇器的選擇端輸入邏輯判別式:rd_en&&(len_addr>0),第二二選一數據選擇器的1輸入端接第一二選一數據選擇器的輸出端,D觸發(fā)器的輸入端接第二二選一數據選擇器的輸出端,D觸發(fā)器的輸出端接第二二選一數據選擇器的0輸入端。

當前長度信號產生電路如圖4所示:當FIFO寫數據使能信號wr_en有效且FIFO當前長度信號len_addr小于當前FIFO容量depth時,FIFO當前長度信號len_addr加一;否則,當FIFO讀數據使能信號rd_en有效且FIFO當前長度信號len_addr大于零時,FIFO當前長度信號len_addr減一。當前長度信號產生電路具體由兩個二選一數據選擇器及D觸發(fā)器實現,第一二選一數據選擇器的選擇端輸入邏輯判別式:rd_en&&(len_addr>0),第一二選一數據選擇器的1輸入端輸入len_addr-1,第二二選一數據選擇器的選擇端輸入邏輯判別式:wr_en&&( len_addr< depth),第二二選一數據選擇器的1輸入端輸入len_addr+1,第二二選一數據選擇器的0輸入端接第一二選一數據選擇器的輸出端,D觸發(fā)器的輸入端接第二二選一數據選擇器的輸出端,D觸發(fā)器的輸出端接第一二選一數據選擇器的0輸入端。

寫地址信號產生電路如圖5所示:當FIFO當前長度信號len_addr加上讀地址信號r_addr大于depth-1時,FIFO寫地址w_addr等于FIFO當前長度信號len_addr加上FIFO讀地址信號r_addr的和減去FIFO當前選擇容量depth;否則,FIFO寫地址w_addr等于FIFO當前長度信號len_addr加上FIFO讀地址信號r_addr的和。寫地址信號產生電路具體可通過一二選一數據選擇器實現,該二選一數據選擇器的選擇端輸入邏輯判別式:len_addr>( depth-1-r_addr),該二選一數據選擇器的0輸入端輸入len_addr+ r_addr,該二選一數據選擇器的1輸入端輸入len_addr+ r_addr-depth。

以上為FIFO控制電路101對SRAM存儲體的讀寫操作控制以及讀寫地址的控制過程,用戶SRAM讀寫控制電路102對SRAM存儲體的讀寫操作控制可以直接訪問。如果將用戶SRAM讀寫控制電路102內部的子模塊例化為FIFO控制電路,那么本實用新型可實現多個FIFO共用同一塊SRAM,此方案可視為本實用新型的一種擴展變形方案,其它類似擴展變形方案也應應劃入本實用新型的保護范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
巴中市| 巴中市| 多伦县| 江山市| 彰武县| 永福县| 宁武县| 若羌县| 收藏| 靖州| 长岭县| 新邵县| 仪征市| 天峻县| 开原市| 微山县| 涿鹿县| 瑞昌市| 宜章县| 乐东| 瑞昌市| 衢州市| 台江县| 襄城县| 定襄县| 雷波县| 余姚市| 汕尾市| 苗栗市| 万年县| 庆阳市| 黑龙江省| 赞皇县| 左云县| 响水县| 屏东县| 祁门县| 元朗区| 神木县| 运城市| 丽江市|