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???
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???
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
Michael, what's the size of fpga for 16 entries for IPv4 addresses?
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
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
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.
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
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
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.
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 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
I will post my code soon, so people can find it and use it. Ofc, if everything gets right and correct.