回覆列表
  • 1 # 使用者5299230923514

    在Verilog HDL語言有一個特殊的運算子:位拼接運算子{},用這個運算子可以把兩個或多個訊號的某些位拼接起來進行運算操作。其使用方法如下:

    https://iknow-pic.cdn.bcebos.com/d043ad4bd11373f07b57b341a80f4bfbfaed0480

    即把某些倍號的某些位詳細地列出來,中間用逗號分開,最後用大括號括起來表示一個整體訊號,例如:

    https://iknow-pic.cdn.bcebos.com/c83d70cf3bc79f3d34f038eeb6a1cd11738b29df

    也可以寫成為:

    https://iknow-pic.cdn.bcebos.com/bba1cd11728b47106b3e2112cfcec3fdfd0323df

    在位拼接表示式中不允許存在沒有指明位數的訊號。這是因為在計算拼接訊號的位寬的大小時必需知道其中每個訊號的位寬。

    位拼接也可以用重複法來簡化表示式,如下所示:

    https://iknow-pic.cdn.bcebos.com/43a7d933c895d1435b1e38fd7ff082025baf0780

    位拼接還可以用巢狀的方式來表達,如下所示:

    https://iknow-pic.cdn.bcebos.com/0e2442a7d933c895241644a5dd1373f083020080

    【拓展資料】

    Verilog HDL的語言的運算子的範圍很廣,按照其功能大概可以分為以下幾類:

    (1)算術運算子 +,-,*,/,%

    (2)賦值運算子 =,

    (3)關係運算符> ,=,

    (4)邏輯運算子 &&, ||, !

    (5)條件運算子 ?:

    (6)位運算子 ~, | , ^ ,& ,^~

    (7)移位運算子 >

    (8)拼接運算子 {}

    (9)其他。

    1)基本的算術運算子:加減乘都比較簡單這裡不再記錄。

    在進行整數的除法運算時,結果要略去小數部分,只取整數部分;而進行取模運算時(%,亦稱作求餘運算子)結果的符號位採用模運算子中第一個運算元的符號。

    -10%3 結果 -1 11%-3 結果為2

    注意:在進行算術運算時,如果某一個運算元有不確定的值x,則整個結果也為不確定值x。

    2)位運算子:

    按位取反~ 、按位與 & 、按位或 | 、按位異或 ^ 、按位同或 ^~

    在不同長度的資料進行位運算時,系統會自動的將兩個數右端對齊,位數少的運算元會在相應的高位補0,一時的兩個運算元按位進行操作。

    3)邏輯運算子:

    邏輯與 &&、邏輯或 ||、邏輯非 !

    其中&&和||是雙目運算子,其優先級別低於關係運算符,而 !高於算術運算子。

    4)關係運算符

    、 = 如果關係運算是假的,則返回值是0,如果宣告的關係是真的,則返回值是1。 關係運算符的優先級別低於算數運算子。

    如: a

  • 中秋節和大豐收的關聯?
  • a在c語言中是什麼意思?