Pipelined Divider
PIPE_DIV is a pipelined divider with configurable data width.
Overview
PIPE_DIV is a pipelined divider with configurable data width. The design is fully scalable and modular permitting the user to specify large dividers without compromising maximum attainable clock-speed.
The divider accepts input values as either signed or unsigned integers depending on the generic setting use_signed. An n-bit numerator and denominator will generate an n-bit result for the quotient and an n-bit result for the remainder. The output remainder always takes the sign of the numerator and is determined by the formula:
Rmd = Num − Quo ∗ Den
Where Rmd, Num, Quo and Den represent the remainder, numerator, quotient and denominator respectively.
In the case of a divide by zero, then the div_zero flag is asserted at the divider output and the maximum value possible is returned in the quotient. The remainder takes the value of the numerator. For example, if dw = 8, the division -3/0 will return a result of -128 for the quotient and -3 for the remainder. The division 3/0 would return a remainder of 3 and a quotient of 127 for signed arithmetic or 255 for unsigned.
Values are sampled on the rising clock-edge of clk when en is high. The number of register stages in the pipeline may be modified in order to trade off maximum speed against the total resource used. The overall pipeline latency of the divider is given by the formula:
Latency=dw / reg_stages
For example, a 24-bit divider with the number of register stages set to 3 will result in a circuit with 8 clock cycles of latency. In other words, the result of a division will take 8 clock-cycles to appear at the output. Note that while the latency may change depending on the implementation, the throughput is always maintained at one output result per clock.
Key features
- Synthesizable, technology independent VHDL Core
- Function y = a / b
- Input values as signed or unsigned integers
- Output values as signed or unsigned integers
- Configurable numerator and denominator data width
- High-speed fully pipelined architecture with configurable number of register stages for area/speed trade off
- Quotient, remainder and div_zero outputs
- One output result per clock-cycle (i.e. pipelined operation)
- Capable of clock speeds of 400MHz+ on even basic FPGA platforms
Block Diagram
Applications
- Fundamental building block in digital processing functions
- Division of integers and fixed-point numbers1
- Implementation of the reciprocal function f(x) = 1/x
Specifications
Identity
Files
Note: some files may require an NDA depending on provider policy.
Provider
Learn more about Arithmetic Units IP core
ML-KEM explained: Quantum-safe Key Exchange for secure embedded Hardware
Accelerating RTL Design with Agentic AI: A Multi-Agent LLM-Driven Approach
LTE Single Carrier DFT: Faster Circuits with Reduced FPGA LUT/Register Usage
FPGA Implementation of DLX Microprocessor With WISHBONE SoC Bus
Computing dons new suits as required
Frequently asked questions about Arithmetic Unit IP cores
What is Pipelined Divider?
Pipelined Divider is a Arithmetic Units IP core from Zipcores Electronic Systems Engineering S.L. listed on Semi IP Hub.
How should engineers evaluate this Arithmetic Units?
Engineers should review the overview, key features, supported foundries and nodes, maturity, deliverables, and provider information before shortlisting this Arithmetic Units IP.
Can this semiconductor IP be compared with similar products?
Yes. Buyers can compare this product with similar semiconductor IP cores or IP families based on category, provider, process options, and structured technical specifications.