Skip to content
Avi Patel

05 / Clemson · Three-person course team

FPGA timing controller

Several modes. One coherent digital system.

A synthesizable Verilog controller coordinating a clock, alarms, stopwatch, countdown, snooze, and user inputs.

Context
Clemson · Three-person course team
When
Academic project
Stage
Hardware-validated team project
Tools & methods
Verilog · FPGA · ModelSim · State machines · Testbenches · PWM

Conceptual system sequence

  1. 01Structure
  2. 02Interface
  3. 03Exercise
  4. 04Validate

A visual explanation of the workflow.

01 / Context

The problem

A timing controller becomes interesting when several functions have to coexist. Mode changes, button bounce, rollover, and concurrent timing behavior can all expose bugs that a single happy-path demonstration misses.

02 / Ownership

My contribution

I led a three-person team on the synthesizable controller and built ModelSim testbenches for rollovers, mode transitions, and concurrent functions. The design combined debounced inputs, display control, and PWM audio, followed by validation on FPGA hardware.

03 / Architecture

How it works

  1. 01

    Structure

    Separate shared timekeeping and mode-specific state so functions can coexist.

  2. 02

    Interface

    Debounce user inputs and coordinate the display and audible output.

  3. 03

    Exercise

    Test rollover, mode changes, and simultaneous functions in ModelSim.

  4. 04

    Validate

    Check the controller's behavior on the FPGA board after simulation.

04 / Validation

Evidence & scope

  • Synthesizable Verilog and simulation testbenches developed in a three-person team.
  • Boundary-case checks for rollover, transitions, and concurrency.
  • Controller behavior validated on FPGA hardware.

Project scope

Team course project. Original RTL, board captures, and waveforms are not currently published; this page is a written technical overview.

05 / Perspective

Engineering takeaway

A digital design needs a plan for state and a plan for testing that state. Boundary cases reveal more about a multi-mode controller than a demonstration of each feature in isolation.