本文作为SpinalHDL学习笔记第七十三篇,介绍SpinalHDL的RAM/ROM。
目录:
1.语义(Syntax)
2.同步使能quirk(Synchronous enable quirk)
3.读下写原则(Read-under-write policy)
4.混合宽度ram(Mixed-width ram)
5.⾃动化mem⿊盒(Automatic blackboxing)
⼀、语义(Syntax)
⽤Mem类在SpinalHDL中创建memory, 它允许你定义memory并增加读写端⼝。
以下表格展⽰了如何例化memory:
备注:如果你想定义ROM, initialContent阵列的元素应该是纯粹的值(没有操作符, 没有改变尺⼨函数), 在例⼦⾥有Sinus rom的例⼦。
备注:给RAM初始化时, 也可以⽤init函数。
备注:写mask宽度是灵活的, 可以把mem字拆分成和mask宽度⼀样的片段。例如如果你有32 bits的mem字并提供了4bits的mask, 那么这就是字节(byte)mask。如果你提供32 bits的mask, 那这就是bit mask。
以下表格展⽰了如何给memory增加端⼝: