Case study · FPGA + digital design

ASCII in. Morse out. One clock domain.

A modular Verilog design that accepts standard 8-bit ASCII and emits a variable-length Morse sequence for 62 uppercase, lowercase, and numeric inputs.

DeviceArtix-7 FPGA
Inputs62 characters
Clock100 MHz
ToolchainVivado
01

Problem

Encode human-readable input as timed hardware behavior.

The system must accept a standard ASCII character, look up its Morse representation and length, and emit a correctly timed dot/dash sequence while keeping the board interface stable and observable.

02

RTL architecture

Small modules with explicit timing responsibilities.

01 8-bit ASCII input Upper/lower/numeric
02 Input conditioning Sync + debounce + edge
03 ASCII lookup Morse bits + length
04 Morse FSM Dot/dash/gap sequencing
05 Tick enables One 100 MHz domain
06 LED + 7-segment output Physical display
Simplified RTL block diagram.
03

Modules

Decode, display, condition, and sequence.

  • ASCII lookup/decoder: maps each supported input to Morse symbols and a valid sequence length.
  • ASCII-to-seven-segment decoder: makes the selected character visible on the board.
  • Display multiplexer: refreshes multi-digit seven-segment output.
  • Button path: synchronizes the asynchronous input, debounces it, and produces a clean edge event.
  • Clock/tick enable generator: produces timing events without creating a second logic clock.
  • Morse finite-state machine: sequences dots, dashes, and gaps from lookup output.
04

Important decision

Use clock enables instead of a generated clock.

The entire design remains in the board’s 100 MHz clock domain. Slower behavior is driven by tick/clock-enable pulses. That avoids introducing a second clock network through ordinary fabric, simplifies timing analysis, and keeps crossings out of the core control path.

05

Verification

Check logic before trusting the board.

The testbench exercises supported inputs and observes the FSM sequence, output timing, and termination behavior. Physical testing then checks the integrated path from board controls through seven-segment feedback and Morse output.

Waveform + board demonstration

A sanitized testbench screenshot and short board demo will be added after confirming that the public repository matches the final submitted design.

06

Vivado flow

From behavioral model to physical device.

01 Simulation Behavior + testbench
02 Synthesis RTL → netlist
03 Implementation Place + route
04 Bitstream Device configuration
05 Programming Load board
06 Physical test Inputs + outputs
FPGA implementation and validation flow.
07

Results

Modular RTL with physical validation.

62Uppercase, lowercase, and numeric inputs
1Clock domain
8-bitStandard ASCII input
08

Limitations + next steps

Publish the final artifact, not an approximate one.

The case study intentionally withholds a repository link until the public repository is confirmed against the final design. Next steps include a verified code release, annotated waveform, board demo, timing summary, and a concise explanation of edge cases.