OpenCL™ - BSP - 支援中心

面向 OpenCL 的英特爾® FPGA SDK™ 使軟體開發人員能夠透過面向具有英特爾 CPU 和 FPGA 的異構平臺來加速其應用。英特爾® FPGA SDK for OpenCL™ 可以作為英特爾® Quartus® Prime 軟體的一部分安裝,也可以作為單獨的軟體包安裝。您可以從以下連結下載適用於 OpenCL 的英特爾 FPGA SDK。

下載 面向 OpenCL 的英特爾® FPGA 開發工具包™

歡迎來到OpenCL™BSP支持頁面!在這裡,您將找到有關如何規劃、設計和實現 OpenCL™ BSP 的資訊,並學習一些用於調試目的的提示和技巧。

此頁面旨在引導您從頭到尾完成開發 OpenCL™ 板級支援包 (BSP)(或設計/遷移 OpenCL 內核/演算法)的過程。在修改參考設計部分,您將找到有關如何將英特爾®參考平臺修改為您自己的自定義平臺以及如何在不出現時序故障的情況下編譯平面設計的資源。"平面佈置和定時收斂"部分提供了有關如何對設計進行分區並實現最大工作頻率的指導。它還描述了在構建BSP時序時關閉設計並保證時序收斂的技術。MMD 和 OpenCL 實用程式部分提供了重建 MMD 的步驟,並提供了有關 OpenCL 實用程式的詳細資訊。"調試"部分提供了一些工具和資源,用於調試可能遇到的問題。所有章節中都列出了在 BSP 開發過程中有用的文件和培訓課程。

1. 修改參考設計

開始

要開始 BSP 開發,請確保執行以下步驟:

  1. 確認已安裝面向 OpenCL ™ 和英特爾® Quartus® 軟體的英特爾® FPGA SDK。
  2. 驗證與 OpenCL ™ 引用 BSP 匹配的工具版本是否可用。
  3. 確認訪問完整的英特爾® Quartus®軟體許可證。

選擇參考設計

選擇適合您的自定義平台的參考設計

英特爾支援 OpenCL™以下平台的參考 BSP 設計。您還可以查看適用於特定平臺的 OpenCL™ BSP 移植指南:

修改參考設計

按照 OpenCL BSP 移植指南中的步驟開始修改參考設計。建議在設計更改完成後,嘗試編譯第一個內核。通常,我們使用一個名為 Boardtest的內核,它測試 BSP 的不同介面。以下指南中提到了有關板測試和通用 BSP 構建步驟的資訊:

面向 OpenCL 的英特爾® FPGA SDK™ 定製平臺工具包使用者指南 (PDF) ›

構建 BSP 的建議步驟:

  1. 在「平面」流中編譯 Boardtest 以生成時序閉合的".aocx"檔
  2. 通過運行板測試來驗證".aocx",並交叉檢查測試的介面頻寬期望值
  3. 開始為「基礎」構建進行平面規劃,以創建有保證的時序封閉 OpenCL BSP

2. 平面圖和定時關閉

開始

在OpenCL中,我們需要確定專案兩個不同修訂版本的時間安排 - 平面和基本修訂版本。平面修訂版是沒有任何分區或邏輯鎖定區域的修訂版,並使用 hardware/flat.qsf 檔來實現它。而基本修訂版是包括分區和邏輯鎖的修訂版,並使用 hardware/base.qsf 檔來實現它。我們建議您首先獲得一個時序乾淨的平面修訂作為一個良好的開端,然後進行平面規劃,以獲得設計的時間清潔基本修訂。

有關編譯流程的更多詳細資訊,請參閱英特爾® FPGA SDK for OpenCL™ 主機板支援包平面圖優化指南中的 OpenCL™ BSP 編譯流程 部分。

平面圖分區

從平面編譯開始,瞭解 BSP 的所有主要元件自然放置的位置(尤其是具有 I/O 連接的智慧財產權 (IP) 塊,如 PCIe* 或 DDR 記憶體)。

有關這方面的更多指南,請參閱英特爾® FPGA SDK for OpenCL™ 主機板支援包平面圖優化指南中的 OpenCL™ BSP 平面佈置指南部分。

有關詳細資訊,您還可以參閱 部分重新設定 使用者指南

修改PR區域

在基本編譯期間,從內核上的邏輯鎖定區域開始,其中包含freeze_wrapper_inst|kernel_system_inst。使用平面編譯和晶元規劃器來識別 BSP 硬體的大小和位置。嘗試使用邏輯鎖定區域為kernel_system保留更多資源。

