電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>在FPGA上構(gòu)建EVM硬件的實現(xiàn)

在FPGA上構(gòu)建EVM硬件的實現(xiàn)

2023-06-26 | zip | 0.03 MB | 次下載 | 免費

資料介紹

描述

這個項目是關(guān)于什么的?

每個運行完整以太坊節(jié)點的人都需要處理托管在區(qū)塊鏈上的智能合約。通常,這是通過在軟件中模擬以太坊虛擬機 (EVM) 來完成的。

該項目的目的是在 FPGA 上構(gòu)建 EVM 的硬件實現(xiàn)。結(jié)果將是以太坊處理單元 (EPU),這是一個 256 位處理器,它不在寄存器上運行,而是在堆棧上運行。

這個項目是給誰的?

  • 就設(shè)計部分而言,這個項目是為異國情調(diào)的 CPU 愛好者準(zhǔn)備的。
  • 就硬件部分而言,它是一個面向服務(wù)器改裝者的項目。Xilinx Varium C1100 需要高性能冷卻解決方案。運行 Xilinx 的軟件套件需要定制的工作站。
  • 你想使用這個項目嗎?然后,您是 EVM 驅(qū)動的區(qū)塊鏈上的獨立礦工、礦池運營商或驗證者。

設(shè)置工作站硬件

選擇非常安靜的組件可以為運行 Xilinx 軟件的工作站降溫,但不能為托管 Varium C1100 的機器降溫。如果您想將卡安裝在同一個 PC 機箱中,請在進行物理安裝之前閱讀“冷卻系統(tǒng)得到加強”一章。

組件選擇:

  • 無風(fēng)扇顯卡
  • 無風(fēng)扇電源 (500 W)
  • Fractal Design 機箱隨附 3 x 140 毫米風(fēng)扇
  • 1 x 120 毫米貓頭鷹 CPU 冷卻器

使用我特定的 BIOS 設(shè)置(3200 MHz,1.2 V),RAM 不需要額外的冷卻。注意:我想將 CPU 風(fēng)扇安裝在護罩上,讓一些空氣流向 RAM 條。但這不是必需的。

poYBAGPjIleAKvAOAAFILDz5o2A357.jpg
主板、RAM部分的熱成像
?

對于無風(fēng)扇電源,我們需要機箱內(nèi)部有一個正壓。這意味著所有三個 Fractal 風(fēng)扇都安裝在前擋板側(cè)。頂部和底部網(wǎng)格覆蓋有紙(下圖中的白色區(qū)域),以引導(dǎo)氣流從前到后。

poYBAGPjImOAfTwfAAFT4FT3fCw374.jpg
前置風(fēng)扇
?

要連接風(fēng)扇,請解開下圖中左側(cè)的所有電纜。風(fēng)扇電纜使用相同的扎帶連接,以避免它們在運輸過程中晃來晃去。風(fēng)扇集線器從 SATA 獲取電源。雖然 SSD 是 2.5",但我將它安裝在 3.5" 的托架中。在那里,它不會被主板加熱。

poYBAGPjImmANvP5AAHd1mJQr-o382.jpg
機箱線纜混亂的一側(cè),PCIe AUX 電源線不耐煩地等待 Varium C1100
?

CPU 冷卻器和機箱背面之間不需要護罩。

poYBAGPjImyAIvTEAAEW5a93_KI115.jpg
側(cè)視圖
?

氣流足夠。

安裝 Vitis 和先決條件

如果您計劃在任何基于 Ubuntu 的 Linux 上安裝 Vitis,請確保在啟動安裝程序之前安裝 libtinfo5。

https://support.xilinx.com/s/article/76616?language=en_US

簡而言之:成為超級用戶,更新您的系統(tǒng)并安裝 libtinfo5。其他一些安裝將很方便或稍后需要:

sudo su
apt update
apt upgrade
apt install libtinfo5
apt install cmake
apt install openssh-server
apt install git
apt install build-essential
apt install opencl-headers
apt install xsensors

后面會使用cmake搭建區(qū)塊鏈加速挖礦demo。openssh-server 允許您使用 ssh 從另一臺計算機登錄您的工作站,或使用 scp 從另一臺計算機復(fù)制 Vitis 安裝程序。

確保在要安裝 Vitis 的文件系統(tǒng)上禁用日志功能。如果您在 /tools 下安裝了一個單獨的 300GB 分區(qū),那么這樣做可能最簡單。

這次我將包括 Vitis 在內(nèi)的整個系統(tǒng)安裝在 logbsize=256k 的 XFS 分區(qū)上,并且只在統(tǒng)一安裝程序中勾選該項目所需的內(nèi)容。

如果使用 xfs 文件系統(tǒng),編輯 /etc/fstab 并替換

UUID=......     /     xfs     defaults    0    0
/swapfile      none            swap    sw              0       0

經(jīng)過

UUID=......     /     xfs     logbsize=256k    0    0
#/swapfile      none            swap    sw              0       0

并刪除所有交換分區(qū)和交換文件。我們不想在 128 GB RAM 系統(tǒng)中更換 SSD 驅(qū)動器

重新啟動您的系統(tǒng)(是的,我知道有使用 mount 和 swapoff 的替代方法——但讓我們保持簡單)。

現(xiàn)在是時候下載 Xilinx 統(tǒng)一安裝程序了:

https://www.xilinx.com/member/forms/download/xef.html?filename=Xilinx_Unified_2021.2_1021_0703_Lin64.bin

或者更大的選擇:https ://www.xilinx.com/support/download.html

仍然以root身份,我們切換到下載目錄并運行

chmod 555 ./Xilinx_Unified_2021.2_1021_0703_Lin64.bin
./Xilinx_Unified_2021.2_1021_0703_Lin64.bin

將單選按鈕留在頂部(“Vitis”)。它還將安裝 Vivado。是的,Vitis 依賴于 Vivado。從組件中,刪除所有不需要的。Varium 卡上的 U55 是一個 UltraScale+ 器件。

選中以下項目:

  • Vitis 統(tǒng)一軟件平臺(包含所有 3 個組件)
  • DocNav(有文檔總是好的)
  • ... Alveo 和邊緣加速...(Varium 的某些組件與 Alveo 兼容)
  • 設(shè)備:UltraScale+

