cvw/pipelined/srt/stine
2022-06-21 15:07:24 -05:00
..
checkme.sh
disp.c
disp.h
idiv-config.vh
intdiv.sv
iter32.do
iter32S.do
iter64.do
iter64S.do
iter128.do
iter128S.do
lod.sv
lzd_tb.sv
lzd.do
lzd.sv
Makefile
mux.sv
notes Add hex output in bad but okay way 2022-06-21 15:07:24 -05:00
otf4.in
pd_bad.png
pd_cpa.png
pd_csa.pdf
pd_csa.png
qslc_r4a2
qslc_r4a2.c
README
README.md
run.sh
shift_left_tb.sv
shift_left.do
shift_right_tb.sv
shift_right.do
shift.sv
shifter.sv
srt2div
srt2div.c
srt4_pd2.m
srt4_pd3.m
srt4_pd.m
srt4div
srt4div.c
test_iter32.sv
test_iter32S.sv
test_iter64.sv
test_iter64S.sv
test_iter128.sv
test_iter128S.sv
tmp

This is a novel integer divider using r4 division by recurrence. The reference is:

J. E. Stine and K. Hill, "An Efficient Implementation of Radix-4 Integer Division Using Scaling," 2020 IEEE 63rd International Midwest Symposium on Circuits and Systems (MWSCAS), Springfield, MA, USA, 2020, pp. 1092-1095, doi: 10.1109/MWSCAS48704.2020.9184631.

Although this version does not contain scaling, it could do this, if needed. Moreover, a higher radix or overlapped radix can be done easily to expand the the size. Also, the implementations here are initially unsigned but hope to expand for signed, which should be easy.

There are two types of tests in this directory within each testbench. One tests for 32-bits and the other 64-bits:

int32div.do and int64div.do = test individual vector for debugging

iter32.do and iter64.do = do not use any waveform generation and just output lots of tests