2012年10月22日 星期一

wire與reg的差異?

源自於 http://www.cnblogs.com/oomusou/archive/2007/10/10/919339.html

Abstract
Verilog初學者最常見的問題:『什麼時候該用wire?什麼時候又該用reg?』
Introduction
大體上來說,wire和reg都類似於C/C++的變數,但若此變數要放在begin...end內,該變數就須使用reg,在begin...end之外,則使用wire。

另外使用wire時,須搭配assign;reg則不必。

input,ouput,inout預設值都是wire。
若wire和reg用錯地方,compiler都會提醒,所以不必太擔心。

一個很重要的觀念,在Verilog中使用reg,並不表示合成後就是暫存器(register)。若在組合電路中使用reg,合成後仍只是net,唯有在循序電路中使用reg,合成後才會以flip-flop形式表示成register。


Reference
[1] 數位系統實習 Quartus II,陸自強, 儒林出版社, 2007
[2] Verilog數位電路設計範例寶典(基礎篇), 鄭羽伸, 儒林出版社, 2006

沒有留言:

張貼留言

習題解答 (5/6)

  第五章 習題解答 一、 錯誤偵測技術 1. 何謂循環冗餘檢查法 (CRC)? 是一種根據傳輸資料產生簡短固定位數校驗碼的演算法。發送端將資料除以一個特定的多項式,得到的「餘數」即為 CRC 碼並隨資料發送;接收端以同樣多項式除之,若餘數為 0 則代表資料傳輸正確。 2. 何...