数字IC设计
Memory Map设计规范与最佳实践
探讨芯片设计中Memory Map的规划原则,包括地址分配策略、预留空间、访问权限设计等工程实践经验。
Memory Map设计规范与最佳实践
什么是Memory Map?
Memory Map是芯片设计中定义各模块地址空间分配的文档。它决定了CPU/DMA如何访问各个外设和内存区域。
1. 地址对齐原则
- 4KB对齐:大块内存和外设至少要4KB对齐,方便MMU管理
- 寄存器块:寄存器块通常4KB或更大
- FIFO缓冲:FIFO通常需要连续的大块地址
2. 预留空间策略
code
0x0000_0000 - 0x0FFF_FFFF : Boot ROM (256MB)
0x1000_0000 - 0x1FFF_FFFF : Peripheral A (256MB)
0x2000_0000 - 0x2FFF_FFFF : Peripheral B (256MB)
0x3000_0000 - 0x3FFF_FFFF : Reserved (256MB)
0x4000_0000 - 0x7FFF_FFFF : DRAM (1GB)建议每个外设之间至少预留25-50%的空间,方便后续扩展。
3. 访问权限设计
| 类型 | 描述 | 用途 | |------|------|------| | RW | 可读可写 | 控制寄存器 | | RO | 只读 | 状态寄存器 | | WO | 只写 | 触发型寄存器 | | R/W1C | 读/写1清零 | 中断标志 |
4. 版本管理建议
- 使用版本号:Memory Map文档应该有版本号和修订记录
- 预留字段:寄存器中预留未使用的bits
- 向后兼容:新增寄存器应放在已有块的末尾或预留空间中
使用 ICHDL Memory Map生成器 在线生成地址映射表。