除非用于其他項目,否則取消選中以下內(nèi)容:

  • Vitis Model Composer(不,我沒有 Matlab
  • Kria SOM 設(shè)備(如果這個包含 PetaLinux,我們可以節(jié)省一些 GB)
  • 適用于自定義平臺的設(shè)備:除 UltraScale+ 之外的所有設(shè)備

不選中工程樣本。

安裝過程需要幾個小時。

之后,需要做一些工作來避免以 root 權(quán)限運行 Vivado:

https://support.xilinx.com/s/feed/0D52E00006hpUGrSAM

對于構(gòu)建 Xilinx DMA

https://github.com/Xilinx/dma_ip_drivers/issues/39

萬歲,Varium 卡到了

該項目歷史上的一個重要日期(2021-12-20):實物 Varium C1100 卡進入現(xiàn)場。非常感謝 Xilinx!

包裝內(nèi)只包含 Varium 卡。所有軟件都在網(wǎng)站上。不提供電纜。

該卡本身看起來像一個智能網(wǎng)卡。但我們都知道:它是一個非常智能的 HBM 網(wǎng)卡。它有兩個 QSFP-28 端口的 8 個 MAC 地址。在馬來西亞制作。

編程端口連接到 Micro-USB。

卡片很重。一切都與冷卻有關(guān)。還有一個金屬背板。有人知道J37有什么用嗎?I2C我想為風(fēng)扇提供 PWM 輸出。也許我也可以為此濫用 Alveo 連接器

... 還有一個Hackster.io貼紙。涼爽的。

Varium 卡的機械安裝

選項 1:垂直插槽

對于這個項目,我買了一個帶有垂直 GPU 插槽和實心側(cè)面板的電腦機箱。我希望有更多的遮蔽選項,尤其是在主板附近的遮蔽預(yù)計會有問題的情況下。

variuminverticalslot_C8yIHwC9Kx.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
在清關(guān)檢查期間炫耀 hte Varium 卡
?

顯示的問題:前面的 USB 3 電纜最好放在電源連接器旁邊。

----

選項 2:底部插槽

該主板的底部插槽只有 8 個 PCIe 通道。用臨時紙罩蓋在主板旁邊失敗了。如果您使用此插槽,請將護罩直接連接到 Varium 卡上。

冷卻系統(tǒng)得到加強

Option 1:舊的 80 毫米 ProLiant 服務(wù)器風(fēng)扇 + 護罩

護罩直接連接到 Varium 卡上。因此,底部插槽和垂直插槽安裝是可以的。只有 PCIe AUX 電源線穿過護罩。

proliantshroud_M9WdQwzmUR.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

風(fēng)扇全速運轉(zhuǎn)并發(fā)出令人不快的噪音。但它提供 10 mm H2O 的靜壓(在 12VDC 下運行)。確保您的探測軟管垂直于氣流。

proliant_pressure_gauge_ig5UDUfE1c.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

服務(wù)器風(fēng)扇在 12VDC 下運行時聲音太大。將其電壓降至 5VDC(也可在 Molex 連接器上輕松獲得)在噪音滋擾和 Varium 卡在庫存設(shè)置(即無超頻)下的充分冷卻之間實現(xiàn)了良好的折衷。

----

Option 2: 三洋電機高靜壓風(fēng)扇

(!) 危險區(qū)域 (!) 別開玩笑了。觸摸正在運行的 PC 風(fēng)扇,它就會停止。觸摸正在運行的服務(wù)器風(fēng)扇,您會流血(親身體驗)。觸摸正在運行的工業(yè)級風(fēng)扇……不。就是不要。Sanyo Denki 產(chǎn)品上沒有警告標(biāo)簽。

沒有免費運行的桌面測試!這個風(fēng)扇的推力太大了。直接安裝到 PC 機箱中進行首次通電測試,當(dāng)然還有保護網(wǎng):

sanace120_install_inside_kDGT3eIqws.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

接線:紅色:+48V,黑色:0V,棕色:PWM(連接到 0V 以獲得 0% PWM?。?,黃色:轉(zhuǎn)速計(未連接)。

Sanyo Denki 是一個不錯的軟啟動。上電時無電涌。即使在 0%PWM 下,這架直升機也會產(chǎn)生穩(wěn)固的靜壓。但是聲音太大了。它消耗大約 7-14W。這些值在我的分辨率為 7W 的壞瓦特表上很難重現(xiàn)。

下一個測試是將直升機加電至 100% PWM。我關(guān)了電腦。這樣,即使出現(xiàn)LOCA(冷卻劑損失),我也不會冒 Xilinx 贊助的全新 Varium 反應(yīng)堆核心熔毀的風(fēng)險。

Tektronix 電源可用于 0%PWM。但是對于 100%PWM,我使用了我為音頻放大器項目設(shè)計的電源,我試圖將直升機加速到全功率。斷開棕色線與黑色線的連接就足夠了。當(dāng)然,要戴護目鏡和耳罩。我妻子的評論?可怕!她是對的:根據(jù)數(shù)據(jù)表,Sanyo Denki 直升機從 3000 RPM 緩慢上升到 15000 RPM 以下。但是我的電源進入電流限制(1.5 A)并且功耗為 77W,低于額定的 98W。RND 組件風(fēng)扇保護網(wǎng)格顯然不是為該吞吐量而設(shè)計的。氣流變得過于湍流,所有能量都被吸收,而不是通過 Varium 卡推動空氣或在 PC 機殼中增加壓力。

如果你真的想起訴 Sanyo Denki 直升機,盡管它的噪音很大,直接把它裹在 Varium 卡上。也許你甚至想建造一個風(fēng)道來冷卻背板和前板。在進氣側(cè),添加空氣動力學(xué)安全罩。超頻快樂!

直升機將在以后的項目中進行低噪音改裝。

與此同時,自從我感染了 COVID 之后,我的 Hackster 實驗室就是一個生物危險區(qū)。

----

Option 3:三個串聯(lián)的 140mm 分形風(fēng)扇

最后一個空閑系統(tǒng)的可接受解決方案。

將分形風(fēng)扇從機箱中取出,將它們排成一行,使所有電纜都在同一側(cè),并且氣流進入同一方向。然后,將燒烤串(最大直徑 3 毫米)的尖端逆著氣流插入風(fēng)扇的安裝孔和墊片中:

fan_stack_1_ylZL1aZGRP.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

現(xiàn)在,在烤肉串上卷上膠帶(在烤肉串上粘一點膠帶,然后開始旋轉(zhuǎn)烤肉串,直到膠帶層厚到無法再通過安裝孔)。從第一個風(fēng)扇組件內(nèi)部的較薄端獲益。

fan_stack_2_0ZoqO7Sb6h.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

確保風(fēng)扇緊密堆疊在一起。

fan_stack_3_CR3xCPJaCc.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

在進氣側(cè)的第一個風(fēng)扇組件內(nèi)部和最后一個風(fēng)扇組件的外部切割串桿。剪一張長約 600 毫米、寬與風(fēng)扇疊一樣的紙。將它粘在電線附近的兩個墊片上,然后將其纏繞在風(fēng)扇組周圍。添加膠帶使電纜通道氣密。將其安裝在電源護罩的正上方。

fan_stack_4_ZrzXSIxoG8.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

您現(xiàn)在有兩個選擇:

a) 繼續(xù)為 Varium 卡添加護罩并為 PC 的其余部分添加更多風(fēng)扇

b) 用膠帶覆蓋前板的剩余部分,以免空氣逸出到前面。PC 機殼的背面部分用膠帶遮蓋,以迫使足夠的空氣通過 Varium 卡。調(diào)整阻力最小的路徑。

