|
input [12:00] pac_leng_f; // pac_leng latch
/ \: \" R% v( h. X, U* N$ z5 p: U/ M- Lassign less_than_col_window = (spd1g) ? (pac_leng_f < 13'd552) : (pac_leng_f < 13'd104); * W7 T/ N, @; d, f" }! S. S
; ^" F Z$ V( V! s% B! y可以改寫成
' T% _8 l0 a" P) g. e8 t5 \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 )) :
; O1 V3 l% [8 z% @7 F0 f) n ((pac_leng_f[12:07]==6'h00) & ( {pac_leng_f[6], pac_leng_f[5] , pac_leng_f[3] } != 3'b111 ))
# ^0 i+ m6 z! K7 Y3 J3 U; H& {/ @) F) ^; a# T
// 000 1000101000 = 13'd552
+ a1 b! Q. E! l4 z' z3 \// 000000 1101000 = 13'd104
' L$ Y& N2 N: u) k* B% U5 c& e2 N% Z9 S3 N- {
一般人的寫法會使用 "<" 符號, Synthesize 時會形成下面這種多bits的比較器
0 z: G3 P# @4 D1 i7 [這種寫法所 Synthesize 出來的 Combinational circuit 其 Propagation gate delay 會很長.
. o/ E& e! ]; R8 q改用新的寫法會變成 2 個 3bits 的比較器同時並行,各得到二個值後,最後再用一個 AND Gate 做輸出.
( `* l: V. [+ M, W0 |% {* k& }+ SPropagation gate delay 會短很多. |
|