LINEAR MODE (Multiply / Divide)


BASELINE

python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..

ITERATION SWEEP (CONVERGENCE)

python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 4 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 8 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 12 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..

FRACTION BITS SWEEP (FIXED-POINT RESOLUTION)

python gen/gen_cordic_tables.py --width 32 --frac-bits 20 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 24 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 28 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..

WIDTH SWEEP (DATAPATH PRECISION)

python gen/gen_cordic_tables.py --width 20 --frac-bits 18 --iter 14 --mult-out-width 20 --mult-out-shift 0 --div-out-width 20 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 24 --frac-bits 20 --iter 16 --mult-out-width 24 --mult-out-shift 0 --div-out-width 24 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 28 --frac-bits 24 --iter 18 --mult-out-width 28 --mult-out-shift 0 --div-out-width 28 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 22 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 40 --frac-bits 36 --iter 24 --mult-out-width 40 --mult-out-shift 0 --div-out-width 40 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..

MULT OUTPUT WIDTH (QUANTIZATION)

python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 24 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 28 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..

DIV OUTPUT WIDTH (QUANTIZATION)

python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 24 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 28 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..
python gen/gen_cordic_tables.py --width 32 --frac-bits 30 --iter 16 --mult-out-width 32 --mult-out-shift 0 --div-out-width 32 --div-out-shift 0 && cd rtl && iverilog -o test cordic_linear_core.v cordic_mult.v cordic_div.v cordic_linear_rom.v ../sim/tb_lin.v && vvp test +ALL && cd ..