基础篇
Memory
- 避免细碎的RAM。将大的RAM拆分成多个小RAM,并根据地址关断可以优化功耗,但把多个小RAM合成大RAM可以优化面积。
- Block RAM和分布式RAM合理选择。根据存储容量,对Block RAM和分布式RAM的实现面积和功耗进行评估,选择更优的实现方式(对于40nm工艺,1bit 寄存器面积大约为5.3um2;对于22nm工艺,1bit 寄存器面积大约为2.9um2;对于Block RAM面积与深度/位宽不成线性比例,需要看综合工具的结果)。要例化一个位宽较大,但深度较浅的RAM块,例如宽度512bit,深度64的RAM,由于RAM位宽最大为72bit,至少需要8块RAM。此时,为了节省资源,可以使用分布式RAM。通常原则是:容量<2K,深度<64或宽度<64的RAM,使用分布式的RAM。对于宽度较大(大于256bit),深度较小(小于64)的RAM,这种比例失衡的RAM也可以考虑使用分布式RAM。
- 合理的选取RAM。无论是FPGA还是ASIC一般集成多个RAM块,这些RAM块大小固定。例如FPGA上一般为9Kbit,18Kbit,20Kbit、36Kbit,称为Block