电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>在FPGA上构建EVM硬件的实现

在FPGA上构建EVM硬件的实现

2023-06-26 | zip | 0.03 MB | 次下载 | 免费

资料介绍

描述

这个项目是关于什么的?

每个运行完整以太坊节点的人都需要处理托管在区块链上的智能合约。通常,这是通过在软件中模拟以太坊虚拟机 (EVM) 来完成的。

该项目的目的是在 FPGA 上构建 EVM 的硬件实现。结果将是以太坊处理单元 (EPU),这是一个 256 位处理器,它不在寄存器上运行,而是在堆栈上运行。

这个项目是给谁的?

  • 就设计部分而言,这个项目是为异国情调的 CPU 爱好者准备的。
  • 就硬件部分而言,它是一个面向服务器改装者的项目。Xilinx Varium C1100 需要高性能冷却解决方案。运行 Xilinx 的软件套件需要定制的工作站。
  • 你想使用这个项目吗?然后,您是 EVM 驱动的区块链上的独立矿工、矿池运营商或验证者。

设置工作站硬件

选择非常安静的组件可以为运行 Xilinx 软件的工作站降温,但不能为托管 Varium C1100 的机器降温。如果您想将卡安装在同一个 PC 机箱中,请在进行物理安装之前阅读“冷却系统得到加强”一章。

组件选择:

  • 无风扇显卡
  • 无风扇电源 (500 W)
  • Fractal Design 机箱随附 3 x 140 毫米风扇
  • 1 x 120 毫米猫头鹰 CPU 冷却器

使用我特定的 BIOS 设置(3200 MHz,1.2 V),RAM 不需要额外的冷却。注意:我想将 CPU 风扇安装在护罩上,让一些空气流向 RAM 条。但这不是必需的。

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

对于无风扇电源,我们需要机箱内部有一个正压。这意味着所有三个 Fractal 风扇都安装在前挡板侧。顶部和底部网格覆盖有纸(下图中的白色区域),以引导气流从前到后。

poYBAGPjImOAfTwfAAFT4FT3fCw374.jpg
前置风扇
 

要连接风扇,请解开下图中左侧的所有电缆。风扇电缆使用相同的扎带连接,以避免它们在运输过程中晃来晃去。风扇集线器从 SATA 获取电源。虽然 SSD 是 2.5",但我将它安装在 3.5" 的托架中。在那里,它不会被主板加热。

poYBAGPjImmANvP5AAHd1mJQr-o382.jpg
机箱线缆混乱的一侧,PCIe AUX 电源线不耐烦地等待 Varium C1100
 

CPU 冷却器和机箱背面之间不需要护罩。

poYBAGPjImyAIvTEAAEW5a93_KI115.jpg
侧视图
 

气流足够。

安装 Vitis 和先决条件

如果您计划在任何基于 Ubuntu 的 Linux 上安装 Vitis,请确保在启动安装程序之前安装 libtinfo5。

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

简而言之:成为超级用户,更新您的系统并安装 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搭建区块链加速挖矿demo。openssh-server 允许您使用 ssh 从另一台计算机登录您的工作站,或使用 scp 从另一台计算机复制 Vitis 安装程序。

确保在要安装 Vitis 的文件系统上禁用日志功能。如果您在 /tools 下安装了一个单独的 300GB 分区,那么这样做可能最简单。

这次我将包括 Vitis 在内的整个系统安装在 logbsize=256k 的 XFS 分区上,并且只在统一安装程序中勾选该项目所需的内容。

如果使用 xfs 文件系统,编辑 /etc/fstab 并替换

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

经过

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

并删除所有交换分区和交换文件。我们不想在 128 GB RAM 系统中更换 SSD 驱动器

重新启动您的系统(是的,我知道有使用 mount 和 swapoff 的替代方法——但让我们保持简单)。

现在是时候下载 Xilinx 统一安装程序了:

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 统一软件平台(包含所有 3 个组件)
  • DocNav(有文档总是好的)
  • ... Alveo 和边缘加速...(Varium 的某些组件与 Alveo 兼容)
  • 设备:UltraScale+

