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