我選擇了選項 b)。

rear_mask_ueV2bZLnJV.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

不是很漂亮,但可以作為概念證明。

我們在可接受的噪音水平下有幾毫米的靜壓。

flir_20211227t232252_BuwPvGbGnO.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
左邊的熱點是顯卡。
?

只要系統(tǒng)處于空閑狀態(tài),溫度也可以。

只要 Varium 在 golden 或 xilinx_u55n_gen3x4_xdma_base_1 上空閑,就可以在沒有適當(dāng)冷卻的情況下應(yīng)用電源。該卡的功耗略低于 10W 至 14W,具體取決于加載的固件。

----

結(jié)論:

將 Varum 卡冷卻到可接受的辦公室噪音水平是一項挑戰(zhàn)。

接受的解決方案是:

  • 使用 3 個堆疊風(fēng)扇(選項 3)冷卻整個 PC 機箱,但顯然“設(shè)置工作站硬件”部分中顯示的風(fēng)扇配置也可以。
  • 使用低電壓(5V 而不是 12V)服務(wù)器風(fēng)扇冷卻 Varium 卡。

速度控制會很好,因為它允許超頻。

在以后的項目中嘗試一下:https ://github.com/neffs/fan_controller

華碩的一個缺點是不允許我使用機箱風(fēng)扇接頭連接器來控制覆蓋在 Varium 卡上的風(fēng)扇。

體溫監(jiān)測

如果你跑

xsensors

你知道一些溫度。有兩個錯誤

  • 0和NULL沒有區(qū)別
  • 未報告 HBM 溫度(我使用 gimp 手動添加了紅色)。
xsensors1_YJ2jS40DnF.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

恢復(fù)為 Golden 并重新刷寫 shell 奇跡般地解決了 HBM 溫度讀數(shù)問題。您的主板的某些插槽可能被剝離(看起來像 16 通道,但實際上是 8 通道)。在我的系統(tǒng)上,由于依賴性問題,這不起作用。將所有 deb 文件放入同一個apt install命令中。問題解決了:

