TA的每日心情 | 擦汗 2020-1-14 15:59 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如何通过综合工具综合后给出的一个报告修改优化自己的设计?/ w8 o( [( g5 G a4 J( ? O+ S- r
1 J: r: l1 M0 ?( A1 m+ i
以下面我写的为例子
) N Z' a% F- f) G0 y( ^
5 w$ I+ _& o `还请高手指点拉
( m: t1 N5 t7 B0 S4 ?* t
; h3 S* T$ g4 t! x q; d* O原代码:
6 c/ M; t- h. O: D* g========================================================================================================================== 1 M- F$ E4 B- a
assign Transmite_Task_Sign =~(|NUM_SIGN_r);
/ V# h I8 ?$ Y* P! z' r' a8 {0 B
7 v* e% ?# Z |( o/ @. X
* j+ [& w; n2 Z) V# C0 s1 d/ W3 Y( g3 P$ U2 @6 F5 C
always @(posedge i_Clock or negedge i_Reset_n)6 C- x F2 Y& {* N0 ~' R
if(~i_Reset_n)
* Y* k' d, _5 N. Q NUM_SIGN_r<=0;$ x# n: b7 I3 B2 A
else begin' |8 d/ m5 w7 Y! q3 N, y9 O* f
case ({UART_WR_SWITCH,Transmite_OK_reg})8 {) K1 d6 [( D. H' H( U% T
2'b10:NUM_SIGN_r<=NUM_SIGN;
0 q# F& {8 A! E2 z5 ^ 2'b01:if(NUM_SIGN_r!==0)NUM_SIGN_r<=NUM_SIGN_r-1;
" C2 q, C) R! w9 t9 K# s default:NUM_SIGN_r<=NUM_SIGN_r; u- I' V- W9 M8 f S8 L
endcase
8 y C' h9 s$ x$ T& \6 W end
. i! V6 }* ^1 H" |==========================================================================================================================
8 C& p/ d: G% W7 J: ?
5 t# `$ |/ Y u) p
0 D+ b/ H7 Y1 c6 k报告:. [5 h3 s/ X. l- Y+ U/ x
Worst slack in design: -0.836; A$ B2 A! h5 o+ L
{1 n9 A6 S; C, H" b; S% L Requested Estimated Requested Estimated Clock Clock 6 [5 ^& J6 ^; S2 M
Starting Clock Frequency Frequency Period Period Slack Type Group ) v% s6 z0 X+ n, w
--------------------------------------------------------------------------------------------------------------------------
0 T0 O- v; E2 zI2C_TEST|i_Clock 263.4 MHz 215.9 MHz 3.796 4.632 -0.836 inferred Autoconstr_clkgroup_0
. z/ L/ @: f" s- G4 n+ b==========================================================================================================================& `2 N# z3 _, s( `. P
m) x& v6 n' J- X1 X6 Q+ X9 A
Starting Points with Worst Slack
3 G3 |: S% e% E********************************
4 p4 A4 b& l i7 ]1 q
: ?/ n0 A6 B# ]* ^3 S6 d Starting Arrival
. F+ b: k |5 F) o5 a! K0 U0 AInstance Reference Type Pin Net Time Slack
2 @+ ?" j8 q, t) i$ d0 x, ` Clock
9 V) H' k8 Z# [# _------------------------------------------------------------------------------------------------------------------------------------------------------------------0 |# V5 x! o# I
UART_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
% p8 F1 r4 [7 IUART_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+ z. J3 z- s. g6 w* J2 H: ?
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
1 t9 j( h& o; f: v8 J0 I4 {9 F! ^UART_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
+ ]% B* ^+ p# l) T5 d6 ^' c/ ]# oUART_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.6697 Z" y) P4 S* Q0 R* x/ F
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.561
6 p4 ~6 U2 }* N! `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$ _8 O1 w, l* f0 E. L- T; W
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
& b, n/ n/ ?5 g; L8 G0 d oUART_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& G/ W0 W# W; K0 B7 t. h+ V
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
' S2 l/ l: U: B9 x0 B==================================================================================================================================================================7 I6 Q: ?8 j# f# Q' A; D
/ l5 Y' G. h" |7 v: W j, m( z
& i7 \$ M$ j- [
Ending Points with Worst Slack( \& U, f5 E% P$ y Z1 z: Q
****************************** F( D W( K: u/ b
! M1 m$ y- H0 @% z Starting Required
0 Y! m2 ]7 R3 S! e% P, U2 E& KInstance Reference Type Pin Net Time Slack
6 B( R2 b" }0 _ \! ^8 Y) a3 p1 \! y Clock * @% p2 {! T" k
----------------------------------------------------------------------------------------------------------------------------------------------------------------- Y" L- C6 s% s1 q. r
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.8363 I6 e; H4 ~& _! u$ u2 ^" ^
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% y7 E- A* @# N1 V" K" e) \) v( K
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.8365 l! W# ^3 s. n! h3 t
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.836$ j/ T b& u, D" u8 N9 G9 j2 A
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
5 J) |1 w( S) d0 K0 t3 f3 JUART_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
+ Y* b# z$ z6 K: ]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.836
8 O& E0 ?% ^6 [; ?0 oUART_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
! c# W; P' I3 u1 t2 ~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$ f3 a& h- z3 o9 v+ w7 {4 [
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( Q. g& ]: R8 y8 Y
================================================================================================================================================================, O) ?- E) ^! M! [5 o( h
) `, O k) y, a4 n! J6 P
1 Z1 L4 D+ a! F( n9 C2 {) n" |
修改后的代码:
6 f- ~. T3 P, O. p9 H+ {' X9 p==========================================================================================================================$ {" Q. |. K: |5 [- H; a
assign TX_Baudrate_Clock_Stop=Transmite_Task_Finish & StopCHECK_Ack;
# [) z, s1 s' q' H4 h# f$ `1 U reg d1;* p1 Q0 H6 w+ u( [7 |. K
reg d2;
3 E7 F+ K0 V; u: d. v. Ireg d3,d4,d5,d6,d7,d8,d9,d10;
0 \- I" q. O* a; ~reg Transmite_Task_Sign;; M3 W- T' ]+ s6 J" {
always @(posedge i_Clock or negedge i_Reset_n)
0 j- Y6 f6 T" C- i8 j- G+ Y* `$ a3 qif(~i_Reset_n)begin5 p) O0 d8 [' |( ^ q
d1<=0; s" F+ r. }9 T/ k
d2<=0;9 Y% o2 t4 [* R! M. u
d3<=0; ( F8 ?9 U* o Y5 i' h4 S# m0 B! R
d4<=0;7 I+ L9 ~! j$ t2 q _
d5<=0;
" ?) U8 ~8 t, W. }d6<=0;
. a! |( Y) j6 d0 Z5 u Qd7<=0;+ ~5 Y' I: _# P! }
d8<=0;) m9 e h! @+ M) f" f+ l
d9<=0;% F% _4 g [" H6 O' p4 }, k
d10<=0;
, K* o. P( ~9 F, e& M! wTransmite_Task_Sign<=0;( x* {, q* \2 C: J, [) V, R5 c
end& Z1 V; i/ w- e9 [) S: e
else begin
7 r7 E6 L9 b9 k% H$ `( y, P5 Fd1<=|NUM_SIGN_r[1:0];+ a3 o) ~3 F$ c2 _
d2<=|NUM_SIGN_r[5:3];
7 [5 C# r0 O% o2 Md3<=|NUM_SIGN_r[8:6];4 e1 W5 u, [- |. m2 J$ `( Q/ y
d4<=|NUM_SIGN_r[11:9];/ s4 k' e2 ]7 b6 M
d5<=|NUM_SIGN_r[14:12];- W9 y: G0 n3 t# g
d6<=|NUM_SIGN_r[17:15];
6 M" T; u: q1 w s! W3 w ?d7<=d1 | d2;
' {9 |' {* }- k2 Jd8<=d3 | d4;' |8 H5 V0 @- `
d9<=d5 | d6;
! R! ]: d" N/ `. i8 L9 H& P! td10<=d7 | d8 | d9;/ O! g: Y8 q! r! ?- _1 M. J
Transmite_Task_Sign<=~d10;& F% n* ?" o @7 }& Z/ x! Y
end4 X4 e5 b; ~* O: h ?
==========================================================================================================================* v* ]9 u5 W; P
; Z1 ~% I$ ?" }$ Y" v1 F! K* y
报告:( |$ S0 i( g& w1 \. Q" }& `
+ U8 |& J' l; U' F: t ~Worst slack in design: -0.601
/ M" B+ T0 F0 @) O7 w9 I5 I& R' V, x+ O0 |1 ^* b
Requested Estimated Requested Estimated Clock Clock
% m0 M8 G! |4 ]# a$ o' ~$ RStarting Clock Frequency Frequency Period Period Slack Type Group / }8 {* d1 U% }+ f! a( X: m
--------------------------------------------------------------------------------------------------------------------------8 a; R! d w& h& D2 ^
I2C_TEST|i_Clock 293.8 MHz 249.7 MHz 3.404 4.005 -0.601 inferred Autoconstr_clkgroup_03 C$ [1 Z; q; E) D# T+ ~' G
==========================================================================================================================4 e5 |; ~; w5 w; H8 E4 ^" Q' E
' F& ~" J0 F, { D5 {
$ N, ]3 m' M" K1 ZStarting Points with Worst Slack
9 O, ?7 w& L0 z********************************) x. {5 t L" Q/ g$ C; m
# Z1 \% N1 U( s( {6 I+ { Starting Arrival
/ r3 L5 F6 m3 ~' {& E8 i* l6 l8 H. ]Instance Reference Type Pin Net Time Slack " F- ~8 ~- z1 R, k4 s
Clock
4 ^. C( W0 P: G* G) q4 x------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# _# J0 G7 Q! Q% ]/ pUART_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.6019 M1 o+ S& b9 F) t- q4 x
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.5822 b: y" H9 X4 s( v4 ^6 \
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.5007 X! g, o/ F0 E, J- O8 |
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
- M! V1 c8 U( H' U) c! GUART_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) @# R, p) l3 d' ^5 f
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.453
H* T! L% f4 b# ^* N- \/ t \( n5 hUART_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.4434 S( J0 X/ U4 _1 E4 i1 F, K
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/ F: |! y6 P- ]/ B2 n
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.443% o0 F9 M$ N. K- W# r0 r9 w
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; h" Y- a) }; k# c# |
========================================================================================================================================================================4 Q$ g; X8 ^! M% G' W$ `7 X
& i* Q/ f& c& D, O- S' B
' [3 `* T+ A* C, m" q; q- x9 eEnding Points with Worst Slack
9 J3 k: _9 s1 G4 t- O5 Y E! A******************************2 M& X$ K% N5 X
1 K9 R+ {& p0 ^/ H' v2 A
Starting Required : D: E; `& H6 e5 n0 m" }
Instance Reference Type Pin Net Time Slack 8 T* N3 R6 |/ t& R; l9 z
Clock
1 P1 ?; Q% S6 @6 Y: `: e& h& K. p---------------------------------------------------------------------------------------------------------------------------------------------------------
3 \0 a) e; D/ f4 K/ y( ]0 Y$ P* d: MUART_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% a' u- w" o7 ]% \2 p
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; y" Z5 a% X& |. b; U6 R! v
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
Y, q. b, k2 _% t: @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! H* R3 F3 A% d
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+ p4 }3 s" L4 K4 T
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 p) n8 H2 M' t3 f/ O' Q5 @3 d& u- B
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, |+ a) {# K# a, `; Q- _* i- k, D9 }
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! W* u, s4 I% O
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
! |( i% J, ]( `" w" s/ lUART_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( z7 L, g# ]/ _$ n! F5 V, K7 ]5 `. {
=========================================================================================================================================================
2 v- S' l {' X" W1 u/ [) A* x( Z! A$ |, _
|
|