|
input [12:00] pac_leng_f; // pac_leng latch
, r1 b1 y, Q) U6 Zassign less_than_col_window = (spd1g) ? (pac_leng_f < 13'd552) : (pac_leng_f < 13'd104);
2 I; ^1 D, ?# F) M# n; u) L$ a* f7 g) p# Y; [1 D3 h
可以改寫成 9 w, q% Q/ s5 F2 t7 P
assign 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 )) :6 j2 r1 ]1 J! m* p1 `
((pac_leng_f[12:07]==6'h00) & ( {pac_leng_f[6], pac_leng_f[5] , pac_leng_f[3] } != 3'b111 )), Z; t. v# ]- H
" ]9 A1 K& }8 j; o1 D// 000 1000101000 = 13'd552
& ]" z& f- C) w- d9 v& p! [! q// 000000 1101000 = 13'd104
& F7 j' ]4 b2 a! E A6 B3 X4 k0 D2 F$ m4 o! ^7 S: S
一般人的寫法會使用 "<" 符號, Synthesize 時會形成下面這種多bits的比較器, d* g/ u4 C, h: _& Q1 q2 r" R
這種寫法所 Synthesize 出來的 Combinational circuit 其 Propagation gate delay 會很長.
1 j- F$ [, q& R. s改用新的寫法會變成 2 個 3bits 的比較器同時並行,各得到二個值後,最後再用一個 AND Gate 做輸出.
. e! W$ }. |' ]5 F2 yPropagation gate delay 會短很多. |
|