Designing a RISC-V CPU, Part 1: Learning hardware design as a software engineer

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • litex

    Build your hardware, easily!

  • [1]: https://github.com/greatscottgadgets/luna/blob/master/exampl...

    Migen, the Python-based project nMigen is based off, has been around for longer and has some large projects, such as LiteX[2] which uses Migen to glue together entire SoCs, including peripheral cores such as GigE, DDR3/4, SATA, PCIe, etc, all written in Migen, and is pretty widely used. It also pulls in Verilog/VHDL designs (such as many of its CPU core choices) since it's easy to pull in those from the Python side.

    [2]: https://github.com/enjoy-digital/litex/

  • RISCV-FiveStage

    Marginally better than redstone

  • It's coursework that takes you from knowing nothing about hardware design to designing your own RISC-V In-Order Five stage architecture. As far as I know a few students have actually done the work to run this on an FPGA, but for the most part you will have the luxury of an emulator, giving you things like stack traces compared to the model execution for all the test programs etc.

    https://github.com/PeterAaser/RISCV-FiveStage

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • wyre

    Hardware definition language that compiles to Verilog

  • Shameless plug: I had a similar impression when looking at nMigen, so I wrote a new HDL called Wyre [0]. No metaprogramming, but a Verilog-like language with a focus on ergonomics instead. I'm currently making a basic Minecraft clone for the Lattice iCE40 with it.

    [0] https://github.com/nickmqb/wyre

  • nmigen-tutorial

    Discontinued A tutorial for using nmigen

  • I've had this recommended and it looks v promising! https://vivonomicon.com/2020/04/14/learning-fpga-design-with...

    Someone above has mentioned Robert Baruch too: https://github.com/RobertBaruch/nmigen-tutorial

    I also found this helpful: http://blog.lambdaconcept.com/doku.php?id=nmigen:tutorial

    And there is of course the IRC channel if you want to ask people questions, #nmigen on irc.freenode.net

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project