基于CPCI總線多DSP系統(tǒng)的高速主機(jī)接口設(shè)計(jì)
2.2 設(shè)計(jì)思想本文引用地址:http://m.butianyuan.cn/article/152127.htm
PCI局部端的時(shí)鐘是66MHz,而DSP共享總線為100MHz,時(shí)鐘的不匹配會(huì)給邏輯設(shè)計(jì)提出很多時(shí)序方面的問(wèn)題。另外,PCI局部端數(shù)據(jù)總線是32位,而SDRAM數(shù)據(jù)總線是64位,如何匹配數(shù)據(jù)寬度也是一個(gè)問(wèn)題。而且PCI局部端和DSP、SDRAM在控制時(shí)序上也有很大差別。
圖1中顯示的是共享總線結(jié)構(gòu),DSP、SDRAM和FPGA都掛在DSP的外部總線上。DSP之間的通訊可以使用DSP總線;各個(gè)DSP訪問(wèn)SDRAM時(shí),也要選擇DSP總線;而且當(dāng)主機(jī)訪問(wèn)DSP通訊時(shí),也會(huì)不可避免地使用DSP總線。因此不難得出這樣的結(jié)論:DSP總線將可能成為系統(tǒng)的瓶頸所在。所以在設(shè)計(jì)主機(jī)接口時(shí),必須提高總線的使用效率,減少申請(qǐng)DSP總線的次數(shù),每次申請(qǐng)使用DSP總線時(shí)都要盡可能多地傳輸數(shù)據(jù)。
在微處理器設(shè)計(jì)中,Cache被用來(lái)緩存數(shù)據(jù)、解決高速CPU訪問(wèn)低速存儲(chǔ)器時(shí)的瓶頸問(wèn)題。為了解決上述兩大問(wèn)題,在FPGA的設(shè)計(jì)中也采用了類(lèi)似Cache的結(jié)構(gòu)來(lái)隔離不同總線間的傳輸。在Cache的兩邊有兩個(gè)狀態(tài)機(jī)來(lái)控制Cache的讀寫(xiě)和總線數(shù)據(jù)的訪問(wèn)。使用Cache后,DSP共享總線和PCI局部端總線將被去耦合,這樣可以使兩級(jí)總線的數(shù)據(jù)
吞吐量都盡量達(dá)到自己的峰值速度。FPGA內(nèi)部有豐富的存儲(chǔ)資源,大塊的BlockRAM可以方便地搭建成Cache;而且Cache越大,越能提高主機(jī)訪問(wèn)DSP和SDRAM的效率,減小占用DSP總線的時(shí)間,從而可以縮短DSP間通過(guò)DSP總線互訪時(shí)的等待時(shí)間。
圖3是DSP/SDRAM接口框圖,都是基于雙狀態(tài)機(jī)加上Cache結(jié)構(gòu)[2]。兩個(gè)狀態(tài)機(jī)同時(shí)監(jiān)測(cè)Cache當(dāng)前空、滿或是數(shù)據(jù)個(gè)數(shù)等狀態(tài),以決定其動(dòng)作;另外狀態(tài)機(jī)間還有命令通道,局部端狀態(tài)機(jī)用它向DSP/SDRAM端狀態(tài)機(jī)發(fā)出命令。由于這部分跨越了兩個(gè)不同頻率的時(shí)鐘域,因此必須加上同步電路以防止寄存器不定態(tài)的產(chǎn)生。
;
SDRAM接口與DSP接口不同處是它還有一個(gè)標(biāo)準(zhǔn)的SDRAM控制器,負(fù)責(zé)將自定義的SDRAM讀寫(xiě)命令翻譯成SDRAM控制信號(hào)線RAS#、CAS#和WE#的組合。將SDRAM控制器獨(dú)立出來(lái)可以使得設(shè)計(jì)更加模塊化,避免SDRAM端狀態(tài)機(jī)過(guò)于龐大[3]。
2.3 DSP/SDRAM接口的實(shí)現(xiàn)
主機(jī)訪問(wèn)DSP時(shí),必須遵守DSP的流水線協(xié)議,其中重要的是讀寫(xiě)時(shí)的流水深度:讀操作時(shí)流水深度始終為四個(gè)周期,寫(xiě)操作時(shí)流水深度始終為一個(gè)周期。主機(jī)執(zhí)行來(lái)自或去往DSP的突發(fā)操作時(shí),支持超過(guò)四字的連續(xù)突發(fā)操作。當(dāng)主機(jī)發(fā)出突發(fā)首地址,只要BRST#信號(hào)有效,DSP就在內(nèi)部對(duì)地址累加。首次傳送的起始地址和最后一次傳送的結(jié)束地址必須四字對(duì)齊。這里只支持DSP端4字突發(fā)。
評(píng)論