FPGA與ADSP TS201的總線(xiàn)接口設計方案
1.2 突發(fā)流水線(xiàn)協(xié)議
因為數據總線(xiàn)位寬小于數據位寬,那么它只能通過(guò)兩次傳輸來(lái)完成。但是如果DSP沒(méi)有任何指示信號,FPGA并不知道當前傳輸是高32位數據,還是低32位數據,這時(shí)候另外一個(gè)信號BURST就顯得尤為重要了。
引腳BRST可以用來(lái)指示多個(gè)傳輸過(guò)程合成一個(gè)傳輸過(guò)程,圖2是DSP通過(guò)32位數據總線(xiàn)寫(xiě)64位數據時(shí)序圖。
由圖2可以看出,數據傳輸機制與普通流水協(xié)議相同,只多了一個(gè)BRST指示信號,它與地址1同時(shí)有效,表示本次數據沒(méi)有傳輸完畢,下次要傳輸的數據與本次傳輸的數據是一個(gè)整體,即BRST有效時(shí)傳輸是低32位數據,無(wú)效時(shí)傳輸的是高32位數據,這樣就實(shí)現了在32位數據總線(xiàn)上傳輸64位數據,如果沒(méi)有BRST信號,該過(guò)程會(huì )被認為是2次32位傳輸。
同理,如果用32位數據總線(xiàn)傳輸128位數據,在傳輸前3個(gè)32位數據的時(shí)候,BRST信號有效,傳輸最后一個(gè)32位數據BRST無(wú)效。
注意:使用流水協(xié)議時(shí),流水深度由傳輸類(lèi)型(讀數據還是寫(xiě)數據)決定。在寫(xiě)數據傳輸中,流水深度固定為1;在讀數據傳輸中,流水線(xiàn)深度可由用戶(hù)編程決定,即由系統配置寄存器SYSCON決定,在1~4之間可變。
由于DSP的協(xié)議是相對固定的,FPGA只需按照協(xié)議進(jìn)行設計即可,下面以DSP訪(fǎng)問(wèn)FPGA內部寄存器為例詳細介紹。筆者建議采用同步設計,主要信號、輸出信號都由時(shí)鐘沿驅動(dòng),可以有效避免毛刺。
為了使所設計的模塊通用化,可設流水深度、數據總線(xiàn)位寬、寄存器位寬、寄存器地址可設。筆者建議采用參數化設計,使用參數傳遞語(yǔ)言GENERIC將參數傳遞給實(shí)體,在實(shí)體內部使用外if…else結構,這樣在一個(gè)程序中可以包含各種情況,但不會(huì )增加邏輯的使用量。下面以個(gè)別情況為例,詳細介紹。
評論