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;