Hardware and Parallel Computing

FPGA, CUDA, and digital systems projects spanning CORDIC, FFT, a MIPS processor, and GPU memory.

These projects come from coursework and lab work at Sharif. They are the hardware counterpart to the machine-learning work on the rest of this site, and the reason I still care about what happens after a model is trained: clocks, memory, and the device it actually has to run on.

FPGA and digital design

GPU computing

Communications and embedded systems

  • Digital telecommunication system simulation.
  • Smart IoT socket firmware on Arduino and ESP32/ESP8266 for the Artificial Creature Laboratory, after evaluating IoT platforms and network protocols for the lab’s AI platform.

Tools

Vivado, Xilinx ISE, ModelSim, LTspice, Zynq FPGA, Raspberry Pi, Arduino, ESP32/ESP8266, CUDA.