关于Block RAM的寄存器输出,我们在《通过RTL改善时序的技巧之Block RAM的输出》中介绍过。如果我们在时序报告中关键路径上看到这样一条信息:
在第一级的C2Q delay(clock to out)就有3.484ns,且site标注的是EBR(EmbeddedBlock RAM)。这种情况我们就要查一下相对应的block RAM的输出寄存器是不是没有打开了。需要注意的是,打开EBR的寄存器输出,你要同时检查数据流的时序关系是否正确。在修改了时序关系后,可以按照我们之前的介绍,在GUI里使能Block RAM的输出寄存器。也可以直接在源代码里做这样的修改:
相信这样的修改一定会对这条路径的delay有很大的帮助。
EBR的寄存器输出和Fanout是行为相似的孪生兄弟。破坏性明显但很容易修复。是我们在所STA中又爱又恨的一对儿活宝。