Unsigned Pipelined Divider
Unsigned pipelined divider using restoring division algorithm written in synthesizable VHDL.

- When pipeline is full new result is obtained every clock cycle.
- Configurable bit width through SIZE_C constant in divider entity.
- dividend allowable range of 0 to 2**SIZE_C-1                             
- divider allowable range of 0 to (2**SIZE_C)/2-1                         
- pipeline latency is 2*SIZE_C (time from latching input to result ready for sampling

View VHDL source code of divider here:
dividervhd.html

Zipped divider code with automated testbench for ModelSim and two behavioral models of restoring and non-restoring dividers as VHDL procedures:
divider.zip


Divider top level entity

entity divider is
  generic ( SIZE_C : integer := 32 ) ;            -- SIZE_C: Number of bits
  port
  (
       rst   : in  STD_LOGIC;
       clk   : in  STD_LOGIC;
       a     : in  STD_LOGIC_VECTOR(SIZE_C-1 downto 0) ;    
       d     : in  STD_LOGIC_VECTOR(SIZE_C-1 downto 0) ;    
      
       q     : out STD_LOGIC_VECTOR(SIZE_C-1 downto 0) ;    
       r     : out STD_LOGIC_VECTOR(SIZE_C-1 downto 0)
  ) ;  
end divider ;

Hosted by www.Geocities.ws

1