簡易檢索 / 詳目顯示

研究生: 黃維熙
Huang, Wei-Hsi
論文名稱: 以Chipyard為基礎的SoC設計平台FPGA實現之研究
Research on FPGA Implementation of Chipyard-based SoC Design Platform
指導教授: 黃文吉
Hwang, Wen-Jyi
口試委員: 鮑興國
Pao, Hsing-Kuo
葉佐任
Yeh, Tso-Zen
黃文吉
Hwang, Wen-Jyi
口試日期: 2022/07/27
學位類別: 碩士
Master
系所名稱: 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2022
畢業學年度: 110
語文別: 中文
論文頁數: 55
英文關鍵詞: FPGA, SoC, Chipyard
研究方法: 實驗設計法
DOI URL: http://doi.org/10.6345/NTNU202201330
論文種類: 學術論文
相關次數: 點閱:185下載:54
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 近年來在軟體上的AI加速器發展越來越多元化,並且在硬體上也有一些的發展及實現,而硬體AI加速器的優勢在於對特定資料格式做運算可以大幅提升速度,僅需使用資料流的方式就可以實現。
    本論文針對柏克萊大學提出的硬體開源框架Chipyard,提出一個硬體建構的流程,將RISC-V為基礎的CPU搭配AI硬體加速器整合於FPGA平台,並且完善RISC-V軟體開機流程,讓我們可以通過硬體建構流程調整所需的硬體資源,做出客製化的硬體電路,快速的去對CPU及AI硬體加速器於FPGA開發板上做有效的效能評估。

    致謝 i 摘要 ii 目錄 iii 表目錄 iv 圖目錄 v 第1章 緒論 1 1-1 研究背景 1 1-1-1 Chipyard 1 1-1-2 Existing SoC Design Platforms 3 1-2 研究動機 4 1-3 研究困難 5 1-4 研究目的 5 1-5 研究貢獻 6 第2章 理論基礎與背景 7 2-1 Chipyard Design Flow 7 2-2 Chisel 9 2-3 FIRRTL 10 2-4 Rocket Chip Generator 11 2-5 Rocket Core 13 2-6 Gemmini 加速器 14 第3章 研究方法 15 3-1 Hardware Design Flow 15 3-2 Software Building Flow 28 第4章 實驗數據與效能分析 34 4-1 實驗環境介紹 34 4-2 實驗設計 36 4-3 實驗效能評估 39 4-4 實驗結果 40 第5章 結論 46 參考文獻 47 附錄 52 附錄一 Rocket Chip chiptop 52 附錄二 編譯U-Boot及Linux Kernel 54 附錄三 SD卡燒錄 55

    [1] A. Amid, D. Biancolin, A. Gonzalez, D. Grubb, S. Karandikar, H. Liew, A. Magyar, H. Mao, A. Ou, N. Pemberton, P. Rigge, C. Schmidt, J. Wright, J. Zhao, Y. S. Shao, K. Asanović, B. Nikolić, "Chipyard: Integrated Design, Simulation, and Implementation Framework for Custom SoCs." in IEEE Micro, 2020, vol. 40, no. 4, pp. 10-21, doi: 10.1109/MM.2020.2996616.

    [2] A. Waterman, K. Asanovic, “The RISC-V instruction set manual, volume II: Privileged architecture.” RISC-V Foundation, 2019.

    [3] K. Asanović, R. Avizienis, J. Bachrach, S. Beamer, D. Biancolin, C. Celio, H. Cook, D. Dabbelt, J. Hauser, A. Izraelevitz, S. Karandikar, B. Keller, D. Kim, J. Koenig, Y. Lee, E. Love, M. Maas, A. Magyar, H. Mao, M. Moreto, A. Ou, D. A. Patterson, B. Richards, C. Schmidt, S. Twigg, H. Vo, A. Waterman, "The rocket chip generator." EECS Department, University of California, Berkeley, 2016, Tech. Rep. UCB/EECS-2016-17 4.

    [4] C. Celio, P. -F. Chiu, K. Asanović, B. Nikolić and D. Patterson, "BROOM: An Open-Source Out-of-Order Processor With Resilient Low-Voltage Operation in 28-nm CMOS," in IEEE Micro, 2019, vol. 39, no. 2, pp. 52-60, doi: 10.1109/MM.2019.2897782.

    [5] F. Zaruba, L. Benini. “The Cost of Application-Class Processing: Energy and Performance Analysis of a Linux-Ready 1.7-GHz 64-Bit RISC-V Core in 22-nm FDSOI Technology.” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2019, 27(11), 2629-2640.

    [6] lowRISC. LowRISC/IBEX: Ibex is a small 32 bit RISC-v CPU core, previously known as Zero-riscy. GitHub. Retrieved July 5, 2022, from https://github.com/lowRISC/ibex

    [7] Y. Lee, C. Schmidt, A. Ou, A. Waterman, K. Asanović, “The Hwacha vector-fetch architecture manual.” EECS Department, University of California, Berkeley, 2015, Tech. Rep. UCB/EECS-2015-262.

    [8] H. Genc, S. Kim, A. Amid, A. Haj-Ali, V. Iyer, P. Prakash, J. Zhao, D. Grubb, H. Liew, H. Mao, A. Ou, C. Schmidt, S. Steffl, J. Wright, I. Stoica, J. Ragan-Kelley, K. Asanovic, B. Nikolic, Y. Sophia Shao, "Gemmini: Enabling Systematic Deep-Learning Architecture Evaluation via Full-Stack Integration." 2021 58th ACM/IEEE Design Automation Conference (DAC), 2021, pp. 769-774, doi: 10.1109/DAC18074.2021.9586216.

    [9] Schmidt, C., & Izraelevitz, A. A fast parameterized sha3 accelerator. In tech. rep.. EECS Department, University of California, 2015.

    [10] NVIDIA. NVDLA. NVIDIA Deep Learning Accelerator. Retrieved July 5, 2022, from http://nvdla.org/, 2015.

    [11] IceNet. IceNet - Chipyard main documentation. (n.d.). Retrieved July 5, 2022,from https://chipyard.readthedocs.io/en/latest/Generators/IceNet.html, 2019.

    [12] J. Bachrach, H. Vo, B. Richards, Y. Lee, A. Waterman, R. Avižienis, J. Wawrzynek, K. Asanović, "Chisel: Constructing hardware in a Scala embedded language." DAC Design Automation Conference 2012, 2012, pp. 1212-1221, doi: 10.1145/2228360.2228584.

    [13] A. Izraelevitz, J. Koenig, P. Li, R. Lin, A. Wang, A. Magyar, D. Kim, C. Schmidt, C. Markley, J. Lawson, J. Bachrach, "Reusability is FIRRTL ground: Hardware construction languages, compiler frameworks, and transformations." 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), 2017, pp. 209-216, doi: 10.1109/ICCAD.2017.8203780.

    [14] Riscv-Software-Src. Spike, a RISC-V ISA Simulator. GitHub. Retrieved July 5, 2022, from https://github.com/riscv/riscv-isa-sim

    [15] W. Snyder, "Verilator and systemperl. " In: North American SystemC Users’ Group, Design Automation Conference. 2004.

    [16] Synopsys. VCS Functional Verification Solution. Functional Verification Solution. Retrieved July 5, 2022, from https://www.synopsys.com/verification/simulation/vcs.html

    [17] S. Karandikar, H. Mao, D. Kim, D. Biancolin, A. Amid, D. Lee, N. Pemberton, E. Amaro, C. Schmidt, A. Chopra, Q. Huang, K. Kovacs, B. Nikolic, R. Katz, J. Bachrach, K. Asanovic, "FireSim: FPGA-Accelerated Cycle-Exact Scale-Out System Simulation in the Public Cloud." 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA), 2018, pp. 29-42, doi: 10.1109/ISCA.2018.00014.

    [18] H. Cook, W. Terpstra, Y. Lee, Diplomatic design patterns: A TileLink case study. In 1st Workshop on Computer Architecture Research with RISC-V, 2017.

    [19] D. Flynn, "AMBA: enabling reusable on-chip designs," in IEEE Micro, 1997, vol. 17, no. 4, pp. 20-27, doi: 10.1109/40.612211.

    [20] A. Waterman, K. Asanovic, “The RISC-V Instruction Set Manual, Volume II: Privileged Architecture, Version 1.10.”, 2017.

    [21] A. Samajdar, Y. Zhu, P. Whatmough, M. Mattina, T. Krishna, “Scale-sim: Systolic cnn accelerator simulator.” arXiv preprint arXiv:1811.02883, 2018.

    [22] Chipsalliance. Rocket-chip/BankedL2Params.scala at 114325B27CFE5312C86A8A325B187BE9455A62AF · chipsalliance/rocket-chip. GitHub. Retrieved July 5, 2022, from https://github.com/chipsalliance/rocket-chip/blob/114325b27cfe5312c86a8a325b187be9455a62af/src/main/scala/subsystem/BankedL2Params.scala, 2020.

    [23] Chipsalliance. Rocket-chip/icache.scala at 114325B27CFE5312C86A8A325B187BE9455A62AF · chipsalliance/rocket-chip. GitHub. Retrieved July 5, 2022, from https://github.com/chipsalliance/rocket-chip/blob/114325b27cfe5312c86a8a325b187be9455a62af/src/main/scala/rocket/ICache.scala, 2021.

    [24] Chipsalliance. Rocket-chip/hellacache.scala at 114325B27CFE5312C86A8A325B187BE9455A62AF · chipsalliance/rocket-chip. GitHub. Retrieved July 5, 2022, from https://github.com/chipsalliance/rocket-chip/blob/114325b27cfe5312c86a8a325b187be9455a62af/src/main/scala/rocket/HellaCache.scala, 2021.

    [25] Chipsalliance. Rocket-chip/configs.scala at 114325B27CFE5312C86A8A325B187BE9455A62AF · chipsalliance/rocket-chip. GitHub. Retrieved July 5, 2022, from https://github.com/chipsalliance/rocket-chip/blob/114325b27cfe5312c86a8a325b187be9455a62af/src/main/scala/subsystem/Configs.scala, 2021.

    [26] Sifive. Sifive Cache. GitHub. Retrieved July 5, 2022, from https://github.com/sifive/block-inclusivecache-sifive/tree/e3a3000cc1fd4cdf3a4e638e4d081b8aae94ebf0, 2020.

    [27] Chipsalliance. Rocket-chip/examplerocketsystem.scala at 114325B27CFE5312C86A8A325B187BE9455A62AF · chipsalliance/rocket-chip. GitHub. Retrieved July 5, 2022, from https://github.com/chipsalliance/rocket-chip/blob/114325b27cfe5312c86a8a325b187be9455a62af/src/main/scala/system/ExampleRocketSystem.scala, 2020.

    [28] S. Math, R. Manjula, S. Manvi, P. Kaunds, "Data transactions on system-on-chip bus using AXI4 protocol," 2011 INTERNATIONAL CONFERENCE ON RECENT ADVANCEMENTS IN ELECTRICAL, ELECTRONICS AND CONTROL ENGINEERING, 2011, pp. 423-427, doi: 10.1109/ICONRAEeCE.2011.6129797.

    [29] Xilinx. Packaging custom IP for using in Ip Integrator. Xilinx. Retrieved July 5, 2022, from https://www.xilinx.com/video/hardware/packaging-custom-ip-integrator.html, 2016.

    [30] Western Digital Corporation. An Introduction to RISC-V Boot Flow. Retrieved July 5, 2022, from https://riscv.org/wp-content/uploads/2019/12/Summit_bootflow.pdf, 2019.

    [31] Western Digital Corporation. RISC-V open source supervisor binary interface. GitHub. Retrieved July 5, 2022, from https://github.com/riscv-software-src/opensbi, 2019.

    [32] Chipsalliance. Rocket-chip/configs.scala at 114325B27CFE5312C86A8A325B187BE9455A62AF · chipsalliance/rocket-chip. GitHub. Retrieved July 5, 2022, from https://github.com/chipsalliance/rocket-chip/blob/114325b27cfe5312c86a8a325b187be9455a62af/src/main/scala/system/Configs.scala, 2021.
    [33] E. Tarassov, Bootrom. GitHub. Retrieved July 5, 2022, from https://github.com/eugene-tarassov/vivado-risc-v/blob/master/bootrom/bootrom.c, 2021.

    [34] U-Boot. U-Boot. GitHub. Retrieved July 5, 2022, from https://github.com/u-boot/u-boot, 2021.

    [35] Torvalds , L. Linux kernel. Kernel/Git/Stable/linux.git - linux kernel stable Tree. Retrieved July 5, 2022, from https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/, 2022.

    [36] E. Tarassov, Build software. GitHub. Retrieved July 5, 2022, from https://github.com/eugene-tarassov/vivado-risc-v/blob/master/Makefile, 2022.

    [37] M. Montecelo, K. Merker, RISC-V - Debian Wiki. Retrieved July 5, 2022, from https://wiki.debian.org/RISC-V, 2021.

    [38]鄭博升, “以矩陣乘法為基礎應用硬體加速器於一維卷積計算之研究”, 國立臺灣師範大學資訊工程研究所碩士論文, 2022.

    [39]蔡佳諭, “基於RISC-V架構之脈動陣列一維卷積運算研究”, 國立臺灣師範大學資訊工程研究所碩士論文, 2022.

    下載圖示
    QR CODE