element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Forum TCAM implementations in FPGA
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 15 replies
  • Answers 4 answers
  • Subscribers 584 subscribers
  • Views 4178 views
  • Users 0 members are here
  • tcam
  • fpga
Related

TCAM implementations in FPGA

e14 Contributor
e14 Contributor over 14 years ago

There is a need to implement TCAM memory in a FPGA. The size of TCAM memory is 128K entries. It supports both 72 bit and 144 bit addresses. Can anyone provide any info regarding this???

  • Sign in to reply
  • Cancel

Top Replies

  • johnbeetem
    johnbeetem over 9 years ago +2 suggested
    Just for fun, I thought I might mention that you could do a 16x32 CAM quite nicely in Xilinx Spartan-3 or Spartan-6 using distributed dual-port RAMs as look-up tables. Basically, to identify a 32-bit number…
  • michaelkellett
    michaelkellett over 9 years ago in reply to bugzz2 +1 suggested
    I see now - that you aren't the same person - woops ! 16 x 32 is much more reasonable. www.xilinx.com/support/documentation/application.../xapp1151_Param_ CAM .pdf https://www.altera.com/en_US/pdfs/literature…
  • michaelkellett
    michaelkellett over 9 years ago in reply to bugzz2 +1 suggested
    Cyclone II is old and slow - I assume this isn't a commercial project. I'm going to make some big guesses here and tell you that you are doing it all wrong I bet the Ethernet frame doesn't get into the…
  • michaelkellett
    0 michaelkellett over 9 years ago in reply to bugzz2

    Cyclone II is old and slow  - I assume this isn't  a commercial project.

     

    I'm going to make some big guesses here and tell you that you are doing it all wrong imageimageimage

     

    I bet the Ethernet frame doesn't get into the FPGA in one great huge 1400 byte lump but comes in bytes, or maybe 16 bit or 32 bit words. If it comes in as bytes you get 4 clock cycles, which will help. But the other thing you can do is to pipeline - so trade off latency against speed.

    What is the maximum rate of incoming Ethernet frames ?

    How fast is the clock.

    And stuff like that.

     

    Can you draw a block diagram of what you are trying to achieve (try not to pre-judge how you will do it.)

     

    I'm signing off for now so I won't respond until tomorrow morning.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 9 years ago

    Just for fun, I thought I might mention that you could do a 16x32 CAM quite nicely in Xilinx Spartan-3 or Spartan-6 using distributed dual-port RAMs as look-up tables.  Basically, to identify a 32-bit number you encode eight 4-input LUTs (or six 6-input LUTs) with the 32-bit pattern you want to match and then AND their outputs.  You can load the bit pattern you want to match using the second port.  Spartan-6 has reconfigurable LUTs you can load serially.

     

    On Spartan-6 you can use a 6-input LUT as two 5-input LUTs if they have the same inputs.  This could save some LUTs when doing a pair of CAM lines.

     

    This scheme works for a small number of entries since you need a bunch of LUTs for each entry.  If you have a large number of IP subnet addresses to match, use the CAM as a cache and a PATRICIA tree for other entries.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • bugzz2
    0 bugzz2 over 9 years ago in reply to johnbeetem

    Thank you, insructions were helpful. I will upload my code as soon as I get sure that is near the solution.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • bugzz2
    0 bugzz2 over 9 years ago in reply to michaelkellett

    I will post my code soon, so people can find it and use it. Ofc, if everything gets right and correct.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • doomsday
    0 doomsday over 8 years ago in reply to bugzz2

    So did you complete the code, bruh! image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
<
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube