国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種并行異步FIFO控制算法設(shè)計

2012-07-25 03:18劉鳳偉
微處理機(jī) 2012年5期
關(guān)鍵詞:控制參數(shù)存儲器控制算法

劉鳳偉

(昆明船舶設(shè)備試驗(yàn)研究中心,昆明650051)

1 引言

在電子設(shè)計系統(tǒng)中,常常需要對各種數(shù)據(jù)進(jìn)行接收、存儲和發(fā)送。例如在數(shù)據(jù)采集系統(tǒng)中,需要通過高速AD、微處理器和一些接口電路實(shí)現(xiàn)數(shù)據(jù)的采集[1]。但是由于不同電路/系統(tǒng)之間的工作時鐘速度不同,通常會給數(shù)據(jù)的傳輸帶來困難,而利用FIFO電路實(shí)現(xiàn)不同時鐘域數(shù)據(jù)的接收、存儲和發(fā)送具有接口簡單、讀寫方便的優(yōu)點(diǎn),使用異步FIFO是有效解決在兩個不同時鐘系統(tǒng)之間快速而方便地傳輸實(shí)時數(shù)據(jù)的方法[2]。在此提出了一種FIFO控制算法,具有工作速度高、可靠性好、設(shè)計簡單靈活的優(yōu)點(diǎn),具有廣泛的應(yīng)用前景。

2 FIFO控制算法

FIFO控制算法,即是一種先入先出的存儲器控制算法,其使用一個雙端口存儲器存放數(shù)據(jù),數(shù)據(jù)發(fā)送方在一端寫入數(shù)據(jù),接收方在另一端讀出數(shù)據(jù),良好的FIFO控制算法能夠非常好的協(xié)調(diào)兩個時鐘域的讀/寫工作,滿足高時鐘頻率的要求。在FIFO設(shè)計中,有軟件FIFO和硬件FIFO,常用的硬件FIFO由專用的ASIC芯片組成,提供外部接口,可以很方便的實(shí)現(xiàn)數(shù)據(jù)控制,例如IDT公司的7200系列異步雙口FIFO存儲器[3]。根據(jù)FIFO的工作時鐘,可將FIFO分為同步FIFO和異步FIFO,同步FIFO是指讀/寫時鐘是同一個時鐘,在時鐘沿來臨時同時對存儲器進(jìn)行讀/寫操作,異步FIFO是指讀/寫時鐘不是同一個時鐘,而是相互獨(dú)立的,在時鐘沿來臨時分別對存儲器進(jìn)行讀/寫操作[4]。

FIFO控制算法包括兩部分:寫FIFO算法和讀FIFO算法。以下將詳細(xì)分別介紹這兩種算法。為了更好地理解這兩種算法,首先定義與這兩種算法相關(guān)的控制參數(shù),其中包括:Flag:標(biāo)志位;CW Enable:寫使能;CREnable:讀使能;CWNum:當(dāng)前能夠讀取數(shù)據(jù)的個數(shù);CRNum:當(dāng)前能夠?qū)懭霐?shù)據(jù)的個數(shù);CurWNum:當(dāng)前寫指針相對于首地址的位置;CurRNum:當(dāng)前讀指針相對于首地址的位置;WFull:寫存儲器滿標(biāo)志;REmpty:讀存儲器空標(biāo)志;Len:存儲器深度;DAT[Len]:定義的存儲器空間。

在對FIFO操作前,需要首先初始化系統(tǒng)。包括初始化FIFO的控制參數(shù)和存儲器。初始化FIFO的控制參數(shù):Flag=0;CWEnable=1;CREnable=1;CWNum=0;CRNum=0;CurWNum=0;CurRNum=0;WFull=0;REmpty=0;初始化存儲器:存儲器深度:Len;存儲器的存儲空間:DAT[Len]。

2.1 寫FIFO控制算法

寫FIFO的控制算法:如圖1所示,首先,判斷寫使能CWEnable是否等于1,等于1說明此時可以進(jìn)行寫操作,不等于1,則說明此時不能進(jìn)行寫操作,則退出。然后根據(jù)標(biāo)志位Flag的狀態(tài),計算出此時可以寫入數(shù)據(jù)的總個數(shù)CWNum;然后判斷CWNum是否大于0。如果不大于0,則說明此時存儲器不能寫入數(shù)據(jù),此時置WFull為1,表示存儲器已經(jīng)寫滿,然后結(jié)束寫FIFO操作,如果大于0,則說明此時存儲器可以寫入數(shù)據(jù);緊接著把數(shù)據(jù)寫入地址為CurWNum的存儲器中;其次判斷CurWNum是否等于Len,如果不等于Len則說明還沒有寫到存儲器的頂端,然后結(jié)束寫FIFO操作,如果等于Len則說明此時已經(jīng)寫到了存儲器的頂端,此時需要禁止標(biāo)志位CREnable使其等于0(禁止讀FIFO操作),然后改寫標(biāo)志位Flag為1和CurWNum為0,緊接著釋放讀標(biāo)志位CREnable等于1;最后結(jié)束寫FIFO操作。

