实现 RAM 时应该考虑的性能因素

高性能设计要求使用输出流水线寄存器,同时还建议所有设计都应使用输出寄存器。这可以优化块 RAM 的时钟输
出时序。另外增加第二个输出寄存器也有好处,因为与块 RAM 寄存器相比, slice 输出寄存器具有更快的时钟输出
时序。使两个寄存器的总读取时延为 3 。在推断这些寄存器时,它们应以 RAM 阵列的方式存在于相同层级上。这
样便于工具将块 RAM 输出寄存器合并到原语中。
使用输入流水线寄存器
RAM 数组很大并映射到许多原语时,它们可以跨相当大的模具区域。这可能导致地址和控制线上的性能问题。
考虑在生成这些信号之后和 RAM 之前添加一个额外的寄存器。为了进一步提高时序,稍后在流程中使用
phys_opt_design 来复制此寄存器。无逻辑的寄存器的输入将更容易复制。
场景防止块 RAM 输出寄存器推断
因为这是确保推断的最简单方法,所以赛灵思建议,存储器和输出寄存器都在单个层级中推断。有两种情况会推断出
RAM 输出寄存器。第一个是在输出上存在额外寄存器时,第二个是当读取地址寄存器在存储器阵列中重新时序时。
只能使用单端口 RAM 。如下图所示:
与这些示例的某些偏离可以防止输出寄存器的推断。
上一篇:scala的隐式转换


下一篇:网络安全—PKI公钥基础设施