對於多個FPGA之間的通訊,只要IO連線上了,對於高速的資料流需要同步時鐘,對於低速的介面,只需要非同步處理即可。下面介紹幾種FPGA之間常用的資料通訊方式。
一、GPIO通訊
兩塊FPGA之間透過普通IO互連,加上上拉電阻或下拉電阻的方式非同步通訊,這類通訊適合電平訊號,使能訊號,邏輯控制訊號的非同步處理,起到通知,控制作用。
二、低速裝置通訊
兩塊FPGA之間的常用低速裝置通訊有以下幾個
1、非同步串列埠通訊(UART)
非同步串列埠通訊,是最常見的通訊方式之一,是一種應用廣泛的短距離序列傳輸介面。常常用於短距離、低速、低成本的通訊中。基本的UART通訊只需要兩條訊號線(RXD、TXD)就可以完成資料的相互通訊,接收與傳送是全雙工形式。TXD是UART傳送端,為輸出;RXD是UART接收端,為輸入。
uart的資料協議簡單,如下
2、SPI匯流排通訊
SPI 匯流排有3線制(片選CS,時鐘SCK,輸入輸出SDA)、四線制(片選CS,時鐘SCK,輸入SDIN、輸出SDOUT)等,常用於操作NOR FLASH,一些專用晶片的配置匯流排,是一種高速的,全雙工,同步的通訊匯流排,SPI匯流排有四種工作模式,常見模式0和模式3。
3、I2C通訊
I2C匯流排常見於讀寫E2PROM,專用晶片的配置匯流排,DSP的啟動方式之一。I2C匯流排只有兩根線,時鐘SCL,資料SDA(inout),從裝置提供應答。I2C的速率有最大400K、100K。
I2C時序如下:
三、高速通訊
1、GTX/P/H通訊
1)、RapidIO
Rapidio互連架構,旨在與最流行的整合通訊處理器、主機處理器和網路數字訊號處理器,是一種高效能的分組交換互連技術。IT地址高效能嵌入式工業對可靠性、增加頻寬的需求,以及更快的匯流排速度。
Rapidio標準分為三層:邏輯層、傳輸層和物理層。
邏輯層定義了整個協議和包格式。
運輸層提供路線資料包從一個端點移動到另一個端點所需的資訊。
物理層 描述裝置級介面細節,如包傳輸機制、流控制、電氣特性和低階錯誤管理。
對於RapidIO通訊,常採用FPGA內部SRIO IP core實現,SRIO系統框圖如下:
2)、PCIE
PCI Express核心的7系列FPGA整合塊是一個可靠、高頻寬的可擴充套件的序列互連構建模組,它可配置為端點和根埠應用程式,可用於通訊、多媒體、伺服器和移動平臺,並支援高階等應用程式醫學成像、圖形密集型影片遊戲、DVD質量流媒體影片桌面和萬兆乙太網介面卡。
PCIE IP框圖如下:
3)、10G乙太網
10G乙太網的實現主要採用FPGA內部MAC core和PMA/PCS核實現。對於高速的網路傳輸一般使用UDP傳輸協議,不適合TCP/IP協議(實現有難度)。UDP的優點就是不需要建立連線。對於兩塊FPGA之間傳輸資料,只用到MAC層傳輸即可。
4)、aurora 8B/10B
aurora 8B/10B IPcore設定如下:
圖 aurura ip引數設定一致
5)、aurora64B/66B
aurora64B/66B IPcore 設定如下:
2、SelectIO
1)、CameraLink
CameraLink介面常用在相機或高速影象感測器,用於傳輸高速影象、影片等。
2)、High Speed IO
高效能的IO速度能跑到幾百M,匯流排包括高速時鐘和高速資料線,利用 IDELAYE2、IDELAYCTRL、ODELAYE2原語,透過訓練字調節IO輸入延時(ps級),對齊資料的相位,便於時鐘取樣,Serdes實現了高速串並轉換。
Serdes 輸入輸出實現依賴於xilinx的底層原語,serdes輸入如下:
serdes輸出如下:
總結,FPGA與FPGA之間通訊很簡單,能做非同步傳輸,也可以同步傳輸,可以低速傳輸,也可以高速傳輸。
對於多個FPGA之間的通訊,只要IO連線上了,對於高速的資料流需要同步時鐘,對於低速的介面,只需要非同步處理即可。下面介紹幾種FPGA之間常用的資料通訊方式。
一、GPIO通訊
兩塊FPGA之間透過普通IO互連,加上上拉電阻或下拉電阻的方式非同步通訊,這類通訊適合電平訊號,使能訊號,邏輯控制訊號的非同步處理,起到通知,控制作用。
二、低速裝置通訊
兩塊FPGA之間的常用低速裝置通訊有以下幾個
1、非同步串列埠通訊(UART)
非同步串列埠通訊,是最常見的通訊方式之一,是一種應用廣泛的短距離序列傳輸介面。常常用於短距離、低速、低成本的通訊中。基本的UART通訊只需要兩條訊號線(RXD、TXD)就可以完成資料的相互通訊,接收與傳送是全雙工形式。TXD是UART傳送端,為輸出;RXD是UART接收端,為輸入。
uart的資料協議簡單,如下
2、SPI匯流排通訊
SPI 匯流排有3線制(片選CS,時鐘SCK,輸入輸出SDA)、四線制(片選CS,時鐘SCK,輸入SDIN、輸出SDOUT)等,常用於操作NOR FLASH,一些專用晶片的配置匯流排,是一種高速的,全雙工,同步的通訊匯流排,SPI匯流排有四種工作模式,常見模式0和模式3。
3、I2C通訊
I2C匯流排常見於讀寫E2PROM,專用晶片的配置匯流排,DSP的啟動方式之一。I2C匯流排只有兩根線,時鐘SCL,資料SDA(inout),從裝置提供應答。I2C的速率有最大400K、100K。
I2C時序如下:
三、高速通訊
1、GTX/P/H通訊
1)、RapidIO
Rapidio互連架構,旨在與最流行的整合通訊處理器、主機處理器和網路數字訊號處理器,是一種高效能的分組交換互連技術。IT地址高效能嵌入式工業對可靠性、增加頻寬的需求,以及更快的匯流排速度。
Rapidio標準分為三層:邏輯層、傳輸層和物理層。
邏輯層定義了整個協議和包格式。
運輸層提供路線資料包從一個端點移動到另一個端點所需的資訊。
物理層 描述裝置級介面細節,如包傳輸機制、流控制、電氣特性和低階錯誤管理。
對於RapidIO通訊,常採用FPGA內部SRIO IP core實現,SRIO系統框圖如下:
2)、PCIE
PCI Express核心的7系列FPGA整合塊是一個可靠、高頻寬的可擴充套件的序列互連構建模組,它可配置為端點和根埠應用程式,可用於通訊、多媒體、伺服器和移動平臺,並支援高階等應用程式醫學成像、圖形密集型影片遊戲、DVD質量流媒體影片桌面和萬兆乙太網介面卡。
PCIE IP框圖如下:
3)、10G乙太網
10G乙太網的實現主要採用FPGA內部MAC core和PMA/PCS核實現。對於高速的網路傳輸一般使用UDP傳輸協議,不適合TCP/IP協議(實現有難度)。UDP的優點就是不需要建立連線。對於兩塊FPGA之間傳輸資料,只用到MAC層傳輸即可。
4)、aurora 8B/10B
aurora 8B/10B IPcore設定如下:
圖 aurura ip引數設定一致
5)、aurora64B/66B
aurora64B/66B IPcore 設定如下:
2、SelectIO
1)、CameraLink
CameraLink介面常用在相機或高速影象感測器,用於傳輸高速影象、影片等。
2)、High Speed IO
高效能的IO速度能跑到幾百M,匯流排包括高速時鐘和高速資料線,利用 IDELAYE2、IDELAYCTRL、ODELAYE2原語,透過訓練字調節IO輸入延時(ps級),對齊資料的相位,便於時鐘取樣,Serdes實現了高速串並轉換。
Serdes 輸入輸出實現依賴於xilinx的底層原語,serdes輸入如下:
serdes輸出如下:
總結,FPGA與FPGA之間通訊很簡單,能做非同步傳輸,也可以同步傳輸,可以低速傳輸,也可以高速傳輸。