1. 移位運算符 移位運算符是雙目運算符,將運算符左邊的操作數左移或右移運算符右邊的操作數指定的位數,用0來(lái)補充空閑位。如果右邊操作數的值為X或Z,則移位結果為未知數X。 Verilog HDL中有兩種移位運算符:<<(左邏輯移)和>>(右邏輯移)。 例程1 仿真圖 從仿真圖,可以看出,每次a都向左邊移動(dòng)移位,后面補充0,直到把邏輯1溢出,后面就一直為0了。每次b都向右邊移動(dòng)移位,前面補充0,直到把邏輯1溢出,就一直為0了。 總結:移位運算符的使用時(shí),左移可以看成是乘以2,右移可以看成是除以2。所以移位運算符用在計算中,代替乘法和除法。尤其是除法,使用移位的方式,可以節省資源。2. 位拼運算符 位拼運算符是將多個(gè)小的表達式合并形成一個(gè)大的表達式,用符號{}來(lái)實(shí)現多個(gè)表達式的連接運算,各個(gè)表達式之間用“,”隔開(kāi)。 例程2 仿真圖 從圖中可以看出,輸出從左向右,每次0變換一個(gè)位置,到最右邊時(shí)就會(huì )放返回最左邊繼續循環(huán),使用拼位的運算符,就會(huì )使程序編寫(xiě)起來(lái)變得簡(jiǎn)單了。 代碼的意思就是,每次把最低位放到最高位,讓前三位放到后面,這樣邏輯“1”就實(shí)現了移位,形成了循環(huán)。 |