sudo apt install ./xilinx-u55n-gen3x4-xdma-validate_1-3191757_all.deb ./xilinx-cmc-u55_1.5.16-2.3143933_all.deb ./xilinx-sc-fw-u55_7.1.12-1.ba326cb_all.deb xilinx-u55n-gen3x4-xdma-base_1-3191732_all.deb ./xilinx-u55n-gen3x4-xdma-1-202110-1-dev_1-3236984_all.deb

根據(jù)建議:

sudo /opt/xilinx/xrt/bin/xbmgmt flash --update --shell xilinx_u55n_gen3x4_xdma_base_1

現(xiàn)在,是時候重啟裝有 Varium 卡的機器了。

歡迎回來。

讓我們看看升級是否有效:

lspci | grep Xilinx
09:00.0 Processing accelerators: Xilinx Corporation Device 5058
09:00.1 Processing accelerators: Xilinx Corporation Device 5059

是的,我們還有一條線。重新運行與上面相同的命令:

sudo /opt/xilinx/xrt/bin/xbmgmt flash --update --shell xilinx_u55n_gen3x4_xdma_base_1

它現(xiàn)在將刷新 SC。

有一個已棄用的警告。如果事情不再有效,請看這里。

現(xiàn)在是驗證部分:

sudo lspci -vd 10ee:
sudo /opt/xilinx/xrt/bin/xbmgmt flash --scan

確保您可以看到掃描結(jié)果并相應(yīng)地替換以下命令中的 09:00:

sudo /opt/xilinx/xrt/bin/xbutil validate -d 0000:09:00.1 --verbose

是的,第一次對卡進行真正的測試。

有些消息雖然很奇怪:

Test 1 [0000:09:00.1]     : Aux connection 

    Description           : Check if auxiliary power is connected
    Details               : Aux power connector is not available on this board
    Test Status           : [SKIPPED]

我連接了 AUX 電源。

Part 2https ://www.xilinx.com/video/accelerator-card/installing-eth-mining-software-varium-blockchain-accelerator-card.html

劇透警報:我沒有成功。如果你想要一個正在運行的系統(tǒng),請?zhí)较乱徽隆?/font>

以下是要下載的文件(我們無法使用 curl 獲取它們,因為這些 URL 是登錄墻):

現(xiàn)在,讓我們設(shè)置環(huán)境變量

source /opt/xilinx/xrt/setup.sh

我遇到了 cmake 的問題,可能是因為我設(shè)置了 Vitis。確保一個

cmake --version

產(chǎn)生版本 >= 3.5

./build.sh build_host

缺少 CUDA 工具包時失敗。因為我不想在無風(fēng)扇顯卡上挖礦,所以我禁用了 CUDA:

build.sh文件中將第 146 行更改為

cmake .. -DETHASHCUDA=OFF

感謝Fouad發(fā)現(xiàn)那個。

source /opt/xilinx/xrt/setup.sh
./build.sh build_host

[100%] 內(nèi)置目標(biāo) ethminer

是的!

如果您沒有 ETH 錢包,請創(chuàng)建一個。我從https://f-droid.org/獲取了 WallETH

然后開始編輯你的啟動腳本:

nano mine.sh

腳本看起來像

source /opt/xilinx/xrt/setup.sh
./build.sh mine 0x295805bbbaf99ec63183bfe5078c8bc34203e7 xiliminix eu1.xxxxxmine.org:4444

0x...替換為錢包的公鑰,將xiliminix 替換為您的工作人員姓名,將 eu1.xxxxxmine.org:4444 替換為礦池主機名:端口。不要使用 ethermine.org。如果嘗試失敗,他們會很快將您列入黑名單。

現(xiàn)在,讓我們使這個腳本可執(zhí)行并運行它:

chmod 755 mine.sh
./mine.sh

您真的期望這會起作用嗎?

在我的系統(tǒng)上,ethminer 內(nèi)置在我的主目錄中。所以留在build.sh所在的位置

mv ~/ethminer .
./mine.sh

答案是:

Unrecognized platform Xilinx
Subscription failed : Invalid user provided

