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
  • 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 560 subscribers
  • Views 3284 views
  • Users 0 members are here
  • tcam
  • fpga
Related

TCAM implementations in FPGA

Former Member
Former Member 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 8 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 8 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 8 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…
Parents
  • michaelkellett
    0 michaelkellett over 8 years ago

    You'll need a big FPGA for that !!

     

    (one with 2.3Mbytes of CAM )

     

    Try Google - lots of references on the web.

     

    I think you might need to think of  a better way of solving your problem.

     

    There are app notes form Xlinx and Altera which describe their approaches to this problem but I don't think either could offer a CAM the size you are asking for.

     

    What is the application ?

     

    MK

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

    Michael, what's the size of fpga for 16 entries for IPv4 addresses?

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

    Amina - a certain etiquette applies on forums.

     

    I've asked you a question (what's you application ?) which you haven't answered but just come back with a question you should easily be able to resolve yourself.  I'm not an Altera rep - I'm helping you out of the kindness of my heart. So you need to keep my interest to make me want to go on doing that.

     

    So, if you answer my question, and tell me which parts of the Altera CAM application note you are having trouble with, then I'll help you some more.

     

    MK

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

    OK, kind man, I thought you were talking to the person who posted the original image  it's for router classification of IP addresses.

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

    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/an/an119.pdf

     

    If you know which supplier you will use and which family of FPGA your best bet is to do a trial design - but you can see from the tables in the Xilinx app note  that you aren't going to need a huge FPGA.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • michaelkellett
    0 michaelkellett over 8 years ago in reply to bugzz2

    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/an/an119.pdf

     

    If you know which supplier you will use and which family of FPGA your best bet is to do a trial design - but you can see from the tables in the Xilinx app note  that you aren't going to need a huge FPGA.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
  • bugzz2
    0 bugzz2 over 8 years ago in reply to michaelkellett

    It happens   

    Could you suggest me good code examples on how to implement ternary bit (don't care bit) input, since I have no idea how to use a variable which value isn't binary. Altera's documentation on this is complex, explaining clock signals, power consumption, etc. I need to see the code in order to understand functionality.

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

    Are you actually using one of Altera's fancy FPGAs which supports the CAM  - if so then I can't help you much more because I don't use Altera parts.

     

    On the other hand - tell me more about the application - if you just need a quick fix you can code a 16 x 32 CAM easily enough  - it's going to use 512 registers and some extra logic and won't go as fast as dedicated hardware but it's not that hard to do.

     

    The key things you need to define are how many clock cycles, speed of the clock and the FPGA type (manufacturer and family).

     

    MK

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

    It is cyclone II which is not all the time accessible for my probes - particularly now. It should do all the comparing in one clock cycle.  I'm doing simulation in Quartus software. Application should have couple of input signals, for writing source and dest addresses, likewise masks, "enable" signal ofc, signaling the start and the end of ethernet frame and output signals for found/not found rule for specific address.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 8 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
  • bugzz2
    0 bugzz2 over 8 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
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 © 2025 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.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube