/ README.md
README.md
 1  # __*NOTE:*__
 2  
 3  The code has gone through some overhauling. Fixed some bugs and applied some optimizations so it is now resource and timming friendlier. The test bench still needs work but it is enough to stimulate the design a see a waveform. But don't trust the transaction comparisons because the predictor needs work.
 4  
 5  I need to circle back to the test bench.
 6  
 7  -------------------------------------------
 8  
 9  # Abstract
10  
11  A Goldschmidt integer divider written in verilog. Similar to Newton-Raphson but the multiplications are performed in parallel. 
12  
13  When originally designed it was intended for a RISC-V implementation therefore it conforms with the RISC-V ISA corner cases (in terms of the expected values when dividing by zero and such).
14  
15  On average the two clock per step implementation can take ~16 clocks to reach the result, the one per step version will take ~9 clocks.
16  
17  # Features
18   - 1 clock per step
19   - Wishbone4 Interfaces
20   - Parameterized factors lengths
21   - Automatic Look Up Table generation for the decimal conversion
22  
23  # Usage
24  
25  To get this repository:
26  
27        git clone --recursive https://github.com/jg-fossh/Goldschmidt_Integer_Divider.git
28  
29  The **GID_User_Guide.pdf** in the /docs directory provides more insight to the design, simulation and usage.