Digital implementation
Synthesis, physical design, timing analysis, and flow automation across two digital designs during my Cadence internship.
Genus · Innovus · Tempus · Static timing analysis
06 / Independent FPGA/HLS project
Designing the boundary between Python and programmable logic.
Two acceleration paths—a radix-4 Booth multiplier and a streaming 3×3 image kernel—with host interfaces and repeatable mock tests.
01 / Context
An accelerator needs more than a compute kernel. Data formats, control registers, streaming behavior, host drivers, and validation have to agree across the hardware/software boundary.
02 / Ownership
I developed the HLS paths, PYNQ Python drivers, notebooks, and host or mock tests. The suite explores both a control-oriented multiplier interface and a streaming image-processing path, with remaining board work documented explicitly.
03 / Architecture
Implement a radix-4 Booth multiplier and a streaming 3×3 image/filter kernel in HLS.
Structure AXI4-Lite control and AXI4-Stream/DMA-oriented data interfaces.
Expose the paths through Python drivers and PYNQ notebooks.
Use host and mock workflows to exercise interfaces before completing board validation.
04 / Validation
Synthesis results, a completed bitstream, board/DMA testing, and measured speedups remain pending. The browser image-inspection view is a mock demonstration.
05 / Perspective
The hardware/software interface is part of the design. Separating host tests from board measurements makes it clear which behavior has been exercised and which claims still need a physical implementation.