除非用于其他项目,否则取消选中以下内容:

  • Vitis Model Composer(不,我没有 Matlab
  • Kria SOM 设备(如果这个包含 PetaLinux,我们可以节省一些 GB)
  • 适用于自定义平台的设备:除 UltraScale+ 之外的所有设备

不选中工程样本。

安装过程需要几个小时。

之后,需要做一些工作来避免以 root 权限运行 Vivado:

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

对于构建 Xilinx DMA

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

万岁,Varium 卡到了

该项目历史上的一个重要日期(2021-12-20):实物 Varium C1100 卡进入现场。非常感谢 Xilinx!

包装内只包含 Varium 卡。所有软件都在网站上。不提供电缆。

该卡本身看起来像一个智能网卡。但我们都知道:它是一个非常智能的 HBM 网卡。它有两个 QSFP-28 端口的 8 个 MAC 地址。在马来西亚制作。

编程端口连接到 Micro-USB

卡片很重。一切都与冷却有关。还有一个金属背板。有人知道J37有什么用吗?I2C我想为风扇提供 PWM 输出。也许我也可以为此滥用 Alveo 连接器

... 还有一个Hackster.io贴纸。凉爽的。

Varium 卡的机械安装

选项 1:垂直插槽

对于这个项目,我买了一个带有垂直 GPU 插槽和实心侧面板的电脑机箱。我希望有更多的遮蔽选项,尤其是在主板附近的遮蔽预计会有问题的情况下。

variuminverticalslot_C8yIHwC9Kx.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
在清关检查期间炫耀 hte Varium 卡
 

显示的问题:前面的 USB 3 电缆最好放在电源连接器旁边。

----

选项 2:底部插槽

该主板的底部插槽只有 8 个 PCIe 通道。用临时纸罩盖在主板旁边失败了。如果您使用此插槽,请将护罩直接连接到 Varium 卡上。

冷却系统得到加强

Option 1:旧的 80 毫米 ProLiant 服务器风扇 + 护罩

护罩直接连接到 Varium 卡上。因此,底部插槽和垂直插槽安装是可以的。只有 PCIe AUX 电源线穿过护罩。

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

风扇全速运转并发出令人不快的噪音。但它提供 10 mm H2O 的静压(在 12VDC 下运行)。确保您的探测软管垂直于气流。

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

服务器风扇在 12VDC 下运行时声音太大。将其电压降至 5VDC(也可在 Molex 连接器上轻松获得)在噪音滋扰和 Varium 卡在库存设置(即无超频)下的充分冷却之间实现了良好的折衷。

----

Option 2: 三洋电机高静压风扇

(!) 危险区域 (!) 别开玩笑了。触摸正在运行的 PC 风扇,它就会停止。触摸正在运行的服务器风扇,您会流血(亲身体验)。触摸正在运行的工业级风扇……不。就是不要。Sanyo Denki 产品上没有警告标签

没有免费运行的桌面测试!这个风扇的推力太大了。直接安装到 PC 机箱中进行首次通电测试,当然还有保护网:

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

接线:红色:+48V,黑色:0V,棕色:PWM(连接到 0V 以获得 0% PWM!),黄色:转速计(未连接)。

Sanyo Denki 是一个不错的软启动。上电时无电涌。即使在 0%PWM 下,这架直升机也会产生稳固的静压。但是声音太大了。它消耗大约 7-14W。这些值在我的分辨率为 7W 的坏瓦特表上很难重现。

下一个测试是将直升机加电至 100% PWM。我关了电脑。这样,即使出现LOCA(冷却剂损失),我也不会冒 Xilinx 赞助的全新 Varium 反应堆核心熔毁的风险。

Tektronix 电源可用于 0%PWM。但是对于 100%PWM,我使用了我为音频放大器项目设计的电源,我试图将直升机加速到全功率。断开棕色线与黑色线的连接就足够了。当然,要戴护目镜和耳罩。我妻子的评论?可怕!她是对的:根据数据表,Sanyo Denki 直升机从 3000 RPM 缓慢上升到 15000 RPM 以下。但是我的电源进入电流限制(1.5 A)并且功耗为 77W,低于额定的 98W。RND 组件风扇保护网格显然不是为该吞吐量而设计的气流变得过于湍流,所有能量都被吸收,而不是通过 Varium 卡推动空气或在 PC 机壳中增加压力。

如果你真的想起诉 Sanyo Denki 直升机,尽管它的噪音很大,直接把它裹在 Varium 卡上。也许你甚至想建造一个风道来冷却背板和前板。在进气侧,添加空气动力学安全罩。超频快乐!

直升机将在以后的项目中进行低噪音改装。

与此同时,自从我感染了 COVID 之后,我的 Hackster 实验室就是一个生物危险区。

----

Option 3:三个串联的 140mm 分形风扇

最后一个空闲系统的可接受解决方案。

将分形风扇从机箱中取出,将它们排成一行,使所有电缆都在同一侧,并且气流进入同一方向。然后,将烧烤串(最大直径 3 毫米)的尖端逆着气流插入风扇的安装孔和垫片中:

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

现在,在烤肉串上卷上胶带(在烤肉串上粘一点胶带,然后开始旋转烤肉串,直到胶带层厚到无法再通过安装孔)。从第一个风扇组件内部的较薄端获益。

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

确保风扇紧密堆叠在一起。

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

在进气侧的第一个风扇组件内部和最后一个风扇组件的外部切割串杆。剪一张长约 600 毫米、宽与风扇叠一样的纸。将它粘在电线附近的两个垫片上,然后将其缠绕在风扇组周围。添加胶带使电缆通道气密。将其安装在电源护罩的正上方。

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

您现在有两个选择:

a) 继续为 Varium 卡添加护罩并为 PC 的其余部分添加更多风扇

b) 用胶带覆盖前板的剩余部分,以免空气逸出到前面。PC 机壳的背面部分用胶带遮盖,以迫使足够的空气通过 Varium 卡。调整阻力最小的路径。

我选择了选项 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
左边的热点是显卡。
 

只要系统处于空闲状态,温度也可以。

只要 Varium 在 golden 或 xilinx_u55n_gen3x4_xdma_base_1 上空闲,就可以在没有适当冷却的情况下应用电源。该卡的功耗略低于 10W 至 14W,具体取决于加载的固件。

----

结论:

将 Varum 卡冷却到可接受的办公室噪音水平是一项挑战。

接受的解决方案是:

  • 使用 3 个堆叠风扇(选项 3)冷却整个 PC 机箱,但显然“设置工作站硬件”部分中显示的风扇配置也可以。
  • 使用低电压(5V 而不是 12V)服务器风扇冷却 Varium 卡。

速度控制会很好,因为它允许超频。

在以后的项目中尝试一下:https ://github.com/neffs/fan_controller

华硕的一个缺点是不允许我使用机箱风扇接头连接器来控制覆盖在 Varium 卡上的风扇。

体温监测

如果你跑

xsensors

你知道一些温度。有两个错误

  • 0和NULL没有区别
  • 未报告 HBM 温度(我使用 gimp 手动添加了红色)。
xsensors1_YJ2jS40DnF.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

恢复为 Golden 并重新刷写 shell 奇迹般地解决了 HBM 温度读数问题。您的主板的某些插槽可能被剥离(看起来像 16 通道,但实际上是 8 通道)。在我的系统上,由于依赖性问题,这不起作用。将所有 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

根据建议:

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

现在,是时候重启装有 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

它现在将刷新 SC。

有一个已弃用的警告。如果事情不再有效,请看这里。

现在是验证部分:

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

确保您可以看到扫描结果并相应地替换以下命令中的 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

剧透警报:我没有成功。如果你想要一个正在运行的系统,请跳到下一章。

以下是要下载的文件(我们无法使用 curl 获取它们,因为这些 URL 是登录墙):

现在,让我们设置环境变量

source /opt/xilinx/xrt/setup.sh

我遇到了 cmake 的问题,可能是因为我设置了 Vitis。确保一个

cmake --version

产生版本 >= 3.5

./build.sh build_host

缺少 CUDA 工具包时失败。因为我不想在无风扇显卡上挖矿,所以我禁用了 CUDA:

build.sh文件中将第 146 行更改为

cmake .. -DETHASHCUDA=OFF

感谢Fouad发现那个。

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

[100%] 内置目标 ethminer

是的!

如果您没有 ETH 钱包,请创建一个。我从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。如果尝试失败,他们会很快将您列入黑名单。

现在,让我们使这个脚本可执行并运行它:

chmod 755 mine.sh
./mine.sh

您真的期望这会起作用吗?

在我的系统上,ethminer 内置在我的主目录中。所以留在build.sh所在的位置

mv ~/ethminer .
./mine.sh

答案是:

Unrecognized platform Xilinx
Subscription failed : Invalid user provided

听起来更有希望。我显然必须将我的 WallETH 与 ethermine.org 连接起来。这可以通过ethermine.org网站右上角的“连接钱包”选项来完成。

还有 IIRC,我还没有在 Varium 卡上刷写 DAG 和挖矿内核。

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

告诉我重启电源。也许这就是我在对用户分区进行编程后错过的。

我没有验证的另一件事是我是否为正确的平台构建了 daggen。

一堆热图像——行动中的红色矿工队

Team Red Miner最初专注于 AMD/OpenCL 矿工,可轻松将您的 Varium 卡变成 ETH PoW 矿工。

创建一个新用户,使其成为dialout组的成员并重新启动您的机器。确保 trm 用户可以访问 ttyUSB。否则,您可以以 root 身份运行 Tea Red miner,但这是不好的做法。

以下是温度(使用低电压(5V 而不是 12V)服务器风扇冷却):

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 和显卡之间的转接电缆,没有出现过热现象
 
flir_20211231t002518_ujmxjaVORu.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
显然,电压不足的服务器风扇没有足够快地将空气排出
 
flir_20211231t002845_BhIBMEAVWJ.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
背板比前板保持凉爽
 

Team Red Miner 支持对该卡进行超频。但这需要更好的冷却。这可以通过将服务器风扇切换到 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

调整参数以满足您的需要。否则,它会挖到我的钱包里 ;-)。

您的最大时钟值可能与我的不同,具体取决于冷却和制造公差。

overclock_trm_89OhB11hxe.png?auto=compress%2Cformat&w=740&h=555&fit=max
内存温度 75°C 时为 76.3MH/s。风扇全速运转(噪音很大)
 
flir_20220106t185655_U1Bil8Qqbq.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
 

热点被推离风扇更远。对电源转换器不利。

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

与超频速度相比,风扇速度对温度的影响更大。在 USB 连接器的右侧,我切掉了后板的一些部分,以便于空气流动。在热图像上,我们可以清楚地看到主冷却器。不要切掉 QSFP28 连接器上方的后板。下面我们需要更多的气流。注意空气阻力最小的路径。

Blinky - FPGA 的 Hello World

Red Miner 团队正在编写 Varium C1100 卡上开箱即用的罕见应用程序之一。但是,当您购买 FPGA 时,通常希望在其上运行您自己的设计。闪烁的 LED 是您可以证明整个设计流程有效的第一个证据。

幸运的是,@Quarky 帮助我让 Blinky 在 Varium 上运行。

切换到您的项目目录并下载 Quarky 的代码。它不仅仅是眨眼,但让我们迈出第一步:

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

按照 README.md 文件中有关 Blinky 的说明进行操作。

对其进行编程后,其中一个 SQFP28 端口状态 LED 开始闪烁,其他 LED 保持亮起。低频是我的错;-)。增加它留给读者作为练习。

让 DMA 演示运行起来更具挑战性,因为您必须构建 xdma 驱动程序:

切换到您构建项目的目录。然后

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

并根据https://github.com/Xilinx/dma_ip_drivers/issues/39创建一个 SSL 密钥

现在,您可以开始 xdma 驱动程序的构建过程。请参阅自述文件。然后,

modprobe xdma
lsmod | grep xdma

将显示您的构建是否成功。如果

lspci | grep x

将您的 Varium 卡显示为 9041,然后您就完成了,您可以尝试 Quarky 的传感器和 DMA 演示。如果您的卡片显示为5058,您仍然在卡片上加载了 Xilinx 运行时。使用 Vivado 的硬件管理器对 Quarky 的 shell 进行编程。如果这没有将 lspci 5058 更改为 9041,请执行热重启(即没有电源循环)。

一旦一些 /dev/xdma* 文件出现,xdma 驱动程序就被正确构建,你的卡也被正确编程。

