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