專利名稱:基于fpga的異步雙fifo的數(shù)據(jù)緩存方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種FPGA (現(xiàn)場(chǎng)可編程門陣列)與DSP (數(shù)字信號(hào)處理器)之間通信時(shí)因時(shí) 鐘不同步而需要的數(shù)據(jù)緩存方法,具體地說(shuō)涉及一種基于FPGA的異步雙FIFO (先入先出存 儲(chǔ)器)的數(shù)據(jù)緩存的實(shí)現(xiàn)方法。
技術(shù)背景在現(xiàn)代集成電路設(shè)計(jì)中,由于設(shè)計(jì)規(guī)模的不斷擴(kuò)大, 一個(gè)系統(tǒng)往往含有多個(gè)時(shí)鐘芯片, 因此不同時(shí)鐘域芯片間的數(shù)據(jù)傳遞便成為集成電路芯片設(shè)計(jì)中的一個(gè)重點(diǎn)問(wèn)題, 一般需要通 過(guò)采用滿足要求的異步FIFO緩存數(shù)據(jù)來(lái)解決此問(wèn)題,實(shí)現(xiàn)快速高效實(shí)時(shí)的數(shù)據(jù)傳輸,滿足數(shù) 字通信的需求。由于各個(gè)芯片間傳遞數(shù)據(jù)的協(xié)議不同,需要根據(jù)需要設(shè)計(jì)匹配的異步FIFO。 FIFO存儲(chǔ)器的本質(zhì)是一塊雙端口數(shù)據(jù)內(nèi)存, 一個(gè)端口用于將數(shù)據(jù)存入FIFO,另一個(gè)端口用于 將數(shù)據(jù)從FIFO中取出,因此FIFO的相關(guān)操作可以看做是兩個(gè)指針的定位,寫指針指向要寫 的內(nèi)存部分,讀指針指向要讀的內(nèi)存部分,F(xiàn)IFO控制器通過(guò)外部的讀、寫控制信號(hào)控制這兩 個(gè)指針的移動(dòng),并由此產(chǎn)生FIFO空或滿信號(hào)。FIFO存儲(chǔ)器設(shè)計(jì)難點(diǎn)主要有兩個(gè),1、空、滿 標(biāo)志信號(hào)的產(chǎn)生,2、亞穩(wěn)態(tài)導(dǎo)致產(chǎn)生錯(cuò)誤的空、滿信號(hào)。所以硬件上來(lái)實(shí)現(xiàn)FIFO存儲(chǔ)器一 般采用SRAM (靜態(tài)隨機(jī)存取存儲(chǔ)器)單元來(lái)存取數(shù)據(jù),讀寫指針通過(guò)采用格雷編碼來(lái)實(shí)現(xiàn)計(jì) 數(shù)。在數(shù)據(jù)緩存問(wèn)題上,目前主要采用單個(gè)FIFO讀、寫、空、滿標(biāo)志信號(hào)之間的控制,包括 接收端處理數(shù)據(jù)和發(fā)送端處理數(shù)據(jù),發(fā)送端由DSP接收來(lái)自PC的數(shù)據(jù),發(fā)送到FPGA,數(shù)據(jù) 發(fā)送速率相對(duì)較慢;接收端的DSP接收來(lái)自FPGA的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理后送給PC顯示 或存儲(chǔ)處理,數(shù)據(jù)存儲(chǔ)速率也較慢,這樣會(huì)因某些模塊速率低造成系統(tǒng)效率低下問(wèn)題。由于 數(shù)字通信涉及的數(shù)據(jù)處理工作量很大,單純的DSP或FPGA不能滿足實(shí)時(shí)數(shù)字通信的要求,因 存儲(chǔ)數(shù)據(jù)不及時(shí)會(huì)造成數(shù)據(jù)丟失。 發(fā)明內(nèi)容本發(fā)明針對(duì)現(xiàn)有采用單個(gè)FIFO的數(shù)據(jù)緩存技術(shù)存在的不足,提供一種數(shù)據(jù)傳送效率高、 可靠性高的基于FPGA的異步雙FIFO的數(shù)據(jù)緩存方法,可以提高異步時(shí)鐘域間傳遞數(shù)據(jù)時(shí)緩 存數(shù)據(jù)的傳送效率和可靠性。本發(fā)明的基于FPGA的異步雙FIFO的數(shù)據(jù)緩存方法,是數(shù)據(jù)接收端和數(shù)據(jù)發(fā)送端都由 FPGA、 DSP和PC組成,發(fā)送端由DSP接收來(lái)自PC的數(shù)據(jù),發(fā)送到FPGA,接收端由DSP接收 來(lái)自FPGA的數(shù)據(jù),發(fā)送到PC機(jī)進(jìn)行數(shù)據(jù)顯示或存儲(chǔ)處理,接收端和發(fā)送端的FPGA均具有 異步雙FIFO,兩個(gè)FIFO交替工作,輪流執(zhí)行讀、寫功能;異步雙FIFO的交替工作由邏輯控 制其每個(gè)FIFO的讀、寫使能信號(hào),使發(fā)送端分段接、連續(xù)發(fā),接收端連續(xù)接、分段發(fā),發(fā)送 端DSP送來(lái)的分散數(shù)據(jù)經(jīng)過(guò)FPGA的異步雙FIFO后連續(xù)發(fā)出,接收端FPGA送來(lái)的連續(xù)數(shù)據(jù)經(jīng) 過(guò)其異步雙FIFO處理后使其分段發(fā)出,使每個(gè)FIFO滿時(shí)發(fā)送數(shù)據(jù)。邏輯控制分為接收速率大于、等于、小于發(fā)送速率時(shí)的情況,發(fā)送端FPGA的數(shù)據(jù)接收 速度慢于數(shù)據(jù)發(fā)送速度時(shí),F(xiàn)IFO執(zhí)行分段數(shù)據(jù)連續(xù)發(fā)送;接收端FPGA的數(shù)據(jù)接收速度快于 數(shù)據(jù)發(fā)送速度時(shí),F(xiàn)IFO執(zhí)行連續(xù)數(shù)據(jù)分段發(fā)送。本發(fā)明采用兩個(gè)FIFO之間的讀、寫、空、滿控制信號(hào),兩個(gè)FIFO交替工作,輪流執(zhí)行讀、寫功能,更好的避免了亞穩(wěn)態(tài)的出現(xiàn),避免了單FIFO造成數(shù)據(jù)丟失的問(wèn)題,避免了芯片一方在等待數(shù)據(jù)傳輸而造成工作效率低下等問(wèn)題,提高了系統(tǒng)傳輸效率,性能更穩(wěn)定可靠。
圖l為本發(fā)明的應(yīng)用系統(tǒng)簡(jiǎn)圖。圖2為接收數(shù)據(jù)速率分別大于、等于、小于發(fā)送速率時(shí)的讀寫時(shí)序圖。
具體實(shí)施方式
本發(fā)明的應(yīng)用系統(tǒng)如圖l所示,該系統(tǒng)基于3L平臺(tái)中FPGA與DSP之間的數(shù)據(jù)傳輸,采 用System Generator搭建模塊實(shí)現(xiàn),具有良好的可移植性和設(shè)計(jì)靈活性。FIF0采用寬16bits 深2048的block RAM實(shí)現(xiàn),其深度可以擴(kuò)展,且在SMT8096的實(shí)驗(yàn)板上得到驗(yàn)證。數(shù)據(jù)接收 端和數(shù)據(jù)發(fā)送端都由FPGA、 DSP和PC組成,發(fā)送端數(shù)據(jù)流為PC—〉DSP—〉FPGA,發(fā)送端由 DSP接收來(lái)自PC的數(shù)據(jù),發(fā)送到FPGA,接收端數(shù)據(jù)流為FPGA—>DSP—〉PC,接收端由DSP 接收來(lái)自FPGA的數(shù)據(jù),發(fā)送到PC機(jī)進(jìn)行數(shù)據(jù)顯示或存儲(chǔ)處理,接收端和發(fā)送端的FPGA均 具有異步雙FIFO,兩個(gè)FIFO交替工作,輪流執(zhí)行讀、寫功能。異步雙FIFO的交替工作由特 殊邏輯控制其每個(gè)FIFO的讀、寫使能信號(hào),保證發(fā)送端分段接、連續(xù)發(fā),接收端連續(xù)接、分 段發(fā),遷就DSP與PC處理數(shù)據(jù)速度慢、效率低的問(wèn)題。發(fā)送端DSP送來(lái)的分散數(shù)據(jù)經(jīng)過(guò)FPGA 的異步雙FIFO后連續(xù)發(fā)出,接收端FPGA送來(lái)的連續(xù)數(shù)據(jù)經(jīng)過(guò)其異步雙FIFO處理后使其分段 發(fā)出,保證每個(gè)FIFO滿時(shí)發(fā)送數(shù)據(jù),從而保證數(shù)據(jù)處理的高效性。邏輯控制考慮了接收速率 大于、等于、小于發(fā)送速率時(shí)的情況,避免了亞穩(wěn)態(tài)的出現(xiàn),從而提高了可靠性。開(kāi)始工作時(shí)寫FIFOl, FIF02閑置——狀態(tài)A;當(dāng)寫滿FIF01后,讀FIFOl,即FIF01向 外輸出數(shù)據(jù),寫F魔——狀態(tài)B;當(dāng)寫滿FIF02且讀空FIF01的情況下,讀FIF02,寫FIF01 ——狀態(tài)C;當(dāng)寫滿FIF01且讀空FIF02的情況下,轉(zhuǎn)為狀態(tài)B,自此以后狀態(tài)B、 C交替。 每一個(gè)FIFO的讀信號(hào)或者寫信號(hào)都由兩個(gè)FIFO的讀、寫、空、滿八個(gè)標(biāo)志信號(hào)和芯片外部 的使能信號(hào)控制。由上所述, 一個(gè)FIFO滿時(shí)才能向外部發(fā)送數(shù)據(jù),不滿時(shí)不發(fā)送數(shù)據(jù),發(fā)送 端便可以實(shí)現(xiàn)分段數(shù)據(jù)連續(xù)發(fā),接收端便可以實(shí)現(xiàn)連續(xù)數(shù)據(jù)分段發(fā)送,保證數(shù)據(jù)處理的連續(xù) 性,從而避免了某些快速器件有一些數(shù)據(jù)就工作,無(wú)數(shù)據(jù)就停止工作,頻繁的交替于工作與 非工作之間,使其以FIFO大小數(shù)據(jù)塊來(lái)工作,提高了器件的工作效率。圖2給出了接收數(shù)據(jù)速度分別大于、等于、小于發(fā)送速率時(shí)的讀寫時(shí)序。發(fā)送端FPGA的 數(shù)據(jù)接收速度慢于數(shù)據(jù)發(fā)送速度,需要FIFO執(zhí)行分段數(shù)據(jù)連續(xù)發(fā)送,此時(shí)異步雙FIFO的寫 緩存速度慢于讀緩存速度。接收端FPGA的數(shù)據(jù)接收速度快于數(shù)據(jù)發(fā)送速度,需要FIFO執(zhí)行 連續(xù)數(shù)據(jù)分段發(fā)送,此時(shí)異步雙FIFO的寫緩存速度快于讀緩存速度。上述異步雙FIFO的軟件仿真結(jié)果和硬件驗(yàn)證結(jié)果均達(dá)到了預(yù)期的要求,完成了 FPGA與 DSP之間數(shù)據(jù)傳輸?shù)脑O(shè)計(jì)。
權(quán)利要求
1.一種基于FPGA的異步雙FIFO的數(shù)據(jù)緩存方法,其特征在于,該數(shù)據(jù)緩存方法是數(shù)據(jù)接收端和數(shù)據(jù)發(fā)送端都由FPGA、DSP和PC組成,發(fā)送端由DSP接收來(lái)自PC的數(shù)據(jù),發(fā)送到FPGA,接收端由DSP接收來(lái)自FPGA的數(shù)據(jù),發(fā)送到PC機(jī)進(jìn)行數(shù)據(jù)顯示或存儲(chǔ)處理,接收端和發(fā)送端的FPGA均具有異步雙FIFO,兩個(gè)FIFO交替工作,輪流執(zhí)行讀、寫功能;異步雙FIFO的交替工作由邏輯控制其每個(gè)FIFO的讀、寫使能信號(hào),使發(fā)送端分段接、連續(xù)發(fā),接收端連續(xù)接、分段發(fā),發(fā)送端DSP送來(lái)的分散數(shù)據(jù)經(jīng)過(guò)FPGA的異步雙FIFO后連續(xù)發(fā)出,接收端FPGA送來(lái)的連續(xù)數(shù)據(jù)經(jīng)過(guò)其異步雙FIFO處理后使其分段發(fā)出,使每個(gè)FIFO滿時(shí)發(fā)送數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基于FPGA的異步雙FIFO的數(shù)據(jù)緩存方法,其特征在于邏 輯控制分為接收速率大于、等于、小于發(fā)送速率時(shí)的情況,發(fā)送端FPGA的數(shù)據(jù)接收速度慢 于數(shù)據(jù)發(fā)送速度時(shí),F(xiàn)IFO執(zhí)行分段數(shù)據(jù)連續(xù)發(fā)送;接收端FPGA的數(shù)據(jù)接收速度快于數(shù)據(jù)發(fā) 送速度時(shí),F(xiàn)IFO執(zhí)行連續(xù)數(shù)據(jù)分段發(fā)送。
全文摘要
本發(fā)明公開(kāi)了一種基于FPGA的異步雙FIFO的數(shù)據(jù)緩存方法,該數(shù)據(jù)緩存方法是數(shù)據(jù)接收端和數(shù)據(jù)發(fā)送端都由FPGA、DSP和PC組成,發(fā)送端由DSP接收來(lái)自PC的數(shù)據(jù),發(fā)送到FPGA,接收端由DSP接收來(lái)自FPGA的數(shù)據(jù),發(fā)送到PC機(jī)進(jìn)行數(shù)據(jù)顯示或存儲(chǔ)處理,接收端和發(fā)送端的FPGA均具有異步雙FIFO,兩個(gè)FIFO交替工作,輪流執(zhí)行讀、寫功能,使發(fā)送端分段接、連續(xù)發(fā),接收端連續(xù)接、分段發(fā)。本發(fā)明采用兩個(gè)FIFO之間的讀、寫、空、滿信號(hào),兩個(gè)FIFO交替工作,輪流執(zhí)行讀、寫功能,更好的避免了亞穩(wěn)態(tài)的出現(xiàn),避免了單FIFO造成數(shù)據(jù)丟失的問(wèn)題,避免了芯片一方在等待數(shù)據(jù)傳輸而造成工作效率低下等問(wèn)題,提高了系統(tǒng)傳輸效率,性能更穩(wěn)定可靠。
文檔編號(hào)G06F5/10GK101403962SQ20081015978
公開(kāi)日2009年4月8日 申請(qǐng)日期2008年11月13日 優(yōu)先權(quán)日2008年11月13日
發(fā)明者劉朝娜, 健 孫, 楠 岑, 彭 張, 旭 杜, 王鳳菊, 袁東風(fēng), 賈會(huì)超, 魏麗香 申請(qǐng)人:山東大學(xué)