伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

電子發燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>帶有PYNQ和Vitis HLS的SHA256加密加速器

帶有PYNQ和Vitis HLS的SHA256加密加速器

2023-02-09 | zip | 0.02 MB | 次下載 | 2積分

資料介紹

描述

介紹

安全哈希算法 (SHA-256) 是一種加密哈希函數,用于保護密碼或網站服務器等安全性。它的一個著名用途是比特幣的工作量證明,它基于 SHA256 算法來驗證交易。

我想很多人會聽說 GPU 被用于挖礦,因為 GPU 更適合哈希算法所需的數字運算。但是,您知道嗎,可以使用 FPGA 完成定制化程度更高的加速?通過配置 FPGA 以在硬件中加速它,它的性能甚至會比 GPU 更高。事實上,比特幣礦工早在 2011 年就開始使用 FPGA 進行挖礦。

如今,挖比特幣的復雜性越來越高,FPGA 挖礦可能不再有利可圖。然而,我們可以將其作為一個有用的案例研究來了解如何使用 Xilinx FPGA 輕松完成加速。也許下次當我們看到另一個潛在的算法加速用例時,我們就會知道該怎么做。

pYYBAGPjNd6AJH1nAABOwmgK1e4925.png
?

開發流程總結

我們將使用 Xilinx Kria KV260 的硬件套件以及新發布的 Ubuntu 20.04 LTS 操作系統我們將安裝 PYNQ,以便我們可以從 Python notebook 獲得硬件加速的好處。

在我們的 PC 上,我們將使用 Vitis HLS 將開源 C 代碼實現轉換為硬件 IP 模塊。之后,Vivado 用于創建與處理器的連接并生成比特流。

最后,我們將比特流傳輸到 Xilinx Kria 并在 PYNQ 環境中對性能增益進行基準測試。

pYYBAGPjNeOAIKbqAAC9TbHkouU824.png
?

設置 SD 卡映像

首先我們需要為 Kria KV260 Vision AI Starter Kit 準備 SD 卡。

包裝盒中提供了一張 16GB 的 SD 卡,但我建議至少使用 32GB的,因為設置可能會超過 16GB 的空間。

我們將使用 Ubuntu 20.04.3 LTS 下載。從網站下載圖像并將其保存在您的計算機上。

poYBAGPjNeeAOxE0AABYdmgtXAM385.png
?

在您的 PC 上,下載 Balena Etcher 以將其寫入您的 SD 卡。

pYYBAGPjNemALIPVAAAu5FXHPxY043.png
?

完成后,您的 SD 卡已準備就緒,您可以將其插入 Kria 以設置 Xilinx Ubuntu!USB 鍵盤、USB 鼠標、HDMI/DisplayPort 和以太網連接到 Kria。

poYBAGPjNeyAF5vgAACsZbU9SvM449.png
?

連接電源打開 Kria,您將看到 Ubuntu 登錄屏幕。

默認登錄憑據是用戶名:ubuntu密碼:ubuntu

啟動時,界面可能會非常慢,所以我運行了這些命令來禁用動畫調整以加快速度。

gsettings set org.gnome.desktop.interface enable-animations false
gsettings set org.gnome.shell.extensions.dash-to-dock animate-show-apps false

接下來,通過執行系統更新并調用此命令將系統更新到最新版本

sudo apt upgrade

安裝用于系統管理的 xlnx-config snap 并對其進行配置(有關 Xilinx wiki 的更多信息)

sudo snap install xlnx-config --classic
xlnx-config.sysinit

現在檢查設備配置是否工作正常。

sudo xlnx-config --xmutil boardid -b som

安裝最新的Kria-PYNQ 包這最多需要 30 分鐘。

git clone https://github.com/Xilinx/Kria-PYNQ.git
cd Kria-PYNQ/
sudo bash install.sh
pYYBAGPjNfKAVDZKAACRpBlHh1s110.png
?

安裝后,您可以在網絡瀏覽器中轉到“ kria:9090 ”以查看 Jupyter 筆記本。默認密碼為xilinx

pYYBAGPjNfaAIk8XAAD_xfhgW-w005.png
?

Kria 系統已準備就緒。現在讓我們回到我們的 PC 來創建 PYNQ 覆蓋比特流。

Vitis HLS 中的加速器 IP

