2016-09-20 26 views
0

我想在使用TSMC28HPM库的设计编译器中综合火箭核心。时机没有得到满足!火箭核心(riscv)时间不会议

目标频率:500MHz

没有FPU:可达到的频率。 400MHz FPU:可达到的频率。 200MHz

目前我的约束只是时钟定义。 设计是否有任何时间异常?

什么是情景假设/测试,以达到1 GHz的?

  • 注册重定时尚未启用(它将在频推到1GHz的?)

失败路径的总结: 起始点之:RocketTile_1_core/DIV/divisor_reg_ *(上升沿触发触发器时钟通过CLK)端点:RocketTile_1_core/DIV/remainder_reg_ *(上升沿触发的触发器由CLK时钟)(违反)-0.76 起始点之:RocketTile_1_core/DIV/remainder_reg_ *(上升沿触发的触发器由CLK时钟)端点:RocketTile_1_core/div/remainder_reg_ *(由clk钟控的上升沿触发的触发器)(VIOLATED)-0.76 (上升沿触发的触发器由clk提供时钟)端点:RocketTile_1_core/mem_reg_wdata_reg_ *(由clk提供时钟的上升沿触发的触发器)(VIOLATED)-0.60 启动点:RocketTile_1_HellaCache_1/d(上升沿触发器由clk提供时钟)端点:RocketTile_1_core/mem_reg_wdata_reg_ *(由clk提供时钟的上升沿触发触发器)(VIOLATED)-0.60 更多故障路径至mem_reg_wdata_reg_ * 启动点:RocketTile_1_core/mem_ctrl_branch_reg(上升沿触发触发器由CLK时钟)端点:RocketTile_1_dtlb/r_refill_tag_reg_ *(上升沿触发的触发器由CLK时钟)(违反)-0.54 起始点之:uncore_PRCI_1/time_reg_ *(上升沿触发的触发器提供时钟以c LK)端点:uncore_PRCI_1/time_reg_ *(上升沿触发的触发器由CLK时钟)(违反)-0.52 起始点之:uncore_outmemsys/l1tol2net/acqNet/ARB/T_1236_reg_ *(上升沿触发的触发器由CLK时钟)终点:uncore_outmemsys/L2BroadcastHub_1/BufferedBroadcastAcquireTracker_2_1/data_buffer_4_reg_ *(上升沿触发触发器由CLK时钟)(违反)-0.51 大多数违法行为都是从t_1236_reg_ *

+1

你应该为我们提供了大量的详细信息,如关键路径是什么,你打对抗。它在核心吗? uncore? L2缓存?你是否正确执行寄存器重定时? – Chris

回答

0

再定时的FPU是强制性的 - 它描述combinationally并用可参数化的寄存器数填充。

我还建议与其他参数打,看看是否能找到一个更有利的设置(TLB项,BTB条目等)。除去div单元和FPU之类的ISA扩展,因为这些扩展显示在关键路径中。另外请注意,uncore/L2应该放在它自己的时钟域中。

然而,由于火箭队已经达到了> 1.5GHz的与IBM的45纳米全面支持ISA,我很惊讶,你是不是达到了500兆赫。

0

有许多领域需要考虑逻辑综合。 你正在使用DC,你是否在使用平面图的物理流程? 一个适当的物理流程将为您提供更加准确的现实线载模型的建模....否则你可能会合成一些结果不能实现的东西P & R

你没有提到你的时钟树设计....你模拟你的(最终)物理时钟树的效果有什么不确定性,会有有些歪斜!

我不熟悉您使用的tsmc库,是否有各种VT电池,低VT用于快速逻辑而牺牲泄漏电流。 在扩展VT设置中,您会发现随着时钟速度规格的增加,低VT单元的数量会增加。 您可以使用所有常规或高VT电池!这会给你一个较慢的潜在设计速度。

随着时钟速度规格的增加,总是值得关注重载单元以及体积膨胀的领域。 逻辑膨胀(增加面积)是挣扎时序收敛的一个经典标志,并且会导致问题出现在P & R

您是否在插入DFT?请记住,如果您不是,那么DC可能已经在使用扫描单元来实现时序收敛,这会导致DFT问题在您尝试插入扫描时出现问题。

对于一个更明智的答案,将需要一个完整的时序报告显示所有的时间起点和终点之间的细胞

正如已经在其他的答案中提到,数据路径的流水线将是至关重要的,因为可能会是内存时间。

小心总是建议使用非物理综合流程,您应该始终考虑PPA研究。

好运