聽起來更有希望。我顯然必須將我的 WallETH 與 ethermine.org 連接起來。這可以通過ethermine.org網(wǎng)站右上角的“連接錢包”選項來完成。

還有 IIRC,我還沒有在 Varium 卡上刷寫 DAG 和挖礦內(nèi)核。

xbutil program --device 0000:09:00.1 --user dag_gen_kernel.xclbin
xbutil program --device 0000:09:00.1 --user ethash_kernel.xclbin

我希望他們不要互相覆蓋。

顯然,ethermine 禁止了我。使用eu-eth.hiveon.net:4444代替。

首先嘗試用我的顯卡挖礦,然后......

SIGSEGV

sudo su
source /opt/xilinx/xrt/setup.sh
xbmgmt program -d 0000:09:00.0 --revert-to-golden

告訴我重啟電源。也許這就是我在對用戶分區(qū)進行編程后錯過的。

我沒有驗證的另一件事是我是否為正確的平臺構(gòu)建了 daggen。

一堆熱圖像——行動中的紅色礦工隊

Team Red Miner最初專注于 AMD/OpenCL 礦工,可輕松將您的 Varium 卡變成 ETH PoW 礦工。

創(chuàng)建一個新用戶,使其成為dialout組的成員并重新啟動您的機器。確保 trm 用戶可以訪問 ttyUSB。否則,您可以以 root 身份運行 Tea Red miner,但這是不好的做法。

以下是溫度(使用低電壓(5V 而不是 12V)服務(wù)器風(fēng)扇冷卻):

teamredstock_OpvCqEXGNb.png?auto=compress%2Cformat&w=740&h=555&fit=max
?
flir_20211231t002448_xsnuySGZCH.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
Varium 和顯卡之間的轉(zhuǎn)接電纜,沒有出現(xiàn)過熱現(xiàn)象
?
flir_20211231t002518_ujmxjaVORu.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
顯然,電壓不足的服務(wù)器風(fēng)扇沒有足夠快地將空氣排出
?
flir_20211231t002845_BhIBMEAVWJ.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
背板比前板保持涼爽
?

Team Red Miner 支持對該卡進行超頻。但這需要更好的冷卻。這可以通過將服務(wù)器風(fēng)扇切換到 12V 來提供:

sudo su
source /opt/xilinx/xrt/setup.sh
./teamredminer --eth_dag_slowdown=0 --fpga_clk_core=625 --fpga_clk_mem=1250 -a ethash -o stratum+tcp://eu-eth.hiveon.net:4444 -u 0x2a13f15b04f7b8d6319e9ed56521f2c2adcaf324 -p x

調(diào)整參數(shù)以滿足您的需要。否則,它會挖到我的錢包里 ;-)。

您的最大時鐘值可能與我的不同,具體取決于冷卻和制造公差。

overclock_trm_89OhB11hxe.png?auto=compress%2Cformat&w=740&h=555&fit=max
內(nèi)存溫度 75°C 時為 76.3MH/s。風(fēng)扇全速運轉(zhuǎn)(噪音很大)
?
flir_20220106t185655_U1Bil8Qqbq.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

熱點被推離風(fēng)扇更遠(yuǎn)。對電源轉(zhuǎn)換器不利。

flir_20220106t185726_562khR9mI0.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

與超頻速度相比,風(fēng)扇速度對溫度的影響更大。在 USB 連接器的右側(cè),我切掉了后板的一些部分,以便于空氣流動。在熱圖像上,我們可以清楚地看到主冷卻器。不要切掉 QSFP28 連接器上方的后板。下面我們需要更多的氣流。注意空氣阻力最小的路徑。

Blinky - FPGA 的 Hello World

Red Miner 團隊正在編寫 Varium C1100 卡上開箱即用的罕見應(yīng)用程序之一。但是,當(dāng)您購買 FPGA 時,通常希望在其上運行您自己的設(shè)計。閃爍的 LED 是您可以證明整個設(shè)計流程有效的第一個證據(jù)。

幸運的是,@Quarky 幫助我讓 Blinky 在 Varium 上運行。

