|
input [12:00] pac_leng_f; // pac_leng latch4 G+ s8 E. e# |' E& d( H
assign less_than_col_window = (spd1g) ? (pac_leng_f < 13'd552) : (pac_leng_f < 13'd104);
# F) {6 }0 A0 D3 Q+ m% G3 |/ K2 r+ G1 v, g9 Y, ~! |
可以改寫成
$ ~% H+ _( ?8 \& i8 ~! H1 Uassign less_than_col_window = (spd1g) ? ((pac_leng_f[12:10]==3'b000) & ( {pac_leng_f[9], pac_leng_f[5] , pac_leng_f[3] } != 3'b111 )) :
8 J) J; A6 ~5 m% s e- p9 t: H ((pac_leng_f[12:07]==6'h00) & ( {pac_leng_f[6], pac_leng_f[5] , pac_leng_f[3] } != 3'b111 ))
+ S0 `( c) a; U) B, W. d& T) t8 S. Q1 [* E3 `
// 000 1000101000 = 13'd552
! K2 I; @$ G4 o1 Q ^, K f// 000000 1101000 = 13'd1042 Y( C' g6 A8 J6 O7 N9 g; q
' k& q) {6 G4 z; O# q: R# i一般人的寫法會使用 "<" 符號, Synthesize 時會形成下面這種多bits的比較器# p" M, f. M% o1 ]% O
這種寫法所 Synthesize 出來的 Combinational circuit 其 Propagation gate delay 會很長.
0 h; w" ^! P' f4 H% i改用新的寫法會變成 2 個 3bits 的比較器同時並行,各得到二個值後,最後再用一個 AND Gate 做輸出.* j O: h* p M! t: }+ {: F
Propagation gate delay 會短很多. |
|