Introduction

Linnea began with a simple question.

How does a computer actually work?

Answering that question isn’t as simple as designing a processor. Modern computer systems are made up of many interacting components, each solving a different problem. Processors compute, interconnects communicate, caches hide latency, memory systems balance performance and complexity, and every layer influences the next.

Linnea is my attempt to understand those systems by building them.


Why the name?

Honestly, I just liked the name.

Linnea is named after the twinflower (Linnaea borealis). It sounded simple, memorable, and a little different from the sea of acronyms and technical names that hardware projects usually end up with.

As I spent more time on the project, I realized it fit better than I had expected. The twinflower grows as two flowers connected by a single stem, which felt like a nice parallel to how modern computer systems are built around two equally important ideas: computation and communication.

People often say communication is the key to a healthy relationship. I figured I’d at least make sure the computers got that part right.

The name stuck, and over time it became a nice reminder that building a computer isn’t just about making processors faster. It’s also about making the different parts of the system work together.


The Goal

Linnea isn’t intended to be a lifelong project.

The goal is to build a computer system that reflects everything I learn throughout my journey into computer architecture. By the time I consider it complete, I want to have designed, implemented, verified, and documented enough of the system to confidently say that I understand not just the individual components, but how they come together to form a complete machine.

More importantly, I want Linnea to stand as proof of that understanding.

Whether it’s for graduate school, an RTL design role, or a career in computer architecture, I want this project to represent the engineer I’ve become by the end of it.


Roadmap

Phase 1

  • Network-on-Chip foundation
  • AXI4-Stream compliance
  • Verification environment
  • FPGA validation

Phase 2

  • Compute core
  • Instruction pipeline
  • Memory interface

Phase 3

  • Cache hierarchy
  • Cache coherence
  • Shared memory system

Phase 4

  • Peripherals
  • Software bring-up
  • Performance evaluation

Current Status

The Network-on-Chip has grown into an independent project with its own repository and documentation.

Current work is focused on completing and verifying the NoC before integrating it into Linnea. Once the communication infrastructure reaches a stable state, development will shift toward the compute side of the system.


Related Projects

NoC

A standalone synthesizable Network-on-Chip designed for FPGA prototyping and future SoC integration.

The NoC serves as the communication backbone of Linnea while remaining usable as an independent IP block.


Journal

This page will evolve alongside the project.

Design decisions, architectural explorations, failures, implementation notes, verification work, and milestones will all be documented here as Linnea grows.