Five-stage RV32I-subset core
12 fetch-boundary cases across six timing setups: 72 passing simulation runs.
See checks, logs and testbench ↗HELLO, I'M ADAM MORGAN
I’m an Electrical Engineering student at Toronto Metropolitan University, interested in RTL design and verification. I’m building a five-stage RISC-V processor in SystemVerilog and testing how it handles hazards, memory delays, and faults.
Expected graduation: 2030 · Seeking RTL design & verification co-op opportunities
Verification first: See the processor tests, source, and results ↗
START HERE / INSPECTABLE ENGINEERING
12 fetch-boundary cases across six timing setups: 72 passing simulation runs.
See checks, logs and testbench ↗Four RTL configurations checked against an independent scoreboard, with a generic synthesis check.
Inspect assertions and VCD ↗Eight automated checks reproduce the software model’s mapping and replacement behavior.
Inspect reproducible results ↗01 / SELECTED WORK
The most useful proof is work you can inspect. Start with the processor case study, then follow the source, testing approach and project notes.
A five-stage RV32I-subset CPU in SystemVerilog with independent instruction/data ports and an opt-in fail-stop path. New fetch-boundary simulations demonstrate ordered faults at the modeled 4 KiB instruction limit, older-instruction completion, and suppression of tested speculative wrong-path faults.
What you can inspect now
Fetch buffers one returned instruction; older data transactions hold younger stages. Both memory channels are exercised by an independent simulation adapter.
Independent I/D ready/valid ports and an opt-in sticky halt remain. Fetches outside the local 4 KiB model create an age-ordered fault token; a taken branch or jump at 0xffc can discard it, while a legal jump to 0x1000 retires its link before the younger fetch faults. Older data requests drain, and no out-of-range external I request is offered. These are simulation diagnostics, not machine-mode traps.
FROM THE RTL WORKBENCH / VERIFICATION
A parameterized single-clock FIFO in SystemVerilog, checked against an independent scoreboard. Four depth/width configurations pass directed and deterministic randomized tests.
Built a configurable cache lookup model to compare address mapping, associativity and replacement decisions—with repeatable traces and automated tests.
On a 96-access synthetic conflict trace, the 128-byte direct-mapped cache had a 0% hit rate, compared with 97.92% for the equally sized two-way cache. This is model output, not real CPU performance.
Prototype work exploring 3D-printed mechanical parts, an ESP32, servo actuation and tendon-driven movement. The public render illustrates a design direction; it is not evidence of the assembled hardware.
ROUGH 3D ASSEMBLY STUDY
Designing around the relationship between actuator torque, printed parts, and cable tension reinforced how tightly mechanical and electrical design are connected. Improved sensing and more sophisticated control are future directions.
Prototype work · no public as-built photos, measured CAD or motion-test results yet
Repurposed a compact office PC into an Ubuntu server for a personal Immich photo archive, Tailscale access and self-hosted tools.
Working on a live system taught me about backups, storage layout, network reliability, Linux maintenance and safe remote access. I use it as practical infrastructure for other projects.
A student workflow app bringing course planning, coursework, focus sessions and progress into one place.
ACTUAL HAVEN UI / DEMO DATA
The problem I’m working on is making it easier to move from knowing what is due to actually choosing and starting useful study work. Course and task context are central to the product.
A closer look at three different problems: processor verification, reliable personal infrastructure, and the study workflows behind Haven Education.
02 / MY JOURNEY
Progress from fundamentals toward practical systems shows what I'm learning and why I keep building.
Developing a 32-bit RV32I-subset processor prototype in SystemVerilog, moving from standalone ALU tests to self-checking integrated instruction-program simulations. Read the case study ↗
Turning refurbished hardware into personal storage, remote infrastructure and a place to experiment with automation. Explore the setup ↗
Developing Haven Education to connect coursework, study planning and practical student workflows. Explore the case study ↗
Reinforcing the mathematics, programming and engineering foundations that support later hardware work.
Building an interest in reusable logic modules, hardware description languages and simulation as a way to understand circuits.
Studying mathematics, physics and programming while exploring how a digital system is assembled from smaller components.
Growing more interested in electronics, digital logic and the connection between software instructions and physical behavior.
Beginning my engineering education at Toronto Metropolitan University and discovering how much there is to learn across hardware, computing and design.
03 / ABOUT
I study electrical engineering at TMU, with an expected graduation in 2030. I’m particularly interested in processor microarchitecture, digital design, and the bridge between circuit-level behavior and computer systems.
I like working from first principles, building a prototype, and understanding why it behaves the way it does. That applies whether I’m examining an RTL waveform, troubleshooting a circuit, or maintaining a Linux server.
Outside engineering, I play piano and run an independent design business. Working across hardware and physical products keeps me curious about how ideas become things people use.
Connect on LinkedIn ↗Boolean logic, sequential circuits, processor datapaths
SystemVerilog, Verilog, Icarus Verilog, GTKWave
Quartus, ModelSim, FPGA coursework
C, Java, Python, Git, Linux, React
Areas of interest and experience at different stages of development — see project evidence for depth.
04 / OUTSIDE THE LAB
Engineering is also communication, judgment, and following a problem through to a useful result.
Working in customer support has reinforced the importance of clear communication, consistent processes, attention to detail and reliability when other people depend on your answer.
Client support · National Service Call CentreSince 2022, I've developed a clothing brand from design concepts into manufactured products. Creating technical packs, choosing materials and coordinating with suppliers taught me to turn an idea into a specification someone else can build.
Design · Manufacturing · OwnershipMore background and current experience are available on LinkedIn ↗.
05 / CONNECT
I’m pursuing RTL design, design verification, and digital hardware co-op roles. Expected graduation: 2030. Please contact me to discuss start dates and term length.