RISC-V processor

[WIP] A C++ simulator and SystemVerilog implementation of the RISC-V 32IM architecture that I developed to learn about RISC-V.

Slang Netlist

[WIP] Slang Netlist is a library and tool leveraging slang to analyse the source-level static connectivity of a System Verilog design and is intended to be a replacement for Netlist Paths (see below). Slang Netlist is included as a tool in the slang project.

Hex processor

The Hex Architecture is a very simple processor designed by David May and intended for explaining how a computer works. This repository contains an implementation in Verilog and basic tooling written in C++ for developing programs (a compiler, assembler and simulator). It was written out of curiosity and to serve as an example of how high-level programs relate to the underlying hardware implementation.

Netlist Paths

Netlist Paths is a library and command-line tool for querying a Verilog netlist. It reads an XML representation of a design’s netlist, produced by Verilator, and provides facilities for inspecting types, variables and paths. The library is written in C++ and has a Python interface.

PRNG testing

This repository contains facilities for comprehensively testing PRNGs using statistical test suites. It provides a facility to run a PRNG against TestU01, PractRand and Gjrand, with parallel runs from different seeds and permutations of the output bits, and a script for summarising results across all the runs. This testing methodology was used for the investigation in this paper.

Older projects