MD5算法的HLS实现

MD5算法的HLS实现


by 范浩、张佳乐&刘可仁

这是2020年新工科联盟-Xilinx暑期学校的项目,github链接:https://github.com/Gatsby253/HLS-MD5.git

此项目与搭载PYNQ镜像版本2.4的PYNQ-Z2兼容

HLS-MD5使用Vivado HLS在FPGA上实现了MD5算法。HLS-MD5包含两个独立的部分MD5_PYNQ和MD5_SDK。MD5_PYNQ和MD5_SDK均为MD5算法在FPGA上的实现。

MD5_PYNQ

MD5_PYNQ使用HLS在PL中实现MD5算法,使用PYNQ框架中的Jupyter (Python3)实现PS部分的工作。输入的数据存放在Memory中,然后通过AXIS和DMA传入到PL。

MD5_SDK

MD5_SDK使用HLS在PL中实现MD5算法,使用SDK和C语言实现PS部分的工作。输入的数据直接存入BRAM中然后通过M_AXI传入到PL。MD5_SDK的运行不需要PYNQ框架。

测试平台

  • Xilinx PYNQ-Z2 Board
  • Vivado 2018.3
  • Vivado HLS 2018.3
  • PYNQ-Z2 Boot Image V2.4

目录说明

SourcecodeSourcecode文件夹包含了项目的所有源代码。其中MD5_PYNQ文件夹和MD5_SDK文件夹分别包含了MD5_PYNQ和MD5_SDK的源代码。源代码包含HLS C/C++源文件、MD5_PYNQ的Jupyter文件、MD5_SDK的SDK C代码。这个文件夹中还有Vivado Block Design的tcl文件和一些测试数据。

ExecutableFilesExecutableFiles文件夹包含了MD5_PYNQ文件夹和MD5_SDK文件夹。MD5_PYNQ文件夹包含.bit.hwh以及.tcl文件用于Jupyter。MD5_SDK文件夹包含了.bit文件以及SDK的.elf文件。

快速开始

在Jupyter Lab中打开终端,在终端中运行:

pip3 install git+https://github.com/Gatsby253/HLS-MD5.git

以上操作需要PYNQ-Z2板卡连接到Internet,请使用以太网线缆将PYNQ-Z2接入Internet.

在Jupyter中打开文件夹HLS-MD5, 然后打开MD5.ipynb。点击"Cell->Run All"可以一次性顺序运行所有cell, 而点击"Run"按钮则可分别运行每个cell。

示例

  • MD5_PYNQ input file: Sourcecode/MD5_PYNQ/testdata/testdata1

  • MD5_SDK input string: The first line in Sourcecode/MD5_SDK/testdata/testdata

2020年9月22日 11:27
浏览量:0
点赞
首页    Catalog    2020 Summer School    MD5算法的HLS实现