Altera Home Page
文档资料 许可
在线购买 下载

  主页   |   产品   |   支持   |   最终市场   |   技术中心   |   教育与活动   |   公司介绍   |   在线购买  
  mySupport   |   器件   |   软件   |   IP   |   设计范例   |   参考设计  

 产品
   Quartus II
      SOPC Builder
      MAX+PLUS II
      ModelSim-Altera
  
 资源中心
      简介
      安装&许可
      脚本
       电路板设计& I/O
      网表阅读器 & 综合
      编译增强特性
      优化
      功耗管理
   TimeQuest时序分析器
      标准时序分析器
      仿真 & 确认
      片内调试
      HardCopy设计
  
 软件资源
      操作系统支持
      驱动安装
  
 下载与许可
      下载
   许可
  
 Quartus II EDA 支持
      Quartus II 接口
   综合工具
   仿真工具
   验证工具
   时序分析工具
   再综合工具
   电路板级工具
  
 老版软件EDA支持
      供应商类
      工具类
      功能类
  

content-addressable memory (CAM) Definition


You can implement content-addressable memory (CAM) with Embedded System Blocks (ESBs) in the APEX 20K, APEX II, and Mercury device families. Specifically, you can use the MegaWizard Plug-In Manager or the Insert Symbol or Insert Symbol as Block commands to instantiate the CAM megafunction (altcam megafunction) into a design file.

You can compare CAM to the inverse of RAM. When read, RAM produces the data for a given address. Conversely, CAM produces an address for a given data word. When searching for data within a RAM block, the search is performed serially. Thus, finding a particular data word can take many cycles. CAM searches all addresses in parallel and produces the address storing a particular word.

You can use CAM for any application requiring high-speed searches, such as networking, communications, data compression, and cache management.

When in CAM mode, the ESB can implement 32-word, 32-bit CAM. Wider or deeper CAM can be implemented by combining multiple CAMs with some ancillary logic implemented in logic elements. The Quartus II software combines ESBs and logic elements automatically to create larger CAMs.

CAM supports writing "don't care" bits into words of the memory. The don't care bit can be used as a mask for CAM comparisons; any bit set to don't care has no effect on matches.

The output of the CAM can be encoded or unencoded. When encoded, the ESB produces an encoded address of the data's location. For example, if the data is located in address 12, the ESB output is 12. When a match is found, a match-found flag is set high. When unencoded, the ESB uses 16 outputs and reads the outputs in two cycles: 16 bits at each cycle to represent the 32 words in the CAM block. Each output represents one word of the CAM. There is no match output in this mode; if any of the outputs go high, there is a match. For example, if the data is located in address 12, the 12th output line goes high.

The encoded output is better suited for designs that ensure duplicate data is not written into the CAM. If duplicate data is written into two locations, the CAM's output will not be correct. If the CAM contains duplicate data, the unencoded output is a better solution; CAM with unencoded outputs can distinguish multiple data locations.

You can pre-load CAM with data during configuration, or you can write into CAM during system operation. In most cases, two clock cycles are required to write each word into CAM. When you use don't care bits, a third clock cycle is required.

 

  请填写反馈意见
  注册索取最新邮件通知