注意:如果更新内核,则必须重建 xdma 驱动程序。在重新创建 SSH 密钥和 make install 之前执行 make clean。

以 GUI 方式为 Varium C1100 配置 Vivado

启动 Vivado 时,您会在开始设计的电路板中错过 Varium C1100。此问题有两种解决方法:

启动vivado

source /tools/Xilinx/Vivado/2021.2/settings64.sh
vivado
  • 创建一个新的 RTL 项目
  • 选择任何Ultrascale+ 开发板
  • 进入 IP 目录
  • 禁用“隐藏禁用和不兼容的 IP”按钮
  • 选择“Card Management Solution Subsystem”Version 4(试一试,版本会出现在下面的面板中,或者滚动表格到右边)
  • 右键单击它并选择“兼容的家庭”
  • 为 Varium C1100(您可以在 DS1003 和 UG1526 中找到该部件号)选择 XCU55N-FSVH2892-2L-E(使用搜索功能:放大镜)。您还可以找到 U55N、U55C、SN1022 等卡...
  • 点击“切换部件”
  • 确认切换项目部分
  • 将 C1100_xdc_1v00.xdc 文件(或任何更新版本)包含到设计约束中

您可以从此页面下载 XDC 文件:https ://www.xilinx.com/products/accelerators/varium/c1100.html#vivado

现在,您已准备好创建新设计。

使用 MicroBlaze 作为“服务处理器”

我首先想到构建一个扩展的 EPU

  • 主管模式(一些额外的 I/O 功能,用于将合约及其状态加载到内存中并返回新状态
  • 执行模式(执行EVM等智能合约)

与使用 MicroBlaze 执行上述管理模式任务相比,这不太可能成功。我们不需要 256 位 ALU 和堆栈引擎来将作业加载到内存中。第一个版本的想法也是不使用 PCIe/DMA,而是使用 MicroUSB UART像这样,我可以避免重新启动主机以获得正确的 PCIe。我们或许也可以避免编写驱动程序软件。性能可能低于在主 CPU 上模拟 EVM。如果是这样,以后还是可以引入DMA的。

请注意,所有涉及 SDK 的文档均已过时。我们现在使用 Vitis 在 MicroBlaze 上实施软件。

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

还可以搜索 MircroBlaze Hello World。当心旧的 SDK 工作流程。

根据 Vitis 的能力,也可以采取“先造后造”的方法,即在 microBlaze 上实现 EPU,然后逐步用真正的硬件 EPU 替换它。

试图让 geth 运行

切换到您的项目目录并避免成为超级用户,然后:

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

您真的期望构建过程顺利吗?上面命令安装的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

自述文件没有告诉我们如何使 bash 可以访问可执行文件。我在这个页面的底部找到了

cd build/bin

哇,甚至还有一个 evm 可执行文件。自述文件说了什么?

./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

开始同步测试网。这将成为衡量 EPU/EVM 加速效率的基准。但是窃听同伴会干扰时间。Geth 已经是多线程的了。好的。-- 但不是 EVM。可以让生活更轻松。

错过了--syncmode 完整选项。那应该称为 EVM。

对现有的 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) {

所以,策略是设置一个DMA发送合约*Contract,输入[]byte, readOnly bool到Varium卡,等到处理完成,通过DMA获取ret []byte, err error 。

解释器主循环将有效地被 EPU 取代。interpreter.go中的其余代码用于执行既不在 EVM 也不在 EPU 上运行的预编译合约。

现在,我将在我的 geth 分支上进行与硬件实现相关的更改:https ://github.com/stonux/go-ethereum.git

如果您想要自己的副本,请切换到您的本地工作目录。当心那里是否已经有一个 go-ethereum。我不知道 IDE 处理多个分支的能力如何。

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

整个事情会有多奇怪?

请记住,以太坊想要抗 ASIC这对 EVM 的硬件实现来说是有毒的。费用表、操作码……从一个叉子变成另一个叉子。如果我们对一个全节点进行完全同步,我们将不得不为每个分叉重新编程 FPGA,或者实现一个以分叉 ID 作为参数的 EPU,并相应地调整指令解码和 gas 计量(可能在以后的版本)。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  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元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  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十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费