@Content-Addressable Memories (CAM) search data by content rather than by address. CAMs are used extensively today in applications such as network routers, database accelerations, and data compression. In all these applications, a search data is compared against thousands of stored entries in order to identify the locations of the matching data. The search operation is performed in parallel, thus allowing the CAM to complete a search in one clock cycle, much faster than any software implementation of the same function. This speed, however does not come for free; the CAM power consumption can be very high, to the point of limiting the number of searches per second, or limiting the number of entries on the CAM. In this talk, I will present a short circuit tutorial on CAM, followed by the circuit techniques that we have developed at the University of Toronto to reduce the CAM power consumption. I will conclude the talk by presenting a list of open challenges in the CAM area.