使用 Vitis HLS,我們可以將許多現有的 C/C++ 代碼轉換為硬件 IP 模塊。我將在不做任何修改的情況下調整此 SHA256 C 代碼實現。

啟動 Vitis HLS 并創建一個新項目。

poYBAGPjNfiAGpqJAAA4fm6v5D4857.png
?

在下一頁上,選擇目標設備。對于 Kria KV260 Vision AI 入門套件,它使用的是零件:xck26-sfvc784-2lv-c

poYBAGPjNgKACMg4AABGt4AWKqQ753.png
?

進入工作區后,創建一個源文件。選擇該文件作為項目綜合設置中的頂級函數。

pYYBAGPjNjCAHjlcAACGqF59z24199.png
?

在代碼中,我創建了一個名為hash(). 它基本上只調用 SHA256 散列函數。

poYBAGPjNjyABIIMAABlV3iY3tc050.png
?

現在請注意,此功能是在可編程邏輯 (PL) 中實現的。這意味著 的參數hash()實際上是需要傳輸到處理系統 (PS) 或從處理系統 (PS) 傳輸的輸入和輸出。因此,需要選擇合適的通信接口

對于 和 之類的小變量text_lengthresult我選擇了s_axilitewhich 是適合小變量的串行協議。以后從 PYNQ 訪問它也相對容易。

對于像 的大型緩沖區text_input[1024],我選擇m_axi了并行協議。它占用了更多的邏輯和互連,但這是必要的,以便傳輸數據足夠快。

有關更多信息,代碼在本項目末尾提供。

在 Flow Navigator 下啟動 C 綜合。

pYYBAGPjNtyAeOm3AAAlROyDyEg440.png
?

綜合后,您可以驗證我們稍后將在 PYNQ 中訪問的參數。

poYBAGPjbT2AMaLuAADkBLDW9gQ903.png
?

最后,選擇 Export RTL 并選擇要將其保存到的位置。它將輸出一個 zip 文件,其中包含要在 Vivado 中導入的 IP 模塊。

pYYBAGPjbUCAB9l4AABKq4bx31o161.png
生成后,您還可以在控制臺中看到它生成的位置。
?

Vivado 中的框圖綜合

打開 Vivado 并創建一個新項目

poYBAGPjbUOADC8SAABQJBpeJBs097.png
?

選擇 Kria KV260 Vision AI 入門套件。繼續使用所有默認值,直到到達項目工作區。

pYYBAGPjbUiATbIdAACCt0-hO_Y238.png
?

在我們做任何其他事情之前,我們需要添加我們之前創建的 IP。

轉到Project Manager > Settings > IP > Repository ,然后添加包含 zip 文件的文件夾。

pYYBAGPjbUuAK3JwAACK7HYQyfM510.png
?

在 IP Integrator 下,選擇 Create Block Diagram添加以下塊:

  • Zynq UltraScale+ MPSoc(這是 PS)
  • 哈希(我們從 Vitis HLS 生成的 IP)
  • AXI 互連(從我們的 IP 互連到m_axi總線)
pYYBAGPjbU6AHZiNAADW9CQC03g268.png
?

之后,運行連接自動化。選擇所有可能的自動化并接受默認設置。

poYBAGPjbVaAZxkpAABdY-dnfs0638.png
?

請注意,m_axi(Master)的互連總線仍未連接。這是因為我忘記在PS上啟用Slave接口

pYYBAGPjbVmAQRNeAAEdk38QdZQ598.png
?

雙擊 Zynq UltraScale+ MPSoc 塊。啟用 AXI HP0 FPD (高性能)。檢查數據寬度是否為 32 位,這與 HLS 中合成的內容相匹配。

poYBAGPjbV2AArXTAACfBOBrxbw751.png
?

再次運行連接自動化。這是最終的框圖。

poYBAGPjbWGAItRcAAEzTIal8oY492.png
?

在 Sources 下,右鍵單擊設計并選擇 Create HDL Wrapper。它會自動包裝設計,以便您為綜合做好準備。

poYBAGPjbWSAFmjrAABFErKXxMk817.png
?

?

生成比特流。完成綜合和實施可能需要長達一個小時的時間。

pYYBAGPjbWiAGL6JAACGXAxGIAo843.png
?

