《LIQUID:使用ChatGPT加速自定義FPGA編程(16頁).pdf》由會員分享,可在線閱讀,更多相關《LIQUID:使用ChatGPT加速自定義FPGA編程(16頁).pdf(16頁珍藏版)》請在三個皮匠報告上搜索。
1、使用 ChatGPT 加速自定義 FPGA 編程使用 AI 工具為用戶可編程設備生成 FPGA 兼容代碼的三種方法1.2.3.4.5.6.7.8.9.解鎖 FPGA 高效編程能力指令-調整-復制-部署入門指南:Moku 云編譯使用 ChatGPT 來生成 VHDL 代碼:定義指令示例 1:實現一個信號限幅器示例 2:構建一個事件計數器示例 3:將 Python 轉換成 VHDL:sqrt(x)額外指令結語 .3 .4.5.6.11 .12 .13.15.16目錄2使用 ChatGPT加速自定義 FPGA 編程解鎖 FPGA 高效編程能力使用 ChatGPT加速自定義 FPGA 編程3眾所周知,
2、編寫像 VHDL 這種硬件描述語言(HDL)是相對難以掌握的工作。然而,它們在數字電路設計中對于釋放可編程門級陣列(FPGA)在數字邏輯電路設計上的運算能力至關重要。VHDL 是一種常用的 HDL。通過借助像 ChatGPT 這樣的人工智能語言模型,您可以提出具體需求或者描述您想要的功能,該模型可以快速生成符合您需求的 VHDL 代碼。高速處理能力:FPGA 能夠處理高速數據采集、處理和分析,從而具備實時測試和低延時的性能表現。此外 FPGA 擁有高度并行處理的能力,可以同時地執行多個任務??啥ㄖ苹?用戶能夠在 FPGA 上設計和實現自定義的測試算法、協議及信號處理來調整內部硬件數字電路以滿足
3、特定的測試需求。靈活性:FPGA 具有高度靈活性并且能夠被重構來執行不同的任務,這對于測試應用來說是一個至關重要的優勢,因為測試應用需求可能隨著時間推移而不斷變化??煽啃?FPGA 因其可靠性高而聞名,是精度和重復性要求高的應用中需要考慮的一個重要性能。為什么在測試測量中使用 FPGA?指令調整復制部署使用 ChatGPT加速自定義 FPGA 編程4Moku 云編譯 是專為Liquid Instruments 的 Moku 設備提供的強大工具,讓您可以編碼、編譯并部署您自定義的算法來和其他13種由軟件定義的測試測量儀器協同工作,從像示波器和頻譜分析儀這類必備的桌面型儀器到像鎖相放大器和激光穩頻
4、這類高級工具型儀器。有了 Moku 云編譯,您可以十分容易地創建您的自定義儀器,構建復雜的信號處理通路,甚至與其他內置的儀器同時運行測試數字電路原型機。通過 ChatGPT 和 Moku 云編譯兩大功能的結合,您可以使用 Moku 極大地簡化實現您所需功能的進程,創建自定義的硬件解決方案;節省 VHDL 編程時間和精力,使您能夠更專注于您想要在數字電路設計上實現的特定功能和特性。只需要按照以下步驟使用 ChatGPT 和 Moku 云編譯開始生成自定義程序:指令調整復制部署Moku 云編譯可以在 Liquid Instruments 提供的三款硬件平臺上運行,包括旗艦產品 Moku:Pro,主
5、力產品 Moku:Lab 和輕便型產品 Moku:Go。在 多儀器并行模式下:從日常的電子元器件測試到先進的光學和光電研究,可重構的 Moku 測試平臺提供了一整套必需的測試儀器來加速實驗進程。用戶可利用 Moku 內置的儀器功能實時地運行多通道測試、分析,并借助 Moku 的可編程性來拓展定制性解決方案的能力。使用 ChatGPT加速自定義 FPGA 編程5入門指南:Moku 云編譯通過對部分 FPGA 進行重構,Moku 多儀器并行模式下支持同時運行多個測試測量儀器功能。用一臺硬件設備來隨時構建一個全新的自定義測試系統,或者運行相同儀器的多個實例來快速地拓展您的實驗配置。多儀器并行模式Mo
6、ku:Go支持同時運行2種儀器功能用于現場測試、遠程實驗觀測和實驗教學等場景。Moku:Lab同時運行2種儀器功能進行科研實驗測試。Moku:Pro支持高達4種儀器功能同時運行,適用于最苛刻的科研和開發應用場景。使用 ChatGPT加速自定義 FPGA 編程6設定指令使用 ChatGPT 來生成 VHDL制定有效的指令來幫助概述您對 ChatGPT 的要求非常重要。以下是為 Moku 云編譯生成 VHDL 時的基本要素:Moku:GoMoku:LabMoku:Pro 2 inputs,3 outputs 16 bits,type signed 2 inputs,2 outputs 16 bit
7、s,type signed 如果連接信號到數字 I/O 端口則使用std_logic_vector 2 inputs,4 outputs 16 bits,type signedResetClockControl registers32 bits,type std_logic_vector1 bit,std_logic1 bit,std_logicMoku 云編譯模塊所有 Moku 云編譯模塊的 top level 是名為 CustomWrapper 的 entity。您可以通過定義 CustomWrapper 的結構實現簡單的,像加法器或者減法器的邏輯電路。使用 ChatGPT加速自定義 FP
8、GA 編程7實現簡單的數字邏輯電路使用 ChatGPT加速自定義 FPGA 編程8調整并改進清晰的表達關于您需要修改內容的指令。一旦您發現錯誤,請向 ChatGPT 指出。a)仔細檢查代碼是否有任何語法錯誤或邏輯錯誤。b)與 ChatGPT 交互時提示要點,確保它對代碼做出適當的修正。c)繼續迭代該程序,直到您覺得它已準備好部署。為了與 Moku 云編譯正確交互,我們可以要求 ChatGPT 對我們的程序進行改進和優化。調整您的指令使用 ChatGPT加速自定義 FPGA 編程9復制代碼到 Moku 云編譯編譯完成后,我們將得到我們的 bitstream 文件,然后部署到 Moku 云編譯模塊
9、上。當向Moku 云編譯復制代碼時,我們需要從 ChatGPT 獲取 VHDL entity。讓我們一起創建一個 Moku 云編譯項目。1.訪問 Moku Cloud Compile 登陸或者創建一個賬戶。2.創建一個新的項目。3.創建一個新文件并復制由 ChatGPT 創建的邏輯代碼。4.創建一個 top-level entity。您可以從我們的示例頁面剪切并粘貼樣板代碼。5.創建一個 entity 實例來調用我們的程序。也可以讓 ChatGPT 為您寫一個!6.創建您設計的程序。為什么使用遠程服務器上的編譯器?Moku 云編譯是位于遠程服務器上的編譯器它無需安裝額外的集成開發環境軟件(ID
10、E),您能夠從任何地方來訪問 Moku 云編譯。在 Moku:Go 和 Moku:Lab 上,在插槽上配置 Moku 云編譯和任意一個其他儀器。在 Moku:Pro 上,除了 Moku 云編譯,最多能為您的系統在另外的3個插槽上配置3種其他儀器。多儀器并行模式配置示例使用 ChatGPT加速自定義 FPGA 編程10在 Moku 設備上部署什么是 bitstream?在 Cloud Compile browser 頁面左下方,您可以下載您編譯完成的 bitstream 文件。返回 Moku 程序,連接上您的 Moku 并且進入多儀器并行模式。然后,在插槽上添加一個 Moku 云編譯模塊和其他任
11、意想要的儀器。單擊 Moku 云編譯并上傳您的 bitstream,按照需要連接信號通路。一旦您單擊”修改生效”后,您設計的程序將開始運行。Bitstream 是一個二進制文件,它含有對 FPGA 進行編程所需的信息。它包括用于指定內部邏輯元件應如何接線來實現您的數字電路設計的配置數據,以及用于指定如何在不同邏輯元件之間連接信號的布線信息。使用 ChatGPT加速自定義 FPGA 編程11實現一個信號限幅器示例 1:指令:“編寫一段 VHDL entity 代碼,輸入一個 16-bit 有符號信號并輸出一個 16-bit 有符號信號。輸出信號等于輸入信號,限制輸出范圍在 0-2000?!闭{整:
12、讓 ChatGPT 為我們改進代碼。確保信號擁有正確的類型和信號命名。例如,改變輸入信號名為“InputA”,改變輸出信號名為“OutputA”。復制:從 ChatGPT 復制代碼到 Moku Cloud Compile。創建一個 top-level entity 代碼并編譯。部署:部署 bitstream 到 Moku 云編譯模塊。在多儀器并行模式下添加 Moku 云編譯模塊,并添加帶有波形發生器功能的示波器來觀察信號并驗證功能。修改您信號限幅器的輸出范圍來更好地適配您的應用。Moku 云編譯界面構建一個事件計數器指令:“編寫一個 entity 代碼,輸入一個 16-bit 有符號信號并輸出
13、一個 16-bit 有符號信號。每當輸入信號為上升沿且大于0時,計數器便增加1位。計數器值即為輸出信號?!蹦梢試L試在一次對話中輸入所有命令,但是不斷迭代您的 entity 代碼可以幫助確保在生成更加復雜的邏輯電路之前確?;A功能的正確性。調整:和 ChatGPT 再次對話:“增加第二路輸出一個 16-bit 有符號輸出信號,讓它等于 in_value 大于零時的時鐘周期總數?!比缓?,讓 ChatGPT 修改它?!靶薷?entity,將閾值更改為 16 位無符號的輸入端口,而不是固定的 0 閾值?!睆椭?復制您的程序到編譯器。讓 ChatGPT 為您創建一個頂層 entity 代碼,或者您自己
14、編寫一個!部署:編譯并部署 bitstream。使用脈沖波形來測試事件計數器的功能。使用 ChatGPT加速自定義 FPGA 編程12標注:點擊這里獲取更多代碼示例。添加光標來驗證事件發生的頻次或者該事件記錄器的步長。Moku 示波器和波形發生器示例 2:將 Python 轉換為 VHDL:sqrt(x)Python 是一種非常常見、文檔資源十分完備的編程語言,這意味著 ChatGPT 和其他 AI 語言模型在編寫 Python 代碼時可以借鑒大量的信息。我們可以從 Python 編碼入手,然后要求 ChatGPT 將得到的 Python 代碼轉換成 VHDL 代碼。這在編寫易于用 Pytho
15、n 實現但難以用 VHDL 編寫的程序(例如必須迭代實現的平方根函數)時尤其有用。指令:您可以編寫您自己的 Python 代碼,或者與其他 AI 工具對話讓其為您編寫。例如,您可以使用 GitHub 的 Copilot AI 工具,從簡單地編寫您的程序開始,然后讓 Copilot 建議其他內容。跟 ChatGPT 對話,讓它將定義好的 cordic_sqrt(x)程序轉換成 VHDL。ChatGPT 將需要創建一個狀態機來完成這個任務。請務必比較 Python 和 VHDL 代碼以驗證代碼轉換是否正確。輸入“def cordic_sqrt(x):”.然后讓 Copilot 完成剩余部分。運行您
16、的程序來確保它的功能正確。使用 ChatGPT加速自定義 FPGA 編程13不論您是否自行編寫您的 Python 代碼或者使用其他 AI 工具來生成,ChatGPT 都能幫您轉換。向 ChatGPT 提供 Python 代碼例 3:使用 ChatGPT加速自定義 FPGA 編程14調整:讓 ChatGPT 編寫 entity 的實例化代碼,因為我們需要在這里做一些類型轉換來確保程序和 Moku 云編譯兼容。與 ChatGPT 對話來編寫實例,它包含:復制:復制 top-level entity 和您的 VHDL 到 Moku 云編譯。部署:使用 Moku 云編譯來部署代碼并驗證它的功能。編輯和
17、迭代您的 VHDL 以完善您的程序。Clk 連接到 clk。Reset 連接到 reset。X 代表來自名為 InputA的輸入端口,接收 16-bit 帶符號的信號。Y 被連接到名為 OutputA 的輸出端口,輸出 16-bit 帶符號的信號。Moku 云編譯界面按照這個結構來編排您的 top-level entity。使用 ChatGPT加速自定義 FPGA 編程15額外指令以上示例只是使用 ChatGPT 生成 Moku 云編譯兼容代碼來實現自定義數字信號處理(DSP)的冰山一角。您還可以試試這些指令來創建您自己的數字電路:探索不同的指令和方法來實現從為節約時間而讓 ChatGPT 生
18、成一個簡單程序,到讓 ChatGPT 修改復雜的原型機來迭代您自己的設計。使用絕對值函數來構建一個全波整流器。構建一個簡單的加法器。構建自定義濾波器。Liquid Instruments 為 Moku 云編譯提供了許多現成的 VHDL 示例,從伺服控制驅動器到 boxcar 平均器。您可以從提供的示例開始并結合 ChatGPT 修改,讓它們更加適合您的應用,就像上面我們不斷迭代我們生成的 VHDL 時所做的一樣。那么,請復制示例并使用我們目前學到的內容來與 ChatGPT 對話并編輯代碼吧!使用預先構建的 VHDL 示例獲取幫助與支持有產品和技術問題,我們隨時為您提供幫助。想獲取更多關于 Mo
19、ku 產品的咨詢,請訪問 。準備好體驗 Moku 了嗎?您可以使用并體驗軟件的演示模式 或 開始挑選并配置您的硬件。2024 Liquid Instruments.v24-012316結語現在您了解了如何使用 ChatGPT 生成 VHDL,即使您不擅長編寫 VHDL,您也不再受限于 Moku 設備上提供的13種軟件定義的儀器。我們可以通過強大的 FPGA、已有的高精度儀器和靈活的便攜式硬件生成無限的儀器功能來擴展測試能力。想進一步了解,請訪問如下資源:視頻:Moku 云編譯入門指南 視頻:了解更多關于 Moku 云編譯的內容 網絡研討會:Moku 云編譯和 ChatGPT:利用人工智能進行更智能測試的基本策略 Blog:Moku 云編譯+ChatGPT:為用戶自定義測試設備