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