This is the hardware lab companion to CSE 140. Instead of just doing logic on paper, I actually built and simulated digital systems in SystemVerilog, starting from small combinational blocks up to a microcoded multiplier and a simple stream-cipher–style encryptor/decryptor.


Project 1 – Microcoded Signed Multiplier (Robertson’s Algorithm)

I implemented a signed Robertson’s multiplier as a microcoded datapath + control-unit system in SystemVerilog.

What I did


Project 2 – Multi-Feature Digital Alarm Clock & Calendar

I built a structural digital clock/alarm system, then extended it to track weekday and calendar date, all driven by modular counters and displayed on 7-segment outputs.

Part 1 – Basic HH:MM:SS Alarm Clock

What I did

Part 2 – Weekday-Aware Alarm (No Weekend Buzz)

What I did

Part 3 – Full Calendar: Date & Month Handling

What I did


Project 3 – Traffic Light Controllers with Timed FSMs

I implemented sensor-driven traffic light controllers using parameterized finite state machines and timing counters.

Part 1 – Three-Direction Intersection

What I did

package light_package;
  typedef enum logic [1:0] { red, yellow, green } colors;
endpackage

Part 2 – Multi-Lane / Four-Way Controller (Stretch)

What I did


Project 4 – LFSR-Based Message Encryption (Stream Cipher Style)

I implemented a programmable message encryption engine that uses a 6-bit LFSR as a key stream generator and XOR encryption.

What I did


Project 5 – LFSR-Based Decryption & Parameter Recovery

I extended the LFSR work to implement hardware that can decrypt an encrypted stream and recover unknown parameters like tap pattern and preamble length.

What I did