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