Class Name: EE/CS 119a (Advanced Digital Design)
Institution: Caltech (Undergrad)
Project Duration: December 2025
Project Description: Implemented serial nonrestoring division algorithm for two 16-bit hex numbers on a CPLD
My Python version of my VHDL divider, try it out! Dividend and divisor should be inputed as decimal numbers.
It may be written in Python, but it still does the same finite state machine and bit operations I do in my VHDL version. (I've made a habit of implementing digital algorithms in Python first because Python is a "bit" easier to debug :)). Look at the verbose output to see how I'm implementing the algorithm.
Serial division algorithm flowchart (Courtesy of Professor Glen George). We were taught the algorithm and then asked to implement it.
Board schematic (Courtesy of Professor Glen George)
All my code here (includes VHDL files, VHDL test benches, and .jed file to upload to the board)
Serial vs parallel digital arithmetic algorithms
Finite state machines
VHDL programming and testbenching
Using Xilinx for fitting and simulation