Reciprocal Core

Overview

This is a configurable reciprocal DSP core for signal processing application on programmable logic devices.

The core operates on streamed data which is reciprocated (inverse value calculated) via a non-traditional, intelligent, innovative design. After an initial output delay equal to the bit width of the input plus 4 clock cycles, the output is also streamed out at a rate of one result per clock cycle.

This DSP engine is written in VHDL, capable of being used on any FPGA/ASIC architecture.

Features

Reciprocal Core is customizable and can be tailored to customer needs.

  • Parameterisable input width
  • Parameterisable fractional width input
  • Very close reciprocal approximate output
  • Area/Power efficient architecture
  • Can be used in any hardware implementations where typically division may be avoided
  • Fully synchronous design using only one clock
  • No multipliers are used/required in the design
  • Form factor only dependent on input bit width. Area grows at a rate less than linear input bit width.
  • Silicon verified in multiple devices
  • Optimized design allows customers to target cost efficient FPGAs.
  • Can be tailored to customer needs

 

Deliverables

  • Netlist or synthesizable RTL source code in VHDL
  • Comprehensive verification test bench and vectors in VHDL
  • Integration documentation and user guide

Performance

The following results compare the true floating-point reciprocal function (solid line) to the accuracy of the Reciprocal Core (dashed line) output. As can be seen from the graphs below, the output of the floating-point reciprocal function is a very close match to the output generated by the Reciprocal Core. Note that the input widths are parameterisable.

 

 

 

The following is the resource utilisation for a Xilinx Virtex6 FPGA.

Input Width Sices Used Flip-Flops Used Maximum Frequency
18 bit  267  576  346MHz  
32 bit  397  551  389MHz