EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——always block內省略else所代表的電路 (SOC) (Verilog) . S* Q g. Y+ V* I
: r' o. `: J; X
Abstract
( w- ]9 _/ \0 `4 C/ o' U8 c在Verilog中,always block可以用來代表Flip-Flop, Combination Logic與Latch,本文比較在不寫else下,always block所代表的電路。5 N: F+ b! c+ T- X; T/ s
- j, K! L! v8 V
Introduction
' y1 K( h+ ?. J在C語言裡,省略else只是代表不處理而;已但在Verilog裡,省略else所代表的是不同的電路。
! J, K# x2 Q) H0 b3 k: c& k( M% @# s/ s$ k
always@(a or b or en)
& e! \) P5 Q: D6 d9 u3 _/ Y3 g if (en)
2 Q$ f1 Z6 w$ w6 [3 u c = a & b;
5 |' _9 Q5 _0 j9 ^/ h5 n在combination logic中省略else,由於必須在~en保留原本的值,所以會產生latch。8 h9 J% \/ d4 t, m+ g
1 Z9 G$ h! B$ X 0 P. |; d0 ^* O% l' W5 K
5 D- q/ D! J" U* w" U
always@(posedge clk)
! \0 E6 G" d! @1 F0 h8 I7 x1 x7 ? if (en)3 Q/ S% n2 ^3 m
c <= a & b;
- ^+ g. O0 H$ o+ i* B" u1 R雖然也必須在~en保留原本的值,但由於flip-flop就有記憶的功能,所以不會產生latch。if將產生mux,並將flip-flop的值拉回給mux。% ?8 i8 G6 o: C) V; l! u
: F# N V2 p2 j3 L5 @ % A" c$ p# I( j- t$ l/ V
/ Z6 M% E/ B0 z5 jConclusion
" k% x+ ?* o! T4 H/ ]" j在Verilog中,雖然只是小小的差異,但結果卻有天大的差異。6 V0 N! }7 _# |, p
1 H% v) g2 p: ]1 r% y' V4 [
全文完。
1 r- E* V( `2 I6 y |