火箭核心(riscv)时间不符合

时间:2016-09-20 11:38:29

标签: riscv

我正在尝试使用TSMC28HPM库在Design编译器中合成火箭核心。时间没有得到满足!

目标频率:500MHz

没有FPU:可实现的频率。 400MHz的 使用FPU:可实现的频率。 200MHz的

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

为达到1 GHz而假设/测试的场景是什么?

  • 注册重新定时尚未启用(它会将频率推至1GHz吗?)

路径失败摘要:   起始点:RocketTile_1_core / div / divisor_reg_ *(由clk计时的上升沿触发触发器)端点:RocketTile_1_core / div / remainder_reg_ *(由clk计时的上升沿触发触发器)(VIOLATED)-0.76   起始点:RocketTile_1_core / div / remainder_reg_ *(由clk计时的上升沿触发触发器)端点:RocketTile_1_core / div / remainder_reg_ *(由clk计时的上升沿触发触发器)(VIOLATED)-0.76   起始点:RocketTile_1_HellaCache_1 / s2_store_bypass_reg(由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计时的上升沿触发的触发器)(VIOLATED)-0.54   起始点:uncore_PRCI_1 / time_reg_ *(由clk提供时钟的上升沿触发触发器)端点:uncore_PRCI_1 / time_reg_ *(由clk计时的上升沿触发触发器)(VIOLATED)-0.52   起始点:uncore_outmemsys / l1tol2net / acqNet / arb / T_1236_reg_ *(由clk计时的上升沿触发的触发器)端点:uncore_outmemsys / L2BroadcastHub_1 / BufferedBroadcastAcquireTracker_2_1 / data_buffer_4_reg_ *(由clk计时的上升沿触发的触发器)(VIOLATED) - 0.51     大多数违规行为来自t_1236_reg _ *

2 个答案:

答案 0 :(得分:0)

FPU的重新定时是强制性的 - 它是组合描述的,并用可参数化的寄存器填充。

我还建议使用其他参数来查看是否可以找到更有利的设置(TLB条目,BTB条目等)。删除ISA扩展,如div单元和FPU,因为它们出现在您的关键路径中。还要注意,uncore / L2应该放在它自己的时钟域中。

然而,由于Rocket在IBM 45nm上已经达到> 1.5GHz且完全支持ISA,我很惊讶你没有达到500 MHz。

答案 1 :(得分:0)

逻辑综合需要考虑许多方面。 您正在使用DC,您是否正在使用具有平面图的物理流量? 适当的物理流程将为您提供更准确的现实线载模型建模....否则您可能会合成一些最终在P& R无法实现的东西

你没有提及你的时钟树设计......你在模仿你的(最终)物理时钟树的效果有什么不确定性,会有一些偏差!

我不熟悉您正在使用的tsmc库,是否存在各种VT单元,低VT用于快速逻辑以牺牲漏电流。 在扩展VT设置中,您期望看到低VT单元的数量随着时钟速度规格的增加而增加。 您可以使用所有常规或高VT细胞!这会让您的设计速度更慢。

随着时钟速度规格的增加,始终值得关注负载很重的单元,以及随着区域膨胀的架构区域。 逻辑膨胀(增加的面积)是时间收敛困难的经典迹象,并将导致P& R

的问题

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

要获得更明智的答案,需要一份完整的时间报告,显示时间起点和终点之间的所有单元格

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

始终建议谨慎使用非物理综合流程,您应该始终考虑PPA研究。

祝你好运