有關這方面的更多指南,請參閱英特爾® FPGA SDK for OpenCL™ 主機板支援包平面圖優化指南中的 OpenCL™ BSP 平面佈置指南部分。

修復計時衝突

要修復設計中的時序衝突,您可能需要在IP核之間添加流水線階段。

有關更多準則,請參閱以下連結:

建立/保持約束

輸出目錄中的 .failing_paths.rpt 和 .failing_clocks.rpt 列出了設計中的主要故障。如果某些路徑 中存在一致故障,則可能需要為 /hardware/top.sdc 檔中的關鍵路徑設置最小或最大延遲約束。

對於相關問題,您可以參考「知識資料庫」頁面上的以下解決方法 -如何在Arria 10中關閉競爭性保留和設置違規的計時?

3. MMD和OpenCL™實用程式

MMD源開發或修改

MMD軟體庫在主機和加速板之間實現基本輸入/輸出(I/O),並提供開放、讀、寫等介面。MMD 庫驅動程式儲存為 Windows* 64 或 Linux* 64 格式,原始程式碼儲存在源資料夾中。

有關更多資訊,請參閱面向OpenCL的英特爾® FPGA 開發工具包使用者指南™創建 MMD 庫 部分。

公用事業支援

OpenCL™ 實用程式允許您使用面向 OpenCL™ 的英特爾® FPGA SDK 執行主機板存取。這包括 aocl 安裝、aocl 卸載、aocl 診斷、aocl 程式和 aocl 快閃記憶體。

有關更多資訊,請參閱面向 OpenCL的英特爾® FPGA SDK ™ 自訂平臺工具包使用者指南》中的"為OpenCL提供英特爾® FPGA SDK™ 實用程式支援"部分。

創建軟體實用程式和MMD層后,需要測試硬體設計。標準方法是生成電路板測試內核並在電路板上運行。

有關更多資訊,請參閱面向OpenCL的英特爾® FPGA 開發工具包使用者指南™測試 硬體設計 部分。

4. 調試

董事會啟動

本節説明您在調配英特爾® FPGA 開發套件或您自己的自定義主機板時解決問題。

要瞭解在啟動主機板時可能遇到的一些已知問題,請參閱 AN 807 中的以下部分:為面向 OpenCL 的英特爾® FPGA 開發套件配置英特爾® Arria® 10 GX FPGA 開發套件™ 應用說明:

平面圖和時間安排

有關為靜態邏輯使用最小區域併為 OpenCL™ 內核留出更多空間的提示和技巧,請參閱 AN 824: 面向 OpenCL 的英特爾® FPGA SDK™ 板支援包平面圖優化指南

運行時調試

可以設置某些環境變數,以便在運行主機應用程式時獲取更多調試資訊。這些是面向 OpenCL 的英特爾® FPGA SDK™特定的環境變數,可幫助診斷自定義平台設計的問題。

下表列出了所有這些環境變數,並對其進行了詳細描述。

環境變數

描述

ACL_HAL_DEBUG

將此變數設置為 1 到 5 的值,以增加硬體抽象層 (HAL) 的調試輸出,該層直接與 MMD 層介面。

ACL_PCIE_DEBUG

將此變數設置為 1 到 10000 的值,以增加 MMD 的調試輸出。此變數設置對於確認是否正確讀取了版本 ID 寄存器以及 UniPHY IP 核是否已校準非常有用。

ACL_PCIE_JTAG_CABLE

設置此變數以覆蓋指定電纜編號的預設quartus_pgm參數。預設值為電纜 1。如果有多根英特爾® FPGA 下載電纜,您可以通過設置此變數來指定特定的電纜。

ACL_PCIE_JTAG_DEVICE_INDEX

設置此變數以覆蓋指定 FPGA 裝置索引的預設quartus_pgm參數。默認情況下,此變數的值為1。如果FPGA不是JTAG鏈中的第一個器件,則可以自定義該值。

ACL_PCIE_USE_JTAG_PROGRAMMING

設置此變數以強制MMD使用JTAG電纜而不是部分重新配置來重新程式設計FPGA。

ACL_PCIE_DMA_USE_MSI

如果要在 Windows* 上使用 MSI 進行直接記憶體存存訪問 (DMA) 傳輸,請設定此變數。

信號抽頭調試