切換到您的項目目錄并下載 Quarky 的代碼。它不僅僅是眨眼,但讓我們邁出第一步:

git clone https://github.com/Quarky93/warpshell.git

按照 README.md 文件中有關(guān) Blinky 的說明進行操作。

對其進行編程后,其中一個 SQFP28 端口狀態(tài) LED 開始閃爍,其他 LED 保持亮起。低頻是我的錯;-)。增加它留給讀者作為練習(xí)。

讓 DMA 演示運行起來更具挑戰(zhàn)性,因為您必須構(gòu)建 xdma 驅(qū)動程序:

切換到您構(gòu)建項目的目錄。然后

source /tools/Xilinx/Vivado/2021.2/settings64.sh
git checkout https://github.com/Xilinx/dma_ip_drivers.git

并根據(jù)https://github.com/Xilinx/dma_ip_drivers/issues/39創(chuàng)建一個 SSL 密鑰

現(xiàn)在,您可以開始 xdma 驅(qū)動程序的構(gòu)建過程。請參閱自述文件。然后,

modprobe xdma
lsmod | grep xdma

將顯示您的構(gòu)建是否成功。如果

lspci | grep x

將您的 Varium 卡顯示為 9041,然后您就完成了,您可以嘗試 Quarky 的傳感器和 DMA 演示。如果您的卡片顯示為5058,您仍然在卡片上加載了 Xilinx 運行時。使用 Vivado 的硬件管理器對 Quarky 的 shell 進行編程。如果這沒有將 lspci 5058 更改為 9041,請執(zhí)行熱重啟(即沒有電源循環(huán))。

一旦一些 /dev/xdma* 文件出現(xiàn),xdma 驅(qū)動程序就被正確構(gòu)建,你的卡也被正確編程。

注意:如果更新內(nèi)核,則必須重建 xdma 驅(qū)動程序。在重新創(chuàng)建 SSH 密鑰和 make install 之前執(zhí)行 make clean。

以 GUI 方式為 Varium C1100 配置 Vivado

啟動 Vivado 時,您會在開始設(shè)計的電路板中錯過 Varium C1100。此問題有兩種解決方法:

啟動vivado

source /tools/Xilinx/Vivado/2021.2/settings64.sh
vivado
  • 創(chuàng)建一個新的 RTL 項目
  • 選擇任何Ultrascale+ 開發(fā)板
  • 進入 IP 目錄
  • 禁用“隱藏禁用和不兼容的 IP”按鈕
  • 選擇“Card Management Solution Subsystem”Version 4(試一試,版本會出現(xiàn)在下面的面板中,或者滾動表格到右邊)
  • 右鍵單擊它并選擇“兼容的家庭”
  • 為 Varium C1100(您可以在 DS1003 和 UG1526 中找到該部件號)選擇 XCU55N-FSVH2892-2L-E(使用搜索功能:放大鏡)。您還可以找到 U55N、U55C、SN1022 等卡...
  • 點擊“切換部件”
  • 確認(rèn)切換項目部分
  • 將 C1100_xdc_1v00.xdc 文件(或任何更新版本)包含到設(shè)計約束中

您可以從此頁面下載 XDC 文件:https ://www.xilinx.com/products/accelerators/varium/c1100.html#vivado

現(xiàn)在,您已準(zhǔn)備好創(chuàng)建新設(shè)計。

使用 MicroBlaze 作為“服務(wù)處理器”

