最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

按位邏輯運算符

2022-12-13 08:21 作者:明德?lián)P易老師  | 我要投稿

本節(jié)的文檔編號:001100000061

需要看對應(yīng)的視頻,請點擊視頻編號:001100000062

1、本節(jié)主要進行組合邏輯的介紹,包括:程序語句(assign語句、always語句),數(shù)字進制(二進制、不定態(tài)、高阻態(tài)),算數(shù)運算符(加、減、乘、除運算符),邏輯運算符(邏輯與、或、非運算符),按位邏輯運算符(單目按位與、或、非運算符,雙目按位與、或、異或運算符),關(guān)系運算符,移位運算符(左移、右移運算符),條件運算符(三目運算符、if語句、case語句、選擇語句等),拼接運算符;
2、ALTERA和VIVADO文檔


5.5?按位邏輯運算符


注:~ ^, ^ ~(二元異或非即同或):(相當于同或門運算)。

在Verilog HDL語言中有下面幾種按位運算符:

~(一元非):(相當于非門運算)

&(二元與):(相當于與門運算)

|(二元或):(相當于或門運算)

^(二元異或):(相當于異或門運算)


這些操作符在輸入操作數(shù)的對應(yīng)位上按位操作,并產(chǎn)生向量結(jié)果。

下圖各真值表種顯示對于不同按位邏輯運算符按位操作的結(jié)果:

5.5.1單目按位與

單目按位與運算符&,運算符后為需要進行邏輯運算的信號,表示對信號進行每位之間相與的操作。

例如

Reg[3:0] A,C;

assign C=&A;

上面代碼等價于?C = A[3] &A[2] & A[1] & A[0];

如果A=4’b0110,C的結(jié)果為0。


5.5.2單目按位或

單目按位或運算符|,運算符后為需要進行邏輯運算的信號,表示對信號進行每位之間相或的操作。例如

Reg[3:0] A,C;

assign C=|A;

上面代碼等價于?C = A[3] | A[2] |A[1] | A[0];

如果A=4’b0110,C的結(jié)果為1。


5.5.3單目按位非

單目按位非運算符~,運算符后為需要進行邏輯運算的信號,表示對信號進行每位取反的操作。例如

Reg[3:0] A,C;

assign C=~A;

上面代碼等價于?C[3] = ~A[3],C[2] = ~A[2],C[1] = ~A[1],C[0] = ~A[0]。

如果A=4’b0110,C的結(jié)果為4’b1001。


5.5.4雙目按位與

雙目按位與運算符&,信號位于運算符的左右兩邊,表示的是對這兩個信號進行對應(yīng)位相與的操作。例如

Reg[3:0] A,B,C;

assign C = A & B;

上面的代碼等價于:C[0] = A[0] &B[0],C[1] = A[1] & B[1],C[2] = A[2] & B[2],C[3] = A[3] &B[3]。

如果A=4’b0110,B=4’b1010,C的結(jié)果為4’b0010。

如果操作數(shù)長度不相等,?長度較小的操作數(shù)在最左側(cè)添0?補位。例如,

reg[1:0] A;

reg[2:0] B;

reg[3:0] C;

assign C = A & B;

上面的代碼等價于:C[0] = A[0] &B[0],C[1] = A[1] & B[1],C[2] = 0& B[2],C[3] = 0 &0。


5.5.5雙目按位或

雙目按位或運算符|,信號位于運算符的左右兩邊,表示的是對這兩個信號進行對應(yīng)位相或的操作。例如

reg[3:0] A,B,C;

assign C = A | B;

上面的代碼等價于:C[0] = A[0] |B[0],C[1] = A[1] | B[1],C[2] = A[2] | B[2],C[3] = A[3] | B[3]。

如果A=4’b0110,B=4’b1010,C的結(jié)果為4’b1110。

如果操作數(shù)長度不相等,?長度較小的操作數(shù)在最左側(cè)添0?補位。例如,

reg[1:0] A;

reg[2:0] B;

reg[3:0] C;

assign C = A | B;

上面的代碼等價于:C[0] = A[0] |B[0],C[1] = A[1] | B[1],C[2] = 0 | B[2],C[3] = 0 | 0。


5.5.6雙目按位異或

雙目按位異或運算符^,信號位于運算符的左右兩邊,表示的是對這兩個信號進行對應(yīng)位相異或的操作。

異或是指0^0=0,1^1=0,0^1=1,即相同為0,不同為1。例如

reg[3:0] A,B,C;

assign C = A ^ B;

上面的代碼等價于:C[0] = A[0] ^B[0],C[1] = A[1] ^ B[1],C[2] = A[2] ^ B[2],C[3] = A[3] ^ B[3]。

如果A=4’b0110,B=4’b1010,C的結(jié)果為4’b1100。

如果操作數(shù)長度不相等,?長度較小的操作數(shù)在最左側(cè)添0?補位。例如,

reg[1:0] A;

reg[2:0] B;

reg[3:0] C;

assign C = A | B;

上面的代碼等價于:C[0] = A[0] ^B[0],C[1] = A[1] ^ B[1],C[2] = 0 ^ B[2],C[3] = 0 ^ 0。

5.5.7經(jīng)驗總結(jié)

  • 邏輯運算符和位運算符的區(qū)別

邏輯運算符包括&&、||、!,位運算符包括&、|、~。那么邏輯運算符和位運算符有什么區(qū)別呢?

將邏輯與“&&”和按位與“&”進行對比可以看出,邏輯與運算符的運算只有邏輯真或邏輯假兩種結(jié)果,

即1或0;而“&”是位運算符,用于兩個多位寬數(shù)據(jù)操作。對于位運算符操作,兩個數(shù)按位進行相與、相或或者非。

上面運行的結(jié)果為:a=1’b1,b=1’b1,c=1’b0,d=4’b000,e=4’b1111,f=4’b1000。

相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=16


按位邏輯運算符的評論 (共 條)

分享到微博請遵守國家法律
侯马市| 定边县| 大石桥市| 湛江市| 新民市| 吉木萨尔县| 崇仁县| 富川| 新民市| 河西区| 全州县| 独山县| 中西区| 临泽县| 阿克| 辛集市| 怀集县| 西宁市| 深泽县| 马龙县| 治多县| 洛浦县| 乐东| 利川市| 兴山县| 新安县| 商河县| 蕲春县| 瑞昌市| 定远县| 五大连池市| 正定县| 溆浦县| 思茅市| 新田县| 太湖县| 冀州市| 萝北县| 武安市| 象山县| 景谷|