Загрузка страницы

MuniHac 2020 Workshop: Christiaan Baaij - Building a RISC-V SoC with Haskell and Python

Haskell and Python, languages that probably do not spring to mind when you think of languages that let you get down to the “Bare Metal” of your computer… But they can be used to (and are used to!) create that Bare Metal!

During this workshop you will learn how to create digital circuits using Haskell and Python, and about the tools needed to put those circuits on an FPGA, specialized chips that can be reconfigured into any digital logic circuit. Specifically, you are going to specify a RISC-V CPU in Haskell, and then run some small assembly programs on your RISC-V CPU inside of GHCi. Afterward, you will use “Clash”, a Haskell-to-Verilog compiler, to create Verilog from the Haskell description, a hardware description language which is understood by the FPGA tools. You will then package up the generated Verilog into a Python package to move to the next steps: Migen and LiteX.

LiteX is a System-on-Chip (SoC) builder made with the Python-based eDSL for circuit design called Migen. Using LiteX, you will connect the RISC-V CPU that you made in Haskell, to memories from which it will fetch its programs, and a UART to allow it to communicate with the outside world. You will then use Migen to transform the entire SoC to Verilog. You will then use the high-speed Verilog simulator (actually Verilog-to-C++ compiler) called Verilator to run some C-programs on your SoC and interact with it over a virtual UART.

Finally, the workshop mentor will demonstrate the use of the FPGA tools to create a bitstream, the configuration file the FPGA uses to reconfigure itself into the desired digital logic circuit. He will then upload the configuration to a FPGA development board and demonstrate you can interact with the SoC in the same way as you did in the Verilator simulation.

Prerequisites
You will need an intermediary knowledge of Haskell for this workshop.

Workshop Preparation
To follow along, you will need to have the following tools installed:

GHC 8.6.5 or higher (if you're using Windows 10 2004, you will need GHC 8.10.2)
cabal-install-3.2.0.0 or stack
Working python3 environment together with pip and virtualenv
verilator

Windows users are recommended to use WSL2 for the above: https://docs.microsoft.com/en-us/windows/wsl/install-win10

MuniHac 2020, September 12 / https://munihac.de/
TNG Technology Consulting GmbH / https://www.tngtech.com

Видео MuniHac 2020 Workshop: Christiaan Baaij - Building a RISC-V SoC with Haskell and Python канала TNG Technology Consulting GmbH
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
13 сентября 2020 г. 4:14:25
02:59:41
Другие видео канала
Big Techday 23: Glean: Query your Code [EN] - Simon Marlow, Meta ResearchBig Techday 23: Glean: Query your Code [EN] - Simon Marlow, Meta ResearchBig Techday 23: Cognitive Robots [EN] - Dr. Alexander Blass, NEURA RoboticsBig Techday 23: Cognitive Robots [EN] - Dr. Alexander Blass, NEURA RoboticsBig Techday 23: Taming the Home Connect Microservice Jungle [EN] - T. Richer, BSH & T. Masur, TNGBig Techday 23: Taming the Home Connect Microservice Jungle [EN] - T. Richer, BSH & T. Masur, TNGBig Techday 23: sAI Cheese! - Professionelle Profilbilder mit Generativer KI [DE] - Endres & MayerBig Techday 23: sAI Cheese! - Professionelle Profilbilder mit Generativer KI [DE] - Endres & MayerBig Techday 23: Generative Data Calibrates the Sky [EN] - Dr Tamás Varga, LMU MunichBig Techday 23: Generative Data Calibrates the Sky [EN] - Dr Tamás Varga, LMU MunichBig Techday 23: Der Roboter in meinem Wohnzimmer [DE] - Matthias Lau, Heureka LabsBig Techday 23: Der Roboter in meinem Wohnzimmer [DE] - Matthias Lau, Heureka LabsBig Techday 23: Domain Sniping – Hunting for the World's Shortest Domains [EN] - E. Goslawski, TNGBig Techday 23: Domain Sniping – Hunting for the World's Shortest Domains [EN] - E. Goslawski, TNGBig Techday 23 & MuniHac 2023: Haskell at the Heart of Terabit Laser Communication [EN] - C. BaaijBig Techday 23 & MuniHac 2023: Haskell at the Heart of Terabit Laser Communication [EN] - C. BaaijBig Techday 23: Veränderung des Schachs durch Technik [DE] - Vincent Keymer, Schach-GroßmeisterBig Techday 23: Veränderung des Schachs durch Technik [DE] - Vincent Keymer, Schach-GroßmeisterBig Techday 23: Digitalization in Healthcare [DE] - Prof. Gotthardt & Dr. PechBig Techday 23: Digitalization in Healthcare [DE] - Prof. Gotthardt & Dr. PechBig Techday 23: Erkennung von Herzerkrankungen mit KI [DE] - Thomas Fechner, Cardisio GmbHBig Techday 23: Erkennung von Herzerkrankungen mit KI [DE] - Thomas Fechner, Cardisio GmbHBig Techday 23: Trunk Based Development in der Praxis [DE] - C. Deger, RIO & M. Spanier, TNGBig Techday 23: Trunk Based Development in der Praxis [DE] - C. Deger, RIO & M. Spanier, TNGBig Techday 22:  My Pursuit of the Fastest Drive in History [EN] - A.Toman, Cannonball Run WinnerBig Techday 22: My Pursuit of the Fastest Drive in History [EN] - A.Toman, Cannonball Run WinnerBig Techday 22: Usable Security Research @ KIT (DE) - Prof. Dr. Melanie Volkamer, KITBig Techday 22: Usable Security Research @ KIT (DE) - Prof. Dr. Melanie Volkamer, KITBig Techday 22: Lightspeed to SaaS ... From a Delphi Monolith to the Cloud [EN] - S. Alber, ZvooveBig Techday 22: Lightspeed to SaaS ... From a Delphi Monolith to the Cloud [EN] - S. Alber, ZvooveBig Techday 22: Next Level Schafkopf-KI [DE] - Franz Pfeifroth, Alexander SedlmayrBig Techday 22: Next Level Schafkopf-KI [DE] - Franz Pfeifroth, Alexander SedlmayrMuniHac 2022 - Sunday, October 9 - Nicolas Wu: Modular Programming with EffectsMuniHac 2022 - Sunday, October 9 - Nicolas Wu: Modular Programming with EffectsMuniHac 2022 - Saturday, October 8 - Michael Sperber: How to Deep Learn with CategoriesMuniHac 2022 - Saturday, October 8 - Michael Sperber: How to Deep Learn with CategoriesMuniHac 2022 - Saturday, October 8 - Ben Gamari: Improvements in observability in GHC 9.6MuniHac 2022 - Saturday, October 8 - Ben Gamari: Improvements in observability in GHC 9.6MuniHac 2022 - Saturday, October 8 - Krzysztof Gogolewski: Quines and metaprogrammingMuniHac 2022 - Saturday, October 8 - Krzysztof Gogolewski: Quines and metaprogrammingMuniHac 2022 - Cass Alexandru: Structured Traversals for (Mutually) Recursive Algebraic Data TypesMuniHac 2022 - Cass Alexandru: Structured Traversals for (Mutually) Recursive Algebraic Data Types
Яндекс.Метрика