PoC.arith.Divider

Implementation of a Non-Performing restoring divider with a configurable radix. The multi-cycle division is controlled by ‘start’ / ‘rdy’. A new division is started by asserting ‘start’. The result Q = A/D is available when ‘rdy’ returns to ‘1’. A division by zero is identified by output Z. The Q and R outputs are undefined in this case.

Entity Declaration:

 1    DIVISOR_BITS       : positive;          -- Divisor Width
 2    RADIX_EXPONENT     : positive := 1;     -- Power of Compute Radix (2**RAPOW)
 3    PIPELINED          : boolean  := false  -- Computation Pipeline
 4  );
 5  port (
 6    -- Global Reset/Clock
 7    Clock : in  std_logic;
 8    Reset : in  std_logic;
 9
10    -- Ready / Start
11    Start : in  std_logic;
12    Ready : out std_logic;
13
14    -- Arguments / Result (2's complement)
15    Dividend       : in  std_logic_vector(DIVIDEND_BITS-1 downto 0);
16    Divisor        : in  std_logic_vector(DIVISOR_BITS-1 downto 0);
17    Quotient       : out std_logic_vector(DIVIDEND_BITS-1 downto 0);
18    Remainder      : out std_logic_vector(DIVISOR_BITS-1 downto 0);
19    DivisionByZero : out std_logic
20  );
21end entity arith_Divider;
22
23
24library IEEE;