由於 OpenCL™ 設計不支援模擬功能,因此使用信號分路邏輯分析儀是調試這些設計的最佳方式。

要調試內核掛起或與記憶體介面或aocl診斷故障相關的問題的任何設計,建議使用信號分路邏輯分析儀。

要瞭解有關信號抽頭邏輯分析儀的更多資訊,請參閱《調試工具使用者指南》中的 使用信號抽頭邏輯分析儀進行設計調試 部分。

執行以下步驟將信號分路器檔添加到 BSP 設計中

1. 開啟信號分路器 GUI 並添加所有要分析的信號。

2. 將 STP 檔保存在與英特爾® Quartus®軟體項目檔相同的目錄中。

3. 將以下命令列添加到 flat.qsf 中:

  • set_global_assignment -名稱ENABLE_SIGNALTAP打開
  • set_global_assignment -name USE_SIGNALTAP_FILE <file_name>.stp
  • set_global_assignment -name SIGNALTAP_FILE <file_name>.stp

4. 從 AOCL 命令行重新編譯內核。

已知問題

5. 推薦閱讀和培訓

OpenCL™ 視頻

標題

描述

OpenCL 入門™第 1 部分

本視頻介紹了使用 Windows* 機器在 Cyclone® V SoC 上運行兩個應用程式 OpenCL™ HelloWorld 和 OpenCL ™快速傅里葉變換 (FFT) 的開箱即用過程。

OpenCL 入門™第 2 部分

本視頻介紹了使用 Windows* 機器在 Cyclone 上運行 OpenCL™ HelloWorld 和 OpenCL™ FFT ® V SoC 上運行兩個應用程式的開箱即用過程。

OpenCL 入門第 3 部分

本視頻介紹了使用 Windows* 機器在 Cyclone 上運行 OpenCL™ HelloWorld 和 OpenCL™ FFT ® V SoC 上運行兩個應用程式的開箱即用過程。

OpenCL 入門第 4 部分

本視頻介紹了使用 Windows* 機器在 Cyclone 上運行 OpenCL™ HelloWorld 和 OpenCL™ FFT ® V SoC 上運行兩個應用程式的開箱即用過程。

OpenCL 入門第 5 部分

本視頻介紹了使用 Windows* 機器在 Cyclone 上運行 OpenCL™ HelloWorld 和 OpenCL™ FFT ® V SoC 上運行兩個應用程式的開箱即用過程。

如何將自定義 Verilog 模組/設計打包為 OpenCL™ 庫

該視頻討論了為什麼客戶可能會使用此功能在 OpenCL 中擁有其自定義處理塊 (RTL™內核代碼。該視頻介紹了設計範例(如 make 檔、配置檔),並解釋了編譯流程。該視頻還展示了設計範例的演示。

OpenCL™英特爾® FPGA SoC FPGA(Linux 主機)上 – 第 1 部分 – 工具下載和設置

本視頻向您展示如何下載、安裝和配置開發面向英特爾 FPGA FPGA 的 OpenCL™ 內核和主機代碼所需的工具。

OpenCL™英特爾 FPGA SoC FPGA(Linux 主機)上 – 第 2 部分 – 使用模擬器運行向量添加範例

本視頻向您展示如何下載和編譯面向英特爾® FPGA OpenCL™內置模擬器的 OpenCL™ 應用範例。

OpenCL™ 在英特爾 FPGA SoC FPGA(Linux 主機)上 – 第 3 部分 – SoC FPGA 的內核和主機代碼編譯

本視頻向您展示了如何編譯 OpenCL™ 內核和主機代碼,這些代碼針對 Cyclone® V SoC FPGA 的 FPGA 和處理器。

OpenCL™英特爾® FPGA SoC FPGA(Linux 主機)上 – 第 4 部分 – 運行時環境的設置

本視頻向您展示如何設置 Cyclone® V SoC 板以運行 OpenCL™示例,並在板上執行主機代碼和內核。

6. 獲取説明

OpenCL 認證服務提供者

英特爾推薦以下經過認證的服務提供者,這些服務提供者可以幫助開發適用於英特爾® FPGA 主機板的 OpenCL™ 主機板支援包。這些供應商在為英特爾 FPGA 主機板開發高品質 OpenCL 主機板支援包、驅動程式和設計遷移方面擁有豐富的經驗:

泰瑞斯公司

OpenCL 和 OpenCL 徽標是 Apple Inc. 的商標,經 Khronos 許可使用。

這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。