Issuu on Google+


网络领域的出色表现

希速度,不过多组SHA-256构成的 挖矿内核找到解的速度比隐含的哈 希速度更快。

SD卡

使用EDK

以太网

ARM Cortex-A9

挖矿内核

ARM Cortex-A9

两个Cortex-A9处理器采用AXI4 接口,而非以往软核系统使用的PLB 系统。所有的外设均经AXI4接口连 接到处理器,如图5所示。

DDR3 RAM

EDK定制外设向导针对AXI4接 口的不同变种提供存根代码,且用 作挖矿内核AXI接口的开发基础。为 简单起见,我们使用AXI4-Lite接口 为挖矿内核提供简单的读写功能。 在理想的情况下,开发人员会想要 使用标准的AXI4接口,以发挥先 进接口控制功能的作用,如数据突 发。

处理器 子系统 (PS)

可编程 逻辑 (PL) AXI4 Bus

图 5 – 用相对较新的AXI4接口将ZedBoard的硬外设与ARM处理器及Artix FPGA逻辑相连。 可以达到3。运行在50MHz,深度为0 和1时,Spartan-6与Spartan3得到的 结果一样。这时我们注意到一个有趣 的趋势。频率翻倍与增大流水线深度 的效果相同。上限由可用的路由资源 决定,峰值平均数大约为3.8MHps, 如图4所示。 SHA-256进程模块需要完成10 次不同的32位相加。在本设计中, 我们试图在一个时钟周期内完成全部 相加。为缩短最长路径,我们试图将 加法器链细分为一系列阶段。但这样 做会让整个核的控制逻辑发生显著改 变,需要彻底重新编写。我们放弃了 2013年第三季度

在FPGA测试之后,下一步是把 挖矿内核连接到Zynq SoC的AXI4总 线。赛灵思嵌入式开发套件(EDK) 预先加载有专为Zynq SoC设计的配 置实用工具,便于我们轻松地配置 每一个方面。默认情况下该系统会 启用512MB DDR3、以太网、USB 和SD接口,这是比特币SoC所需的 全部配置。

这些修改,以节省时间和精力。 我们最后测试的性能改进方法是 并行化。只需稍作修改,就可以让 SHA-256组数变成2倍和4倍。每组由 两个SHA-256进程模块组成。对组数 提高2倍的SHA-256而言,这种调整 可有效地把组数减半;对组数提高4 倍的SHA-256,就是四分之一。为让 这 些 额 外 的 SHA进 程 能 够 在 Spartan-6上运行,我们不得不降低

为达到简单的目的,我们使用三 个存储器映射寄存器来处理挖矿内核 的I/O。第一个寄存器负责向矿机馈 送主机数据包。该寄存器记录通过 的数据量,到第11个字通过后自我加 锁。加锁会在找到解后自动解锁。如 果有必要,也可通过状态寄存器手动 解锁。 我们将第二个寄存器用作状态寄 存器,给特定的位做上标记,用于 代表挖矿内核在运行过程中所处的不 同状态。鉴于我们的设计简单,我

系统频率。四组SHA-256进程模块在

们只使用三个标记,即加载标记、运 行标记和发现解标记。当挖矿内核收

75MHz运行,两组在125MHz运行。 哈希速度的改善情况难以记录。我们 可以轻易地看到单个SHA-256组的哈

到11个字时即触发加载标记,如前所 述,当我们向其写入时,即清除。开 始/运行标记在启动挖矿内核时设置, 赛灵思中国通讯

14


手把手课堂:FPGA 101

创建外设时只需相继打开10个简 单窗口并选择所需的选项。 前两个截屏(如图1所示)询问 是否需要创建外设或导入现有的外 设,如果是,需要将其关联到哪个项 目。下一步,您可在第三个截屏中对 模块进行命名并高效地定义版本和修 订版本。(注意:可利用外设流程底 部的选项通过回读*.cip文件来重新定 制已创建的模块。) 选定模块名称后,接下来要选择 所需AXI总线类型,如图2所示。我们 的实例设计需要的是一种简单的存储 器映射控制寄存器型接口,因此我们 选择了最上面的AXI4-Lite选项。(如 需了解有关不同AXI总线类型的更多 信息,敬请访问: http://china.xilinx.com/support/docuhttp://china.xilinx.com/support/documentation/white_papers/wp379_AXI mentation/white_papers/wp379_AXI 4_Plug_and_Play_IP.pdf) 4_Plug_and_Play_IP.pdf)。在这个 步骤中将创建众多简单寄存器。我们 可利用处理系统通过AXI总线对寄存 器进行读/写操作。

这些寄存器位于Zynq SoC上的 可编程逻辑架构中,因此也能通过用 于创建外设功能的用户逻辑应用来访 问。 接下来的六个截屏为您提供相应 选项,以便对AXI的主配置或从配置 以及您将用于控制用户逻辑和支持文 件的寄存器的数量进行定制。本例中 我们仅使用一个寄存器,并将其用作 AXI-Lite的从配置。简化系统开发的 最重要方法是选择外设实现支持标签 上的“generate template driver files” 选项。这样就能提供一系列有助于所 创外设内部通信的源文件和头文件。 最后一步,XPS会生成一系列有 助于创建和使用新外设的文件: • • •

以您的外设命名的顶层VHDL 文件 可在其中创建用户逻辑的 VHDL文件 微处理器外设描述文件:用 于定义连接模块的接口,以

便将模块与XPS配合使用 • • • •

CIP文件:必要时可对外设进 行重新定制 针对SDK的驱动程序源文件 针对SDK的实例源文件 微处 理器 驱 动 程 序 定 义 文 件:详细描述外设所需的驱 动程序

这些文件将在PlanAhead源目录 ( 即 本 例 中 的 zed_blog.srcs\ sources_1\edk\proc_subsystem)下 创建。 源 目 录 的 子 目 录 是 包 含 XPS和 PlanAhead所需文件(在与外设同名 的目录下)的Pcores目录以及包含 SDK所需文件的驱动程序目录。

创建RTL 在Pcores目录中您可以看到两个 文件,其中一个与您所创建的组件同 名(本例中为led_if.vhd),另一个文

图1 – 10个向导窗口中的前两个

34

赛灵思中国通讯

2013年第三季度


手把手课堂:FPGA 101

图3 – 编辑MPD文件,以便将外设包含在内

图4 – 导入软件库

2013年第三季度

赛灵思中国通讯

35



赛灵思中国通讯第49期-业界首款ASIC级可编程架构UltraScale正式投片