最后,為了獲得 PYNQ 覆蓋,我們必須檢索 2 個文件:.bit文件和.hwh文件。

可以在以下位置找到比特流文件:*.runs/impl_1/design_1_wrapper.bit

poYBAGPjbWuAZA33AABO6VULt7U924.png
?

硬件切換文件可在以下位置找到:*.gen/sources_1/bd/design_1/hw_handoff/design_1.hwh

pYYBAGPjfa2ABFkfAAAo8PrlE78452.png
?

將這些文件復制到 Kria。

PYNQ 中的接口

我復制了 2 個文件并將其重命名為sha256accelerator.bitand sha256accelerator.hwh請注意,兩個文件必須具有相同的名稱才能正確用作 PYNQ 覆蓋。

我將解釋我的代碼的一些片段。您可以在下面找到完整的代碼。

創建一個新的 Jupyter notebook,我們可以在其中編程比特流。

pYYBAGPjfa-AKJ07AAAweGdobxI072.png
?

在這里,我定義了硬件功能,即將輸入數據寫入緩沖區并啟動該過程。完成后,該函數將返回。我還定義了一個稱為內置庫的軟件功能。

pYYBAGPjfbGAHHfhAABpid1N4FA074.png
?

運行一些測試,我們可以比較兩個函數的輸入,以驗證一切都在硬件上正確實現。

poYBAGPjfbSAOuBqAACBekWE04k321.png
?

基準性能

運行一些基準測試,我們發現硬件實現比在軟件上運行快約 14 倍。

pYYBAGPjfcWAHiSMAABrmj33AU4949.png
?

結論

總而言之,使用 Vitis HLS 無需任何修改即可輕松加速 C 函數。盡管需要對硬件協議及其變體有一定的了解和了解,但軟件過程相對簡單。

從這里,我們了解過去如何使用 FPGA 來加速這些重復性計算,例如區塊鏈挖掘。通過直接針對算法,硬件更具體,因此性能更高。


FPGA 加速器 SHA256 PYNQ
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1SY50655 用于高輸入電壓應用的偽固定頻率SSR反激式穩壓器英文資料
  2. 1.01 MB   |  3次下載  |  免費
  3. 2華潤微 CRTE280P06L2-G -60V Trench P-MOSFET 技術參數與應用解析
  4. 1.83 MB  |  2次下載  |  免費
  5. 3PC0805全集成單相無刷直流電機可編程閉環驅動器英文資料
  6. 0.59 MB   |  1次下載  |  免費
  7. 4英集芯 IP5419 支持數碼屏顯示的TWs耳機充電倉管理SoC技術手冊
  8. 5.56 MB   |  1次下載  |  免費
  9. 5英集芯 IP5426V 雙通道輸出的 TWS 充電盒 SOC技術手冊
  10. 8.11 MB   |  1次下載  |  免費
  11. 6變頻器維修資料大全
  12. 1.28 MB   |  1次下載  |  4 積分
  13. 7SY52341 次級側同步整流英文手冊
  14. 0.94 MB   |  1次下載  |  免費
  15. 8SY50213N 反激式穩壓器帶主側CV/CC控制技術手冊
  16. 1.16 MB   |  次下載  |  免費

本月

  1. 1EMC PCB設計總結
  2. 0.33 MB   |  11次下載  |  免費
  3. 2耗盡型MOS FET產品目錄選型表
  4. 0.14 MB   |  4次下載  |  免費
  5. 3PD取電芯片 ECP5702規格書
  6. 0.88 MB   |  4次下載  |  免費
  7. 4SY50655 用于高輸入電壓應用的偽固定頻率SSR反激式穩壓器英文資料
  8. 1.01 MB   |  3次下載  |  免費
  9. 5九陽JYCP-21ZD-A主控板電路圖資料
  10. 2.33 MB   |  2次下載  |  10 積分
  11. 6氮化鎵GaN FET/GaN HEMT 功率驅動電路選型表
  12. 0.10 MB   |  2次下載  |  免費
  13. 7華潤微 CRTE280P06L2-G -60V Trench P-MOSFET 技術參數與應用解析
  14. 1.83 MB  |  2次下載  |  免費
  15. 8PD取電芯片,可取5/9/12/15/20V電壓ECP5702數據手冊
  16. 0.88 MB   |  1次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191464次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81606次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73832次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分