2016-09-20 67 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研究。

好運