TA的每日心情 | 擦汗 2020-1-14 15:59 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如何通过综合工具综合后给出的一个报告修改优化自己的设计?) ^2 v3 Z) E( o$ T; j5 G+ V3 ?
0 k9 ?1 z3 N: W
以下面我写的为例子" a7 g8 R+ U$ m0 G( v
! `2 |8 o( S2 [: a# ~1 x还请高手指点拉
" o6 ` y2 r0 M8 E& ^
; s/ `0 p7 T$ {$ n d原代码:
" s5 E" A8 ]( i8 T========================================================================================================================== 9 G0 t5 H P; S1 w$ z1 I: W% Q
assign Transmite_Task_Sign =~(|NUM_SIGN_r);# H \; J: P6 {$ ~
& J1 z; k' Y% Q8 J6 h+ [' J3 u
% _) h( k9 v- p. ]. f! U
1 ?+ Y2 N4 ~/ A4 ^5 ^( H) J- Oalways @(posedge i_Clock or negedge i_Reset_n)
! N7 \* L. W: y2 G% a- ?5 o if(~i_Reset_n)% I2 j- d9 ?% X2 Z1 W5 L: O
NUM_SIGN_r<=0;, B! g4 j- J* Z; B, T
else begin" N; T. P) y* U
case ({UART_WR_SWITCH,Transmite_OK_reg}). ?9 m5 x" B8 L; k( z
2'b10:NUM_SIGN_r<=NUM_SIGN;
+ ]& k+ Z! _) ~7 [6 Z- [ 2'b01:if(NUM_SIGN_r!==0)NUM_SIGN_r<=NUM_SIGN_r-1;
0 _- M& \/ `: K6 t default:NUM_SIGN_r<=NUM_SIGN_r;4 d- L0 v( ^! ]2 K" m
endcase, v4 [# i! G" i# |" p
end5 P) Z. o7 ]; j
==========================================================================================================================
) j# m0 e7 E* |( T: i/ y
7 \' k8 t7 y4 v; p9 g5 E' a. J* }" v5 _& V
报告:" D) Q* O' f5 z
Worst slack in design: -0.836
# s1 C1 T- ?0 o7 D" q0 C
. S( Z1 d/ ~- w$ A* s Requested Estimated Requested Estimated Clock Clock 8 Z9 F9 V4 I0 H- L. v/ W2 O4 r
Starting Clock Frequency Frequency Period Period Slack Type Group
+ m7 T& C' _$ ]& p3 k* }6 K--------------------------------------------------------------------------------------------------------------------------
, H" O1 Q" {5 e$ q7 z$ sI2C_TEST|i_Clock 263.4 MHz 215.9 MHz 3.796 4.632 -0.836 inferred Autoconstr_clkgroup_0) m( Q) C$ ^" H5 I
==========================================================================================================================5 C) D& z' U$ Y
% D4 O/ q8 `! dStarting Points with Worst Slack
/ {: R. p- j5 ~& R o********************************" t; U. c2 w E9 M1 @. V/ z
& ^0 _4 {/ x2 a/ a1 F/ x0 g' m Starting Arrival
6 O/ O6 ~6 m# v8 `* `- RInstance Reference Type Pin Net Time Slack
) G7 t6 ?$ t ]& Z1 O Clock
0 _# i0 ^% ~: D+ N. |------------------------------------------------------------------------------------------------------------------------------------------------------------------
J$ x5 ?5 U! m, ?8 ?: GUART_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
' }% ]+ i. m( w T NUART_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.8179 d( `5 ~# ^ g$ ?, d5 X. ?
UART_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
- J; m; o1 n2 V3 \; r) [' L- k3 kUART_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.6691 ?, N4 O/ u3 A# ]$ I2 m
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.669
& w. o9 l$ v1 r. _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.5610 H1 F9 d& i# H( q( c4 [
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
% u$ D9 V( J3 k. RUART_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: V1 D' [1 T) F9 \9 \
UART_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.521
; q8 V9 }; U u9 q' 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/ A& c( n m# A2 k0 C% f
==================================================================================================================================================================
1 {9 \1 Q( S3 Y4 y/ F! f
+ L" }/ E, L' R6 }1 K+ U
2 }2 k+ t- D+ g. v. w1 U5 O; oEnding Points with Worst Slack6 z7 k+ M! P& |4 W, i) s1 s' z! p
******************************1 ?# w! y4 g7 p: d) G
! ?- I( \# o. Y1 I$ K
Starting Required + F* |! M( W- r e8 Q3 K! z$ v& x+ c; d
Instance Reference Type Pin Net Time Slack % d' B' D/ Y) Z) T h' m: ~
Clock 2 T0 M2 k# L9 p) K! J7 V3 s! q
----------------------------------------------------------------------------------------------------------------------------------------------------------------8 o; [) f9 n4 [+ ~1 w' v( ? |
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
7 X: G# \$ O. S; H/ ]7 R2 @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' S* B* g6 E( d
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
/ n' W9 P; t w: K5 |3 X/ c# {' s3 Y* kUART_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.836" r1 ]( j, e+ p6 P8 Q5 l! L
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
: c5 w& Y3 c- C; I0 l3 bUART_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.836
( g7 ?' U+ G A; CUART_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.8368 J+ J, L# f9 {. D( M
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.8365 X$ N8 o; ~0 o
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.8361 N0 M. c3 p1 p& M4 F
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" B* `) J5 \) ]" Y' R
================================================================================================================================================================% d. v# Y* \4 Z1 P
, N6 D) i! x6 R, k9 V( ` / [# y# P& l4 @" N$ E$ F
修改后的代码:
) K$ J7 J* r; H( B+ b, Z( C4 j6 a==========================================================================================================================
# `7 G7 C4 B7 F9 \) Y0 X6 Sassign TX_Baudrate_Clock_Stop=Transmite_Task_Finish & StopCHECK_Ack;" g$ I- h t7 H# I4 x
reg d1;
+ N- F7 A! S( K: qreg d2;$ P8 Y# C$ f1 w" E* ~
reg d3,d4,d5,d6,d7,d8,d9,d10;5 q& k# p- Q5 T, B) N
reg Transmite_Task_Sign;8 L! U1 J( }( G; R# r/ t9 ?' U! w
always @(posedge i_Clock or negedge i_Reset_n)
) Q4 h) D3 h' h7 u+ E" c4 R: Q4 dif(~i_Reset_n)begin8 ^2 C* ^; Y" n
d1<=0;) C5 X. H- Z- [1 p: y }2 g
d2<=0;
$ k. x% w* S# M) fd3<=0;
2 i. x, H& m! r( y% a0 t# dd4<=0;
( V/ s' U! q& I/ |4 Id5<=0;- x% s2 |6 [( p& m. S
d6<=0;
. M2 Y! h9 J1 yd7<=0;
3 _5 W, H) Y; U- \2 yd8<=0;
% m6 ^, X9 G' fd9<=0;1 F# X3 ?9 b! \5 e+ [5 y
d10<=0;( f Y- l* k- _
Transmite_Task_Sign<=0;) T1 G" w4 D1 s( a, s/ S! s `
end
5 z7 {* t) H7 t# i: j2 A' `else begin4 Q- F, ~; i: u3 D3 B, T
d1<=|NUM_SIGN_r[1:0];
; A7 B: [$ e- K! @, o- Ad2<=|NUM_SIGN_r[5:3];
4 X' D# z4 {# D1 F. [d3<=|NUM_SIGN_r[8:6];
5 R. l+ }" V8 y3 a; t& @d4<=|NUM_SIGN_r[11:9];
* E6 d* Q) u# d8 D/ S. Sd5<=|NUM_SIGN_r[14:12];! V, d2 e+ u5 o# d
d6<=|NUM_SIGN_r[17:15];+ Z6 y( x3 y5 H& ]- f- n% ? {$ Z
d7<=d1 | d2;
- l! Z9 I2 {' B5 B% H8 W& Pd8<=d3 | d4;" l: a. V, A" [0 ~1 S$ H
d9<=d5 | d6;
! r8 w% M: g' Q( R* }( [' ad10<=d7 | d8 | d9;
8 G; o" t- @% qTransmite_Task_Sign<=~d10;
9 ^2 F1 p! i$ N- kend% U, T9 b! ^& F: q- }" l
==========================================================================================================================
3 x& [' X# E6 e$ T6 g$ F |4 W3 o
报告:
4 n9 d9 m+ J# n; Q5 U2 g" K# |6 e$ F& r8 c. F
Worst slack in design: -0.601
; c9 H7 m5 j: {2 T2 ^6 P. `/ K7 X* M! N0 S6 K1 r1 F: G* s4 O
Requested Estimated Requested Estimated Clock Clock
4 R$ @! H1 ^" [' K! K" r( dStarting Clock Frequency Frequency Period Period Slack Type Group * Z" V) L! d- n8 L% @, r
--------------------------------------------------------------------------------------------------------------------------
) a* N3 k- Y3 ^I2C_TEST|i_Clock 293.8 MHz 249.7 MHz 3.404 4.005 -0.601 inferred Autoconstr_clkgroup_0
0 u: ~# h& [8 F# M! P+ T5 ]5 K==========================================================================================================================
3 n, h! e" g/ u1 p0 Y
; q0 `% W& s& F. A& e1 X S$ Z; F6 T/ c; A2 C
Starting Points with Worst Slack2 n! S, U* q6 J1 J8 ~! a( ?4 d
********************************
, [& v$ n4 \1 x9 |/ e
; e( s5 d7 y6 @! ^( ~- [& X Starting Arrival 6 `5 ^6 c/ i2 g) x& u
Instance Reference Type Pin Net Time Slack # h6 i- f2 m' b; j! O
Clock 8 _1 h8 U ^% C5 E+ C
------------------------------------------------------------------------------------------------------------------------------------------------------------------------ F! r( z' P! ~! J& l2 r% l
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.601( h* n; g6 c2 P9 B1 i$ r; C
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 P9 l# W5 _6 N& y
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.500+ @' k, |( X9 @1 K8 L
UART_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
! O4 e# W- }0 L6 a: dUART_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, _) i- q1 r; y6 u' }& X7 B7 a3 r
UART_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.4538 C7 F2 M* Q* V+ ?: D
UART_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.443
0 H% i% x5 d3 k) p% C7 ~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.4432 ?# Y4 M0 q: B: b7 a8 t$ D
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.4434 o+ v! @0 B1 u$ x
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
- I5 X& [$ |* L========================================================================================================================================================================
) w8 X5 o6 L1 c' Y/ \( a& v3 @6 Y, L+ V) S% a$ S
$ C C' |5 x* O- ]: u
Ending Points with Worst Slack% h7 w$ J8 n% l. l" B7 h
******************************
2 E$ {' V8 I+ m- |
( W" `' V+ V: g. Z0 F% d Starting Required
7 K$ L9 L; Y0 cInstance Reference Type Pin Net Time Slack 8 q% Z/ Q0 S- E+ v7 `& w6 i) x/ e
Clock
0 A6 g0 i _6 `3 T---------------------------------------------------------------------------------------------------------------------------------------------------------+ \, X6 f4 R% [% J. o
UART_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
. S/ J0 V0 M: Y8 N# t3 s5 z8 b4 R9 bUART_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
+ q l) A) O n4 qUART_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$ x6 S6 g* F) r( l% B! Z
UART_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: @% }& }- r q( X2 S" V
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.601
4 M+ L/ ]; S$ S5 l5 k; {# ?) t! QUART_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
9 u8 t3 y+ d9 J9 \UART_Controller.UART_Transmiter.Transmite_Data_CTR.NUM_SIGN_r[6] I2C_TEST|i_Clock cycloneii_lcell_ff ena N_1768_i 2.741 -0.601' J' |) y+ z. Q, c8 m
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
) k$ Z# _* \7 hUART_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
# L/ h% o5 C9 E- ZUART_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
0 P' o, |! A/ a6 {/ ?8 r. B+ H @=========================================================================================================================================================
' W( O( W1 ?( {4 C T
/ p- Y! C. D* u( O8 b |
|