TA的每日心情 | 擦汗 2020-1-14 15:59 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如何通过综合工具综合后给出的一个报告修改优化自己的设计?* e/ b ?; |' v$ n
( X3 c0 \# F$ @+ v2 A! v* j- F4 x
以下面我写的为例子
2 x+ m* P* }; v& f
9 e, K9 j ^5 T9 Z7 Y还请高手指点拉
/ ^& y ~( @) m& k4 z' y. K. u& W- [+ U, |0 z) Q- W6 p) X
原代码:
- K7 f! [0 h8 G========================================================================================================================== + J( V( p, [$ f5 i- k
assign Transmite_Task_Sign =~(|NUM_SIGN_r);
9 m# a/ j6 z& W. s! m3 D$ l) N8 _" I" k* y+ u! m* d2 x
' J6 X# Q( |# ?% f
$ }( _7 q' Z' ~. B- J% T9 z
always @(posedge i_Clock or negedge i_Reset_n)2 v. h* e0 g+ n* \0 }% i
if(~i_Reset_n)5 q, F# N0 V( P% r/ r8 ]
NUM_SIGN_r<=0;
a/ M1 w. ]) g6 ~9 B; U7 | else begin
6 f( l3 ]4 q6 P% s: P0 C" e case ({UART_WR_SWITCH,Transmite_OK_reg})
1 j9 O8 K# u4 |' K 2'b10:NUM_SIGN_r<=NUM_SIGN;
; H+ }2 N5 r. P0 R# W( n% y 2'b01:if(NUM_SIGN_r!==0)NUM_SIGN_r<=NUM_SIGN_r-1;6 ~" M) I0 y! [: l& v6 W' V
default:NUM_SIGN_r<=NUM_SIGN_r;
/ h+ e0 j+ r& y9 g1 Z; L/ V endcase% A1 G* U b- `7 `1 t+ o4 r6 y1 ]
end9 r0 L. D" z$ G9 {
==========================================================================================================================8 b6 c0 F) n* e3 L
* m* q; l1 s0 a! ~& O$ R
1 j" @6 V0 u1 K. y) M报告:
, A: x/ H( x K+ F9 r' pWorst slack in design: -0.836! t! s: u" {9 p: H! b
2 y- `* @3 r* u* B9 U/ G. K5 c Requested Estimated Requested Estimated Clock Clock
i+ P+ C0 c" b9 h% \Starting Clock Frequency Frequency Period Period Slack Type Group
) Q+ b x" J0 T* t- ]. A5 Y--------------------------------------------------------------------------------------------------------------------------
" s, l- n4 P& q5 Z3 h, {I2C_TEST|i_Clock 263.4 MHz 215.9 MHz 3.796 4.632 -0.836 inferred Autoconstr_clkgroup_0: b! y# ^9 a1 B
==========================================================================================================================8 |5 w& N% s& Q7 c5 m* b1 G6 j
" b$ e" ?, o B; W8 Z
Starting Points with Worst Slack( T: q- O6 B" ^7 \. b. w
********************************# Z. N {3 {. G* @% o3 U4 Q' r
2 m1 C t. L1 b+ ` Starting Arrival
0 f9 S( B" h4 t j2 i2 W7 `. y, W1 |Instance Reference Type Pin Net Time Slack
3 n! H* e4 |. Y( c( O: F' c! J Clock
5 t8 w! ^. u, _& u$ s------------------------------------------------------------------------------------------------------------------------------------------------------------------
7 X0 C" c5 B2 N4 JUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[0] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[0] 0.255 -0.836% g" v% d7 N/ v, S$ q& _+ @
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[1] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[1] 0.255 -0.817
: R$ x3 m/ N" I3 ?3 Q) l9 w- |, i: JUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[4] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[4] 0.255 -0.688
; H4 w( V3 M# ]2 x; c6 l) Z& B$ z! M$ RUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[5] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[5] 0.255 -0.669! l, |- q" p a( m+ R
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[16] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[16] 0.255 -0.6696 c4 x. c! F' r6 ^
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[8] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[8] 0.255 -0.5615 R& J i: \7 ~, }2 A. V4 j( Y
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[9] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[9] 0.255 -0.542 N, B. [1 s3 u) \. n+ d9 U
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[17] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[17] 0.255 -0.542
9 W: L$ y4 a) g& t7 m! yUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[2] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[2] 0.255 -0.5219 C0 u; h8 H8 A8 e
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[3] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[3] 0.255 -0.394
: w- @' i& \8 K5 M- v1 y) e6 }4 w1 G==================================================================================================================================================================
, @7 C9 S6 O2 I; M4 A8 `& a3 R' B; V1 k% `3 l
, m, V, L' z ~6 ]8 _
Ending Points with Worst Slack
7 H" w# ~& k# F" ?# \******************************. m3 A' {! P6 ]6 v B
( b' M; F7 x* _5 W! G) Q) i8 Q* O
Starting Required
3 w( T" s8 }) [3 q6 PInstance Reference Type Pin Net Time Slack
( G( r: [0 `; \8 V Clock , F) o6 D P$ U4 j. r+ {# Y
----------------------------------------------------------------------------------------------------------------------------------------------------------------7 n% O% i$ k3 b* x- |
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[0] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.836- ] @. _& r6 ~* c& D
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[1] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.836
; p$ Y+ j; N) t' U" ^UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[2] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.836
$ `1 K9 m- r' A7 d9 ]4 i% @! ?UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[3] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.8365 h2 t' I* S* t/ O
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[4] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.836
1 v# R0 m( b/ a! ?. e2 |UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[5] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.8366 x7 E' g1 A9 B1 l
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[6] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.8364 R8 i1 J5 l# M9 r# T
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[7] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.836! H: w" B9 z$ I3 v2 z* l9 V. R: x
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[8] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.836. r5 V5 I; v- r; f, I) Y: T
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[9] I2C_TEST|i_Clock cycloneii_lcell_ff ena NUM_SIGN_rlde_0 3.133 -0.836+ [9 }2 d. K8 }3 v5 L/ L3 f
================================================================================================================================================================
5 ?4 }' B" O" I0 V; m
& h4 @# k( o6 m* l 6 c4 M. j) X; j, r) q c: H5 }! L
修改后的代码:
. e: z2 p& }8 J9 Q9 E==========================================================================================================================
$ E1 V- D0 l$ U8 v2 @0 oassign TX_Baudrate_Clock_Stop=Transmite_Task_Finish & StopCHECK_Ack;
' q5 d. ?- q- f5 ?2 _! ~3 N' A reg d1;
$ z- c, y2 @, T8 {6 nreg d2;
: z: I& z) O) q1 |3 S" W! e3 greg d3,d4,d5,d6,d7,d8,d9,d10;
/ J& q3 K4 F" ^reg Transmite_Task_Sign;
: r, Z9 T' N& L0 k! zalways @(posedge i_Clock or negedge i_Reset_n)& u6 P* {: a, g1 s" _* k
if(~i_Reset_n)begin
9 S5 N% C) m* U, r2 G4 kd1<=0;- H. s( n9 v9 h( r0 N
d2<=0;
" r5 e% `) y5 L* U2 od3<=0;
1 D) ? b/ g4 b" td4<=0;7 [' x2 f. t' W
d5<=0;
2 \9 ?( `: Z d ]d6<=0; + q$ ]5 {/ z( A* `$ {5 ?
d7<=0;
. v# z- ^# S. N; h# id8<=0;
6 g9 @2 w( O6 ^: Td9<=0;
' Y6 E3 a, B- m% a( q+ jd10<=0;
0 Y5 I( Q/ n, b3 [' r" RTransmite_Task_Sign<=0;# {: {# E9 F! n+ _/ F' e
end
$ W+ l2 U) y5 Lelse begin
& }2 z* r) O! M! m8 m! f" T; Vd1<=|NUM_SIGN_r[1:0];, y7 m$ I& u; _. |3 h3 z: N
d2<=|NUM_SIGN_r[5:3];
4 n7 k& A( j) A& l% sd3<=|NUM_SIGN_r[8:6];! J3 L" J& g; N K
d4<=|NUM_SIGN_r[11:9];- X+ C( k2 W h
d5<=|NUM_SIGN_r[14:12];
; F* C0 ~- ~9 y5 U) Od6<=|NUM_SIGN_r[17:15];
) R" ^; b$ q# S3 h, qd7<=d1 | d2; ' r: D( f2 s/ G" _
d8<=d3 | d4;
; c9 x& @8 T2 I% q5 |& A& w3 P1 w. od9<=d5 | d6; : R9 K) k3 I, C$ k; F3 t
d10<=d7 | d8 | d9;
& }0 _2 y$ k- U0 P0 w8 jTransmite_Task_Sign<=~d10;
/ D- \* I( J. z: ?/ `0 u* N) Tend
9 ^# V$ K& K: p# D& j==========================================================================================================================( M0 G+ V& y. T0 f
1 O; C4 |) r# N报告:
' \9 [% C5 }" o9 I- ]( P" T5 H0 V b6 j/ ?6 ~0 z
Worst slack in design: -0.601
: v9 \% T& v0 l$ C
1 A8 @1 P% p: i! |2 p Requested Estimated Requested Estimated Clock Clock 2 @) `7 G- K+ W8 P* c
Starting Clock Frequency Frequency Period Period Slack Type Group 3 S& l" @4 [: ^7 n3 G& X, O
--------------------------------------------------------------------------------------------------------------------------- R# o! \/ E& U
I2C_TEST|i_Clock 293.8 MHz 249.7 MHz 3.404 4.005 -0.601 inferred Autoconstr_clkgroup_0
; u6 a; |' q7 ~+ y8 T==========================================================================================================================5 [! A9 f+ k b2 b
- x$ R0 S6 ~ {7 P- |3 ]4 c4 P Z& M6 b
Starting Points with Worst Slack9 m4 p- e* E7 h9 b
********************************
6 L) E# ]/ l0 N1 ~1 ?+ ?( e2 [4 ~' w+ E# E" D: f
Starting Arrival
8 G7 s7 ?- S( P1 `( A1 W6 m1 vInstance Reference Type Pin Net Time Slack 5 S( k* q/ k1 D' w+ W
Clock ( M7 Z5 G9 A; [, g! c W
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/ L7 l$ L6 H$ S" iUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[8] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[8] 0.255 -0.6016 }4 t: e4 K, D' `; o$ R$ `
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[11] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[11] 0.255 -0.582
9 z% ~+ i0 n* C' W! D: _% ^7 B8 Z; SUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[1] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[1] 0.255 -0.500
$ |( c* F6 Q0 P4 B" rUART_Controller.Baudrate_Clock_Generator.RX_Clock_Div_Cnt[14] I2C_TEST|i_Clock cycloneii_lcell_ff regout RX_Clock_Div_Cnt[14] 0.255 -0.462
% U( G2 ~4 q$ d% P2 D7 Q. yUART_Controller.Baudrate_Clock_Generator.TX_Clock_Div_Cnt[14] I2C_TEST|i_Clock cycloneii_lcell_ff regout TX_Clock_Div_Cnt[14] 0.255 -0.462
% f# Z1 @' R+ L1 UUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[6] I2C_TEST|i_Clock cycloneii_lcell_ff regout NUM_SIGN_r[6] 0.255 -0.453
; o- `( T( h6 E8 W( e8 LUART_Controller.Baudrate_Clock_Generator.RX_Clock_Div_Cnt[15] I2C_TEST|i_Clock cycloneii_lcell_ff regout RX_Clock_Div_Cnt[15] 0.255 -0.4439 D& p6 A3 D8 J* L6 T* U* B
UART_Controller.Baudrate_Clock_Generator.RX_Clock_Div_Cnt_i[6] I2C_TEST|i_Clock cycloneii_lcell_ff regout RX_Clock_Div_Cnt_i_6 0.255 -0.443
; S, c# _! I& X! \- v) C$ ]UART_Controller.Baudrate_Clock_Generator.TX_Clock_Div_Cnt[15] I2C_TEST|i_Clock cycloneii_lcell_ff regout TX_Clock_Div_Cnt[15] 0.255 -0.4435 a, h+ h G% U" q6 e& M: J
UART_Controller.Baudrate_Clock_Generator.TX_Clock_Div_Cnt_i[6] I2C_TEST|i_Clock cycloneii_lcell_ff regout TX_Clock_Div_Cnt_i_6 0.255 -0.443
4 |! M) J4 A3 C5 A8 S) s========================================================================================================================================================================
1 x9 f W( k; H2 v$ M2 s3 k
5 a3 Q7 `& h& e) }/ {2 t4 o& _" y* T( Z6 ~% G. h/ C& R# T
Ending Points with Worst Slack' l2 b/ @+ T( M. E
******************************, J8 p' u& Z( L, ^' p/ z, q: t- ]
: U, T& }: g, B; v Y- c
Starting Required
* N' N, B3 x* _: eInstance Reference Type Pin Net Time Slack 2 t% ?! D8 \, [/ a |
Clock + H6 y/ |3 N5 A/ D
---------------------------------------------------------------------------------------------------------------------------------------------------------
2 U. I6 b# V9 m& Q1 X7 N( Z8 N1 |' ZUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[0] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601* B4 g- l" J) i' m$ s/ r: c! ]
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[1] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601$ ]2 w6 p- B6 V* t
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[2] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601
0 V) }6 Y( t6 k1 h' BUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[3] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601( U O1 H1 s$ m4 s! r0 O9 u( O8 W
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[4] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.6011 T$ g! H' X( v/ n- k8 Z
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[5] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601
3 }* p% C/ J7 pUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[6] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.6017 ?) ^6 X' E. |6 F$ g! j. A
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[7] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601& y0 S# y j- b6 r$ A% }$ ?
UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[8] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601
. T- {' V N7 n0 L$ jUART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[9] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601+ K- K! @& V$ E0 Q4 z* {2 M; @
=========================================================================================================================================================, r! m0 q- a+ X$ D
0 R. ~7 K1 q1 | |& w
|
|