圖1 寫FIFO的流程圖

2.2 讀FIFO控制算法

讀FIFO的控制算法流程:如圖2所示,首先判斷讀使能CREnable是否等于1,等于1說明此時可以進(jìn)行讀操作,不等于1則說明此時不能進(jìn)行讀操作,則退出。然后根據(jù)標(biāo)志位Flag的狀態(tài),計算出此時可以讀出數(shù)據(jù)的總個數(shù)CRNum;然后判斷CRNum是否大于0,如果不大于0,則說明此時不能從存儲器讀取數(shù)據(jù),此時置REmpty為1,表示存儲器已經(jīng)讀空,然后結(jié)束讀FIFO操作。如果大于0,則說明此時可以從存儲器讀取數(shù)據(jù);緊接著從地址為CurRNum的存儲器中讀取數(shù)據(jù);其次判斷CurRNum是否等于Len,如果不等于Len,則說明還沒有讀到存儲器的頂端,然后結(jié)束讀FIFO操作,如果等于Len,則說明此時已經(jīng)讀取到了存儲器的頂端,此時需要禁止寫標(biāo)志位CWEnable使其等于0(禁止寫FIFO操作),然后改寫標(biāo)志位Flag為0和CurRNum為0,緊接著釋放寫標(biāo)志位CWEnable等于1,最后結(jié)束讀FIFO操作。

3 測試系統(tǒng)設(shè)計與結(jié)果分析

在第二節(jié)中,分別詳細(xì)介紹了寫FIFO的控制算法和讀FIFO的控制算法。為了驗(yàn)證該控制算法的系統(tǒng)性能和指標(biāo),根據(jù)系統(tǒng)需求,搭建了硬件測試平臺,硬件包括:多通道數(shù)據(jù)采集板、PC機(jī)、USBRS232轉(zhuǎn)接器、示波器和萬用表;系統(tǒng)軟件:Microsoft Visual C++6.0開發(fā)的專用上位機(jī)軟件,測試系統(tǒng)框圖如圖3所示。

圖2 讀FIFO的流程圖

圖3 測試系統(tǒng)原理框圖

測試結(jié)果表明,運(yùn)用該FIFO控制算法的多通道數(shù)據(jù)采集板性能穩(wěn)定可靠。該FIFO控制算法設(shè)計結(jié)構(gòu)簡單、性能穩(wěn)定可靠,適用于多種FIFO運(yùn)用場合,對更高性能的數(shù)據(jù)采集系統(tǒng)設(shè)計具有非常重要的意義。

[1] 高禮忠.FIFO在高速數(shù)據(jù)采集系統(tǒng)中應(yīng)用[J].電子測量技術(shù),2005(1):51.

[2] 魏欣,王勇.一種高效的異步FIFO設(shè)計方法[J].儀器儀表用戶,2009,16(1):102.

[3] 戴志濤.PCI總線雙向FIFO緩沖并行通信的實(shí)現(xiàn)[J].微處理機(jī),2002,(3):53-55,64..

[4] 李輝,王暉.基于VHDL的異步FIFO設(shè)計[J].現(xiàn)代電子技術(shù),2011,34(14):154.

猜你喜歡
控制參數(shù)存儲器控制算法
靜態(tài)隨機(jī)存儲器在軌自檢算法
Birkhoff系統(tǒng)穩(wěn)定性的動力學(xué)控制1)
紡織機(jī)械手專利瞄準(zhǔn)控制算法
基于ARM+FPGA的模塊化同步控制算法研究
PCB線路板含鎳廢水處理工藝研究
基于PI與準(zhǔn)PR調(diào)節(jié)的并網(wǎng)逆變器控制參數(shù)設(shè)計
基于模糊控制的一階倒立擺系統(tǒng)穩(wěn)定控制研究
任意2~k點(diǎn)存儲器結(jié)構(gòu)傅里葉處理器
基于航跡差和航向差的航跡自動控制算法
存儲器——安格爾(墨西哥)▲