我首先想到構(gòu)建一個擴展的 EPU

  • 主管模式(一些額外的 I/O 功能,用于將合約及其狀態(tài)加載到內(nèi)存中并返回新狀態(tài)
  • 執(zhí)行模式(執(zhí)行EVM等智能合約)

與使用 MicroBlaze 執(zhí)行上述管理模式任務(wù)相比,這不太可能成功。我們不需要 256 位 ALU 和堆棧引擎來將作業(yè)加載到內(nèi)存中。第一個版本的想法也是不使用 PCIe/DMA,而是使用 MicroUSB UART。像這樣,我可以避免重新啟動主機以獲得正確的 PCIe。我們或許也可以避免編寫驅(qū)動程序軟件。性能可能低于在主 CPU 上模擬 EVM。如果是這樣,以后還是可以引入DMA的。

請注意,所有涉及 SDK 的文檔均已過時。我們現(xiàn)在使用 Vitis 在 MicroBlaze 上實施軟件。

https://www.xilinx.com/support/documentation/quick_start/microblaze-quick-start-guide-with-vitis.pdf

還可以搜索 MircroBlaze Hello World。當(dāng)心舊的 SDK 工作流程。

根據(jù) Vitis 的能力,也可以采取“先造后造”的方法,即在 microBlaze 上實現(xiàn) EPU,然后逐步用真正的硬件 EPU 替換它。

試圖讓 geth 運行

切換到您的項目目錄并避免成為超級用戶,然后:

git clone https://github.com/ethereum/go-ethereum.git
sudo apt install golang
cd go-ethereum
make all

您真的期望構(gòu)建過程順利嗎?上面命令安裝的1.13.8版本報錯如下:

build github.com/ethereum/go-ethereum/cmd/clef: cannot load hash/maphash: malformed module path "hash/maphash": missing dot in first path element

golang 的更新可以解決這個問題?咱們試試吧。這里的一些說明看起來不錯。

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
sudo apt autoremove

讓我們再試一次:

make all

自述文件沒有告訴我們?nèi)绾问?bash 可以訪問可執(zhí)行文件。我在這個頁面的底部找到了。

cd build/bin

哇,甚至還有一個 evm 可執(zhí)行文件。自述文件說了什么?

./evm --code 60ff60ff --debug run

輸出是:

0x
#### TRACE ####
PUSH1           pc=00000000 gas=10000000000 cost=3

PUSH1           pc=00000002 gas=9999999997 cost=3
Stack:
00000000  0xff

STOP            pc=00000004 gas=9999999994 cost=0
Stack:
00000000  0xff
00000001  0xff

#### LOGS ####

整潔的!那個仍然在 CPU 上運行。對于 EVM 上的“hello world”,擁有這個工具真是太好了。

./geth --goerli console

開始同步測試網(wǎng)。這將成為衡量 EPU/EVM 加速效率的基準(zhǔn)。但是竊聽同伴會干擾時間。Geth 已經(jīng)是多線程的了。好的。-- 但不是 EVM。可以讓生活更輕松。

錯過了--syncmode 完整選項。那應(yīng)該稱為 EVM。

對現(xiàn)有的 geth EVM 代碼進行逆向工程

https://github.com/ethereum/go-ethereum/tree/master/core/vm

更確切地說

https://github.com/ethereum/go-ethereum/blob/master/core/vm/interpreter.go

在這里,我們看到

func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) (ret []byte, err error) {

所以,策略是設(shè)置一個DMA發(fā)送合約*Contract,輸入[]byte, readOnly bool到Varium卡,等到處理完成,通過DMA獲取ret []byte, err error 。

解釋器主循環(huán)將有效地被 EPU 取代。interpreter.go中的其余代碼用于執(zhí)行既不在 EVM 也不在 EPU 上運行的預(yù)編譯合約。

現(xiàn)在,我將在我的 geth 分支上進行與硬件實現(xiàn)相關(guān)的更改:https ://github.com/stonux/go-ethereum.git

如果您想要自己的副本,請切換到您的本地工作目錄。當(dāng)心那里是否已經(jīng)有一個 go-ethereum。我不知道 IDE 處理多個分支的能力如何。

git clone https://github.com/stonux/go-ethereum.git

整個事情會有多奇怪?

請記住,以太坊想要抗 ASIC。這對 EVM 的硬件實現(xiàn)來說是有毒的。費用表、操作碼……從一個叉子變成另一個叉子。如果我們對一個全節(jié)點進行完全同步,我們將不得不為每個分叉重新編程 FPGA,或者實現(xiàn)一個以分叉 ID 作為參數(shù)的 EPU,并相應(yīng)地調(diào)整指令解碼和 gas 計量(可能在以后的版本)。


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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費