在Verilog HDL語言有一個特殊的運算符:位拼接運算符{},用這個運算符可以把兩個或多個信號的某些位拼接起來進行運算操作。
基本介紹
- 中文名:拼接符
- 領域:Verilog HDL語言
簡介
Verilog運算符
- 按位
- 按位取反(~):1個多位運算元按位取反。例如:a=4'b1011,則~a的結果為4'b0100
- 按位與(&):2個多位運算元按位進行與運算,各位的結果按順序組成一個新的多位數。例如:a=2'b10,b=2'b11,則a&b的結果為2'b10
- 按位或(|):2個多位運算元按位進行或運算,各位的結果按順序組成一個新的多位數。例如:a=2'b10,b=2'b11,則a|b的結果為2'b11
- 按位異或(^):2個多位運算元按位進行異或運算,各位的結果按順序組成一個新的多位數。例如:a=2'b10,b=2'b11,則a^b的結果為2'b01
- 按位同或(~^或^~):2個多位運算元按位進行同或運算,各位的結果按順序組成一個新的多位數。例如:a=2'b10,b=2'b11,則a~^b的結果為2'b10
- 邏輯取反(!):對1個運算元進行邏輯取反,如果這個運算元為0,則結果為1;如果這個運算元不為0,則結果為0
- 邏輯與(&&):對2個運算元進行邏輯與,如果二者同為0或同不為0,則結果為1,否則為0。例如:3 && 0的結果為0。
- 邏輯或(||):對2個運算元進行邏輯或,如果二者其中至少有一個不為0,則結果為1,否則為0。例如:3||0的結果為1。
- 縮減與(&):對一個多位運算元進行縮減與操作,先將它最高位與次高位進行與操作,其結果再與第二次高位進行與操作,直到最低位。例如:&(4'b1011)的結果為0
- 縮減與非(~&):對一個多位運算元進行縮減與非操作,先將它最高位與次高位進行與非操作,其結果再與第二次高位進行與非操作,直到最低位。例如:~&(4'b1011)的結果為1
- 縮減或(|):對一個多位運算元進行縮減或操作,先將它最高位與次高位進行或操作,其結果再與第二次高位進行或操作,直到最低位。例如:|(4'b1011)的結果為1
- 縮減或非(~|):對一個多位運算元進行縮減或非操作,先將它最高位與次高位進行或非操作,其結果再與第二次高位進行或非操作,直到最低位。例如:~|(4'b1011)的結果為0
- 縮減異或(^):對一個多位運算元進行縮減異或操作,先將它最高位與次高位進行異或操作,其結果再與第二次高位進行異或操作,直到最低位。例如:^(4'b1011)的結果為1
- 縮減同或(~^or^~):對一個多位運算元進行縮減同或操作,先將它最高位與次高位進行同或操作,其結果再與第二次高位進行同或操作,直到最低位。例如:~^(4'b1011)的結果為0
- 加(+):2個運算元相加
- 減(-):2個運算元相減或取1個運算元的負數(二進制補碼表示)
- 乘(*):2個運算元相乘
- 除(/):2個運算元相除
- 求冪(**)}}:2個運算元求冪,前一個運算元為底數,後一個運算元為指數
- 大於(>):比較2個運算元,如果前者大於後者,結果為真
- 小於(<):比較2個運算元,如果前者小於後者,結果為真
- 大於或等於(>=):比較2個運算元,如果前者大於或等於後者,結果為真
- 小於或等於(<=):比較2個運算元,如果前者小於或等於後者,結果為真
- 邏輯相等(==):2個運算元比較,如果各位均相等,結果為真。如果其中任何一個運算元中含有x或z,則結果為x
- 邏輯不等(!=):2個運算元比較,如果各位不完全相等,結果為真。如果其中任何一個運算元中含有x或z,則結果為x
- case相等(===):2個運算元比較,如果各位(包括x和z位)均相等,結果為真
- case不等(!==):2個運算元比較,如果各位(包括x和z位)不完全相等,結果為真
- 邏輯右移(>>):1個運算元向右移位,產生的空位用0填充
- 邏輯左移(<<):1個運算元向左移位,產生的空位用0填充
- 算術右移(>>>):1個運算元向右移位。如果是無符號數,則產生的空位用0填充;有符號數則用其符號位填充
- 算術左移(<<<):1個運算元向左移位,產生的空位用0填充