目录
[Memory Compiler(内存编译器)](#Memory Compiler(内存编译器))
Memory Compiler(内存编译器)
Memory Compiler(内存编译器)是由芯片工艺厂商提供的专用工具,用于自动生成不同容量、类型和性能的存储器模块(如SRAM、Register file等),并输出包含行为模型、时序库、版图文件等完整设计数据。
核心功能与输出内容
Memory Compiler通过输入参数(如存储深度、位宽、工艺角等)生成以下设计文件:
- 前端设计文件:Verilog行为模型,用于仿真验证;
- 逻辑综合文件:时序库(.lib/.db),供综合工具使用;
- 后端设计文件:电路网表、LEF/GDS版图文件,用于物理实现;
- 验证文档:DFT测试相关文件和datasheet手册。
存储器类型与选择
根据设计需求,Memory Compiler可生成以下主要类型:
- SRAM:面积优势显著,适合大容量存储,分为Single Port和Dual Port结构;
- Register File:基于SRAM架构但读写端口更灵活,常用于高速小容量场景;
- ROM:仅支持读取,无写入功能。
性能权衡:High Speed型侧重速度,High Density型侧重面积优化。2
与手动设计的对比
| 对比维度 | Memory Compiler生成模块 | 手动综合寄存器组 |
|---|---|---|
| 实现方式 | 专用SRAM单元+优化电路 | 标准单元(如D触发器)搭建 |
| 面积/功耗 | 更优(深度优化) | 较差 |
| 适用场景 | 位数较大时更具经济性 | 小规模存储或特殊定制需求 |
典型的存储器
在SoC中,存储器是决定性能的一个重要因素。在不同的SoC设计中,根据实际需要采用不同的存储器类型和大小。常用的存储器有 SRAM、SDRAM、DDRAM、FLASH 和 ROM。
SRAM
(静态随机存储器)的特点是存储速度非常快,可以达到和处理器的时钟同步,而且SRAM存储器的接口简单,比较容易设计。SRAM 在系统中常常作为处理器的缓存 cache 。但是一个通用的SRAM的每1位需要6个晶体管,因此比相同存储空间的RAM的面积大,在SOC中只能少量使用。
(SRAM是实现Cache 的一种关键技术,Cache位于CPU和主存储器(通常是DRAM)之间,用来存放当前活跃的程序和数据,以减少CPU访问主存的延迟。Cache的工作原理基于程序的时间局部性和空间局部性,即程序在执行过程中会频繁访问最近使用过的数据和指令)
SDRAM
(同步动态随机存储器)的价格低、体积小、容量大,是SOC中比较理想的存储器件。与SRAM 相比,SDRAM的控制逻辑复杂,速度较慢。SDRAM 每一个内存单元由一个能短暂存储电荷的电容器构成。由于动态内存单元容易失去电荷,因此容易失去存储在其中的数据。在 SDRAM中必须包括一个刷新电路,不断地刷新其中的电荷,使其值保持不变。
DDRAM
(双倍传输速度随机存取存储器)采用双倍数据技术,支持在时钟的上升沿和下降沿同时进行数据传输,从而增加数据的吞吐量,其最大带宽可以达到 SDRAM的两倍,当然它的接口设计也更加复杂。是 SDRAM的升级。
ROM
(只读存储器)是一种只读存储器,包括掩膜式 ROM、可编程 ROM(PROM)、可擦除可编程 ROM(EPROM)和可电擦除可编程 ROM(EEPROM)等。ROM 在SOC中一般用来存储固定的代码或资料。
FLASH
(闪存)是价格性能兼顾的一种新型的不挥发存储器。
NOR FLASH 和 NAND FLASH 是现在市场上两种主要的 FLASH 存储器。
NOR FLASH的特点是在芯片内可以直接运行程序,而不必再把代码读到系统 RAM 中。NOR的传输效率很高,但是写入和擦除速度较低,这就大大影响了它的性能。
NAND FLASH能提供比较高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。NOR FLASH 的接口比较简单而 NAND FLASH 的接口则要复杂得多。
NAND Flash与NOR Flash
- NOR Flash的应用场景:
- NAND Flash的应用场景: