首頁/ 汽車/ 正文

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

本文主要介紹ZYNQ PS + PL異構多核案例的使用說明,適用開發環境:Windows 7/10 64bit、Xilinx Vivado 2017。4、Xilinx SDK 2017。4。其中測試板卡為TMS320C6678開發板,文章內容包含多個特色案例,如axi_gpio_led_demo案例、axi_timer_pwm_demo案例、axi_uart_demo案例、emio_gpio_led_demo案例、mig_dma案例等,由於篇幅過長,文章分為上下6個小節展示,歡迎大家按照順序進行文章內容檢視。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

本次測試板卡為TMS320C6678開發板,它是一款基於TI KeyStone架構C6000系列TMS320C6678八核C66x定點/浮點DSP,以及Xilinx Zynq-7000系列XC7Z045/XC7Z100 SoC處理器設計的高階異構多核評估板,TMS320C6678開發板每核心主頻可高達1。25GHz,XC7Z045/XC7Z100整合PS端雙核ARM Cortex-A9 + PL端Kintex-7架構28nm可程式設計邏輯資源,引出雙路CameraLink、雙路SFP+光口、四路千兆網口、雙路SATA、雙路PCIe、四路USB、雙路CAN、雙路CAMERA、HDMI IN/OUT、LVDS、LCD、RS485、RS232、Micro SD、HPC FMC等介面。

IP核配置

GMII to RGMII IP核開發文件為產品資料“6-開發參考資料\Xilinx官方參考文件\”目錄下的《pg160-gmii-to-rgmii。pdf》,具體說明如下。

GMII to RGMII IP核為Zynq-7000 SoC中的乙太網物理裝置和千兆乙太網控制器之間提供了RGMII介面的轉換,該IP核可在三種不同的速度模式(10/100/1000Mb/s)之間動態切換。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 249

可透過MDIO設定IP核的控制暫存器,復位IP核和切換網口的鏈路速度。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 250

將GMII to RGMII IP核PHY地址設定為8,並勾選Instantiate IDELAYCTRL in design。

備註:

此處的IP核PHY地址不能與硬體PHY地址相同,否則會導致訪問出錯。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 251

在約束檔案中設定RGMII RX介面的IDELAY tap的值。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 252

裝置樹配置說明

動態裝置樹原始檔為案例“sw\linux_system\src\”目錄下的dts檔案。

指定GEM1的工作時鐘,該工作時鐘由FCLK2提供。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 253

配置GEM1裝置節點屬性。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 254

axi_10g_ethernet_dma案例

案例功能

案例功能:評估板透過SFP+光口進行資料外部迴環,以測試基於SFP+光口的10G網路通訊的速率與誤位元速率。通訊資料基於MAC協議進行收發。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 255 程式功能框圖

操作說明

將評估板ZYNQ端撥碼開關設定為00(1~2),此檔位為JTAG模式,並使用Micro USB線連線PC機和評估板PS端除錯串列埠CON9(USB TO

UART),使用RS232交叉串列埠母母線、USB轉RS232公頭串列埠線,將評估板PL端除錯串列埠CON19(RS232)連線到PC機的USB介面

將一個SFP+多模雙纖光模組接入SFP1+光口,並使用一根光纖線纜將光模組的RX與TX相連線,形成外部迴環。SFP1+光口使用GTX Quad 110的MGTXRX_3、MGTXTX_3引腳。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 256

基於PS端裸機測試

載入PS端裸機程式axi_10g_ethernet_dma_a9。elf、PL端程式後,即可看到PS端串列埠除錯終端列印SFP+光口外部迴環的資料傳輸測試資訊。本案例的GTX頻寬配置為10Gbps,即理論速度為1250MB/s。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 257

可從上圖得到如下資訊:

SFP+光口外部迴環的資料傳輸速率為1035MB/s。

SFP+光口外部迴環的資料傳輸誤位元速率為0。

基於PL端MicroBlaze測試

將本案例PL端Vivado工程axi_10g_ethernet_dma_xxx。bin可執行檔案複製到評估板檔案系統“/lib/firmware/”目錄下,再將“baremetal_demo\bin\”目錄下的PL端MicroBlaze應用程式axi_10g_ethernet_dma_microblaze。bin和PS端應用程式tl_devmem_rw,以及CDCM6208時鐘配置程式clkgen_cdcm6208、時鐘配置檔案CDCM6208_Settings。ini複製到評估板檔案系統任意相同路徑下。

執行如下命令,載入MicroBlaze應用程式至PS端DDR的0x18000000地址。

Target# 。/tl_devmem_rw -w -a 0x18000000 -s 100000 -o byte -f axi_10g_ethernet_dma_microblaze。bin

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 258

執行如下命令執行CDCD6208配置程式,配置CDCD6208的Y4通道輸出156。25MHz時鐘,即配置SFP1+介面對應GTX通道的參考時鐘為156。25MHz。

Target# 。/clkgen_cdcm6208 -w 0 0x54 。/CDCM6208_Settings。ini

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 259

執行如下命令,載入PL端Vivado工程可執行檔案。

Target# echo axi_10g_ethernet_dma_xc7z045。bin > /sys/class/fpga_manager/fpga0/firmware

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 260

執行上述命令後,即可看到PL端串列埠除錯終端列印SFP+光口外部迴環的資料傳輸測試資訊。本案例的GTX頻寬配置為10Gbps,即理論速度為1250MB/s。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 261

可從上圖得到如下資訊:

SFP+光口外部迴環的資料傳輸速率為1035MB/s。

SFP+光口外部迴環的資料傳輸誤位元速率為0。

