# wire與reg的差異?
###### tags: `verilog`
> 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。
所以reg跟wire單純只是語法上的不同
wire搭配assign reg搭配always
reg也不一定會產生register 只有在相對應的電路才會產生(循序邏輯)
你把組合邏輯用always陳述句描述
reg關鍵字產生出來的還是單純的接線而不是register
reference:
https://www.cnblogs.com/oomusou/archive/2007/10/10/919339.html