DC时序优化问题
时间:10-02
整理:3721RD
点击:
下面是我一个算法综合的部分时序报告 本人最近刚开始接触这方面知识不知道怎么优化时序 我原本想把时序做到1ns 但是后来发现要1.6ns-1.7ns 才行不知道怎么修改 代码 或者脚本才能优化时序 出现时序违例的情况 除了降频还有什么办法 还有如何分析报告呢?我现在只会看时序结果 求各位大大们指教 谢谢
****************************************
Report : timing
-path full
-delay max
-max_paths 1000
****************************************
Startpoint: addrb_br_reg[2]
(rising edge-triggered flip-flop clocked by clk)
Endpoint: brmem/ram0_reg[24][151]
(rising edge-triggered flip-flop clocked by clk)
Path Group: clk
Path Type: max
Point Incr Path
-----------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
addrb_br_reg[2]/CK (DFFHQX8) 0.00 # 0.00 r
addrb_br_reg[2]/Q (DFFHQX8) 0.15 0.15 f
brmem/addra[2] (Br_Mem) 0.00 0.15 f
brmem/U14182/Y (CLKINVX8) 0.04 0.18 r
brmem/U13882/Y (CLKINVX2) 0.06 0.24 f
brmem/U16906/Y (OR3XL) 0.19 0.43 f
brmem/U16897/Y (BUFX4) 0.10 0.53 f
brmem/U14628/Y (INVX12) 0.06 0.59 r
brmem/U17262/Y (BUFX20) 0.10 0.69 r
brmem/U3748/Y (INVX6) 0.07 0.77 f
brmem/U57514/Y (OA22XL) 0.15 0.92 f
brmem/U57511/Y (OAI221XL) 0.09 1.01 r
brmem/U4354/Y (NOR4X1) 0.08 1.08 f
brmem/U4355/Y (OR2X4) 0.12 1.20 f
brmem/U10864/Y (OAI222X2) 0.13 1.33 r
brmem/U10865/Y (OR2X8) 0.15 1.48 r
brmem/U35122/Y (MX2XL) 0.11 1.59 r
brmem/ram0_reg[24][151]/D (DFFQXL) 0.00 1.59 r
data arrival time 1.59
clock clk (rise edge) 1.60 1.60
clock network delay (ideal) 0.00 1.60
brmem/ram0_reg[24][151]/CK (DFFQXL) 0.00 1.60 r
library setup time -0.06 1.54
data required time 1.54
-----------------------------------------------------------
data required time 1.54
data arrival time -1.59
-----------------------------------------------------------
slack (VIOLATED) -0.05
1
****************************************
Report : timing
-path full
-delay max
-max_paths 1000
****************************************
Startpoint: addrb_br_reg[2]
(rising edge-triggered flip-flop clocked by clk)
Endpoint: brmem/ram0_reg[24][151]
(rising edge-triggered flip-flop clocked by clk)
Path Group: clk
Path Type: max
Point Incr Path
-----------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
addrb_br_reg[2]/CK (DFFHQX8) 0.00 # 0.00 r
addrb_br_reg[2]/Q (DFFHQX8) 0.15 0.15 f
brmem/addra[2] (Br_Mem) 0.00 0.15 f
brmem/U14182/Y (CLKINVX8) 0.04 0.18 r
brmem/U13882/Y (CLKINVX2) 0.06 0.24 f
brmem/U16906/Y (OR3XL) 0.19 0.43 f
brmem/U16897/Y (BUFX4) 0.10 0.53 f
brmem/U14628/Y (INVX12) 0.06 0.59 r
brmem/U17262/Y (BUFX20) 0.10 0.69 r
brmem/U3748/Y (INVX6) 0.07 0.77 f
brmem/U57514/Y (OA22XL) 0.15 0.92 f
brmem/U57511/Y (OAI221XL) 0.09 1.01 r
brmem/U4354/Y (NOR4X1) 0.08 1.08 f
brmem/U4355/Y (OR2X4) 0.12 1.20 f
brmem/U10864/Y (OAI222X2) 0.13 1.33 r
brmem/U10865/Y (OR2X8) 0.15 1.48 r
brmem/U35122/Y (MX2XL) 0.11 1.59 r
brmem/ram0_reg[24][151]/D (DFFQXL) 0.00 1.59 r
data arrival time 1.59
clock clk (rise edge) 1.60 1.60
clock network delay (ideal) 0.00 1.60
brmem/ram0_reg[24][151]/CK (DFFQXL) 0.00 1.60 r
library setup time -0.06 1.54
data required time 1.54
-----------------------------------------------------------
data required time 1.54
data arrival time -1.59
-----------------------------------------------------------
slack (VIOLATED) -0.05
1
算法这个东西跟工作频率关系挺大的,也不是一句两句就能说明白的,建议多研究下相关资料
如果是要在当前工艺下,达到设计要求,流水线是种比较常用的方法
这个时序和要求差太多。我觉得单靠工具优化是没辙了,考虑优化算法,或者在中间插入一级流水线。这是条reg2reg的路径,查综合得到的网表文件,可以找到每一行的CELL大概对应到rtl模块中的什么位置。
按照你的要求,可以在brmem/U3748/Y (INVX6)附近插入寄存器,锁一拍。
不过这个只是针对一条路径的,但是找到一个点,其他的点从算法整体结构入手也不难得到。
一家之见,仅供参考。