關鍵程式碼(PS端裸機/PL端MicroBlaze)

配置10G Ethernet IP核為巨幀模式,使能RX和TX介面。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 262

初始化並校準Timer。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 263

初始化DMA裝置。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 264

使用輪詢模式,關閉DMA中斷。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 265

構建每次傳輸所要傳送的資料包。每一個MAC資料包的第12個Byte和第13個Byte的值表示MAC資料包的長度值。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 266

分別往DMA裝置寫入源地址、目的地址與資料量,並啟動DMA傳輸。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 267

啟動DMA傳輸後,使用Timer進行計時,等待DMA傳輸完成後計算資料傳輸速率。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 268

每次傳輸完成後校驗所傳輸的資料。先校驗接收到MAC資料包的第12個Byte和第13個Byte的值是否正確,然後按照建立資料包的格式填充對應的值,以便對使用者資料進行校驗。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 269

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 270

計算資料傳輸平均速率與誤位元速率。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 271

PS端裸機程式:透過PS端I2C配置CDCM6208的Y4通道輸出156。25Mhz時鐘,作為SFP+介面GTX的參考時鐘。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 272

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 273

Vivado工程說明

點選BLOCK DESIGN視窗下的“Address Editor”選項,檢視IP核地址,地址分配如下圖所示。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 274

IP核配置

10G Ethernet Subsystem IP核

本案例使用10G Ethernet Subsystem IP核實現MAC、PCS/PMA功能。

10G Ethernet Subsystem IP核開發文件為產品資料“6-開發參考資料\Xilinx官方參考文件\”目錄下的《pg157-axi-10g-ethernet。pdf》,具體配置說明如下。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 275 功能框圖

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 276 使用場景

根據手冊,按如下格式可透過AXI4-Stream介面收發資料包。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 277

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 278

AXI4-Stream介面位寬選擇64bit。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 279

AXI4-Lite匯流排時鐘配置為100MHz。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 280

選擇Include Shared Logic in core模組。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 281

勾選“Additional transceiver control and status ports”,設定TX Pre-Cursor、TX Post-Cursor和TX Diff Swing選項值以提高訊號質量。其中TX Pre-Cursor設定為0x04(00100),TX Post-Cursor設定為0x0F(001111),TX Diff Swing設定為0x6(0110)。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 282

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 283

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 284

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 285

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 286

AXI DMA IP核

本案例使用AXI DMA IP核將資料在BRAM與SFP+光口之間進行搬運。

AXI DMA(AXI Direct Memory Access) IP核開發文件為產品資料“6-開發參考資料\Xilinx官方參考文件\”目錄下的《pg021_axi_dma。pdf》,具體配置說明如下。

取消預設勾選的Enable Scatter Gather Engine選項,配置DMA工作模式為直接暫存器模式(Direct Register Mode)。

Width of Buffer Length Register設定為23,則DMA單次傳輸最大定址範圍為2^(Width of Buffer Length Register),DMA單次傳輸最大資料量為2^(Width of Buffer Length Register)*8=8MByte。

讀/寫通道的Memory Map Data Width、Stream Data Width均設定為64,Max Burst Size均設定為256。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 287

m_axi_mm2s_aclk和m_axi_s2mm_aclk的時鐘接到10G Ethernet Subsystem IP核的coreclk_out,即156。25MHz。

AXI BRAM Controller IP核

本案例使用AXI BRAM Controller IP核建立BRAM控制器。

AXI BRAM Controller IP核開發文件為產品資料“6-開發參考資料\Xilinx官方參考文件\”目錄下的《pg078-axi-bram-ctrl。pdf》,具體配置說明如下。

FCLK_CLK1輸出200MHz時鐘作為BRAM的工作時鐘。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 288

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 289

在BLOCK DESIGN介面的“Address Editor”選項中配置BRAM大小為1MByte。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 290

配置資料位寬為256,BRAM介面數量為1。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 291

Block Memory Generator IP核

本案例使用Block Memory Generator IP核建立BRAM資源。

Block Memory Generator IP核開發文件為產品資料“6-開發參考資料\Xilinx官方參考文件\”目錄下的《pg058-blk-mem-gen。pdf》,具體配置如下。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 292

udp_10g_dma案例

案例功能

案例功能:評估板透過SFP+光口進行資料外部迴環,以測試基於SFP+光口的10G UDP網路通訊的速率與誤位元速率。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 293 程式功能框圖

操作說明

將評估板ZYNQ端撥碼開關設定為00(1~2),此檔位為JTAG模式,並使用Micro USB線連線PC機和評估板PS端除錯串列埠CON9(USB TO

UART),使用RS232交叉串列埠母母線、USB轉RS232公頭串列埠線,將評估板PL端除錯串列埠CON19(RS232)連線到PC機的USB介面

將一個SFP+多模雙纖光模組接入SFP1+光口,並使用一根光纖線纜將光模組的RX與TX相連線,形成外部迴環。SFP1+光口使用GTX Quad 110的MGTXRX_3、MGTXTX_3引腳。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 294

基於PS端裸機測試

載入PS端裸機程式udp_10g_dma_a9。elf、PL端程式後,即可看到PS端串列埠除錯終端列印SFP+光口外部迴環的資料傳輸測試資訊。本案例的GTX頻寬配置為10Gbps,即理論速度為1250MB/s。

TMS320C6678開發板 ZYNQ PS + PL異構多核案例開發手冊(5)

圖 295

可從上圖得到如下資訊:

SFP+光口外部迴環的資料傳輸速率為1208MB/s。

SFP+光口外部迴環的資料傳輸誤位元速率為0。

相關文章

頂部