Implementation of LPM Address Generators on FPGAs

  • Hui Qin
  • Tsutomu Sasao
  • Jon T. Butler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3985)


We propose the multiple LUT cascade as a means to configure an n-input LPM (Longest Prefix Match) address generator commonly used in routers to determine the output port given an address. The LPM address generator accepts n-bit addresses which it matches against k stored prefixes. We implement our design on a Xilinx Spartan-3 FPGA for n = 32 and k = 504 ~511. Also, we compare our design to a Xilinx proprietary TCAM (ternary content-addressable memory) design and to another design we propose as a likely solution to this problem. Our best multiple LUT cascade implementation has 5.20 times more throughput, 31.71 times more throughput/area and is 2.89 times more efficient in terms of area-delay product than Xilinx’s proprietary design. Furthermore, its area is only 19% of Xilinx’s design.


Address Generator Special Encoder Address Line Priority Encoder Ternary Vector 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Micron Technology Inc.: Harmony TCAM 1Mb and 2Mb, Datasheet (January 2003)Google Scholar
  2. 2.
    Gupta, P., Lin, S., McKeown, N.: Routing lookups in hardware at memory access speeds. In: Proc. IEEE INFOCOM, pp. 1241–1247 (1998)Google Scholar
  3. 3.
    Dharmapurikar, S., Krishnamurthy, P., Taylor, D.: Longest prefix matching using Bloom filters. In: Proc. ACM SIGCOMM, pp. 201–212 (2003)Google Scholar
  4. 4.
    Sasao, T., Butler, J. T.: Implementation of multiple-valued CAM functions by LUT cascades. In: Proc. IEEE International Symposium on Multiple-Valued Logic (accepted for publication) (May 2006)Google Scholar
  5. 5.
    Shafai, F., Schultz, K.J., Gibson, G.F.R., Bluschke, A.G., Somppi, D.E.: Fully parallel 30-MHz, 2.5-Mb CAM. IEEE Journal of Solid-State Circuits 33(11), 1690–1696 (1998)CrossRefGoogle Scholar
  6. 6.
    Ashenhurst, R.L.: The decomposition of switching functions. In: Proc. International Symposium on the Theory of Switching, pp. 74–116 (1957)Google Scholar
  7. 7.
    Sasao, T.: Switching Theory for Logic Synthesis. Kluwer Academic Publishers, Dordrecht (1999)CrossRefMATHGoogle Scholar
  8. 8.
    Sasao, T., Matsuura, M., Iguchi, Y.: A cascade realization of multiple-output function for reconfigurable hardware. In: Proc. International Workshop on Logic and Synthesis, pp. 225–230 (2001)Google Scholar
  9. 9.
    Sasao, T., Matsuura, M.: A method to decompose multiple-output logic functions. In: Proc. 41st Design Automation Conference, pp. 428–433 (2004)Google Scholar
  10. 10.
  11. 11.
  12. 12.
    Xilinx, Inc.: Spartan-3 FPGA family: Complete data sheet, DS099, August 19 (2005)Google Scholar
  13. 13.
    Sproull, T., Brebner, G., Neely, C.: Mutable codesign for embedded protocol processing. In: Proc. IEEE 15th International Conference on Field Programmable Logic and Applications, pp. 51–56 (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Hui Qin
    • 1
  • Tsutomu Sasao
    • 1
  • Jon T. Butler
    • 2
  1. 1.Department of Computer Science and ElectronicsKyushu Institute of TechnologyFukuokaJapan
  2. 2.Department of Electrical and Computer EngineeringNaval Postgraduate SchoolMontereyUSA

Personalised recommendations