About Me

Hi, I’m Dariush.

I’m Dariush Yousefi — a Computer Engineering graduate student interested in understanding computers from the inside out. You can also find me online as thisisdariush.

A little about me

I’m fascinated by the layers hidden underneath the software we use every day. While most people interact with computers through applications and interfaces, I’m interested in what happens underneath them — inside processors, digital circuits, memory systems and hardware.

My main interests are around Computer Architecture, Digital Logic, FPGA, RTL Design and Hardware Engineering. I enjoy taking an abstract idea, breaking it down into logic, and eventually understanding how that idea can become real hardware.

I’m currently exploring these topics through academic work, personal projects, experiments and a lot of curiosity about how computers actually work at the lowest practical levels.

What I’m interested in

🖥 Computer Architecture

CPUs, datapaths, control units, memory hierarchies, pipelines, instruction execution and the design decisions that make modern processors work.

⚡ Digital Hardware

Logic gates, Boolean algebra, combinational and sequential circuits, registers, flip-flops and the building blocks behind digital systems.

🔧 FPGA & RTL

Designing hardware with HDL, thinking in terms of RTL and discovering how HDL descriptions eventually become physical logic inside an FPGA.

💻 Low-Level Computing

I enjoy exploring the boundary between software and hardware — where code stops being an abstract program and starts becoming actual computation.

🔐 Hardware Security

Lightweight cryptography, hardware implementations of cryptographic algorithms and the challenge of balancing performance, area and power.

🧠 How Things Work

More than simply using technology, I like taking things apart conceptually and asking: why does this work this way?

From software to hardware

My journey into computing didn’t start at the hardware level. Like many developers, I initially spent a lot of time thinking in terms of software, applications and user interfaces.

Over time, I became more interested in what happens underneath the abstractions. I wanted to understand not only what a program does, but how a computer actually executes it.

That curiosity gradually pulled me toward digital logic, computer architecture, HDL and FPGA design.

I don’t just want to use computers.
I want to understand how they are built.

What I’m working on

My current academic work is focused on hardware architecture for lightweight cryptography on FPGA, with an emphasis on understanding the trade-offs between throughput, power consumption and hardware resources.

This is also giving me an opportunity to explore the complete path from an algorithm to hardware — from mathematical and logical concepts, through RTL design and simulation, to synthesis and FPGA implementation.

Beyond the technical stuff

I’m naturally curious about technology in general. I like learning how complex systems are designed, why certain engineering decisions were made, and how seemingly simple ideas can eventually become large-scale technologies.

I’m especially interested in the world of processors and semiconductors, from CPU microarchitecture and chip design to the engineering behind modern computing platforms.

I also enjoy building things, experimenting, learning by doing, and documenting what I learn along the way.

Why cpucode?

cpucode is where I document my journey through computer engineering.

The goal is simple: take concepts that often look complicated in textbooks and explain them in a way that makes their underlying logic visible.

From a simple logic gate to a CPU datapath, from Boolean algebra to RTL, and from HDL code to FPGA hardware — this site is about understanding the connection between all of these layers.

Still learning.

I’m not here because I already know everything. I’m here because there is a lot more to learn.

I’m building my knowledge one concept at a time, experimenting, making mistakes, going back to the fundamentals and trying to understand things deeply rather than simply memorizing them.

Learn the fundamentals. Understand the system. Build something with it.