always block內省略else所代表的電路 (SOC) (Verilog)

描述

Abstract
在Verilog中,always block可以用來代表Flip-Flop, Combination Logic與Latch,本文比較在不寫else下,always block所代表的電路。

Introduction
在C語言裡,省略else只是代表不處理而;已但在Verilog裡,省略else所代表的是不同的電路。

always@(a or b or en)
 if (en)
   c = a & b;
在combination logic中省略else,由於必須在~en保留原本的值,所以會產生latch。

FPGA

always@(posedge clk)
 if (en)
   c <= a & b;
雖然也必須在~en保留原本的值,但由於flip-flop就有記憶的功能,所以不會產生latch。if將產生mux,並將flip-flop的值拉回給mux。

FPGA


Conclusion
在Verilog中,雖然只是小小的差異,但結果卻有天大的差異。

全文完。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分