EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——always block內省略else所代表的電路 (SOC) (Verilog) ( x P4 K# J3 k
7 Q x( j1 |; wAbstract9 ?1 `9 B( ~- l- C
在Verilog中,always block可以用來代表Flip-Flop, Combination Logic與Latch,本文比較在不寫else下,always block所代表的電路。" Q9 s- J P& b$ c+ J# q3 v
& U2 N w m- O; T3 }8 L" k
Introduction( B) J3 Q: v* x+ P A' _; Q- z- y" i7 o
在C語言裡,省略else只是代表不處理而;已但在Verilog裡,省略else所代表的是不同的電路。- ]7 {, j1 o! y/ s' }- r/ G% s7 D
5 D' e. t* b' X: r% W! malways@(a or b or en)
( H! I+ J3 L6 G if (en). O0 l! O4 n5 K: m, y% N* E
c = a & b;
- x n0 ]: N4 D7 g. H) t在combination logic中省略else,由於必須在~en保留原本的值,所以會產生latch。
9 k5 I7 F6 D$ Z& R7 l o
2 W* ]+ N( f0 h# \3 a( N' C
5 i9 v% c0 T' Z: B3 ^- I( G7 R: J- N
" g2 E' B0 x5 [ O5 k: Qalways@(posedge clk)# S# o/ C v5 I
if (en)
* u% X/ X2 `( G$ ]; O: N* Q c <= a & b;
' b' `% C9 w6 j4 A雖然也必須在~en保留原本的值,但由於flip-flop就有記憶的功能,所以不會產生latch。if將產生mux,並將flip-flop的值拉回給mux。* U9 X( Z0 v0 Z. F# k
' ^" V6 Y4 K% C
' M4 O( S0 l2 j! D' P; s( g& ~/ y" P# H( v; b) Q# |2 q& \2 Q
Conclusion
! [7 D" b0 `; q/ ?8 f$ |, L, j在Verilog中,雖然只是小小的差異,但結果卻有天大的差異。
8 q9 A5 r# ]6 r4 g/ I9 Z; A; @% c& v3 {. T; ^8 D
全文完。6 p$ Y1 g9 q, I+ J1 c4 ]
|