Verilog中 &&和&的区别 Verilog中&与&&的区别

Verilog\u4e2d\u201c&&\u201d\u548c\u201c&\u201d\u7684\u533a\u522b\u662f\u4ec0\u4e48\uff1f

\u4e00\u3001\u610f\u601d\u4e0d\u540c
1\u3001&&\uff1a\u4ee3\u8868\u903b\u8f91\u4e0e\u3002
2\u3001&\uff1a\u4ee3\u8868\u4e0e\u95e8\u8fd0\u7b97(\u6309\u4f4d\u4e0e)\u3002
\u4e8c\u3001\u8ba1\u7b97\u65b9\u5f0f\u4e0d\u540c
1\u3001&&\uff1a5'b10000 && 5'b10001 \u7ed3\u679c\u4e3a1\u3002
2\u3001&\uff1a5'b10000 & b'b10001 \u7ed3\u679c\u4e3a5'b10000\u3002

\u6269\u5c55\u8d44\u6599Verilog\u7684\u8bbe\u8ba1\u521d\u8877\u662f\u6210\u4e3a\u4e00\u79cd\u57fa\u672c\u8bed\u6cd5\u4e0eC\u8bed\u8a00\u76f8\u8fd1\u7684\u786c\u4ef6\u63cf\u8ff0\u8bed\u8a00\uff0cC\u8bed\u8a00\u5728Verilog\u8bbe\u8ba1\u4e4b\u521d\uff0c\u5df2\u7ecf\u5728\u8bb8\u591a\u9886\u57df\u5f97\u5230\u5e7f\u6cdb\u5e94\u7528\uff0cC\u8bed\u8a00\u7684\u8bb8\u591a\u8bed\u8a00\u8981\u7d20\u5df2\u7ecf\u88ab\u8bb8\u591a\u4eba\u4e60\u60ef\u3002
\u4e00\u79cd\u4e0eC\u8bed\u8a00\u76f8\u4f3c\u7684\u786c\u4ef6\u63cf\u8ff0\u8bed\u8a00\uff0c\u53ef\u4ee5\u8ba9\u7535\u8def\u8bbe\u8ba1\u4eba\u5458\u66f4\u5bb9\u6613\u5b66\u4e60\u548c\u63a5\u53d7\u3002\u4e0d\u8fc7\uff0cVerilog\u4e0eC\u8bed\u8a00\u8fd8\u662f\u5b58\u5728\u8bb8\u591a\u5dee\u522b\u3002
\u53e6\u5916\uff0c\u4f5c\u4e3a\u4e00\u79cd\u4e0e\u666e\u901a\u8ba1\u7b97\u673a\u7f16\u7a0b\u8bed\u8a00\u4e0d\u540c\u7684\u786c\u4ef6\u63cf\u8ff0\u8bed\u8a00\uff0c\u5b83\u8fd8\u5177\u6709\u4e00\u4e9b\u72ec\u7279\u7684\u8bed\u8a00\u8981\u7d20\uff0c\u4f8b\u5982\u5411\u91cf\u5f62\u5f0f\u7684\u7ebf\u7f51\u548c\u5bc4\u5b58\u5668\u3001\u8fc7\u7a0b\u4e2d\u7684\u975e\u963b\u585e\u8d4b\u503c\u7b49\u3002\u603b\u7684\u6765\u8bf4\uff0c\u5177\u5907C\u8bed\u8a00\u7684\u8bbe\u8ba1\u4eba\u5458\u5c06\u80fd\u591f\u5f88\u5feb\u638c\u63e1Verilog\u786c\u4ef6\u63cf\u8ff0\u8bed\u8a00\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-Verilog

1\u3001\u4e24\u8005\u6982\u5ff5\u4e0d\u540c
&&\u662f\u903b\u8f91\u4e0e\uff1a\u5373\u5224\u65ad&&\u4e24\u4fa7\u7684\u8868\u8fbe\u5f0f\u662f\u5426\u90fd\u4e3a\u771f\uff0c\u90fd\u4e3a\u771f\u5219\u6b64&&\u8868\u8fbe\u5f0f\u503c\u4e3a\u771f\uff1b
& \u662f\u6309\u4f4d\u4e0e\uff1a\u5373\u5c06&\u4e24\u4fa7\u7684\u6570\u7528\u4e8c\u8fdb\u5236\u5c55\u5f00\uff0c\u6bcf\u4e00\u4f4d\u90fd\u6c42\u4e0e\u8fd0\u7b97(\u4e8c\u8fdb\u5236\u4e0e\u8fd0\u7b97\uff0c\u8ddf\u903b\u8f91\u4e0e\u5dee\u4e0d\u591a)\uff0c\u6700\u540e\u5f97\u5230\u7684\u4e8c\u8fdb\u5236\u6570\u5373\u4e3a\u7ed3\u679c\uff1b
2\u3001\u4e24\u8005\u7ed3\u679c\u4e0d\u540c
\u903b\u8f91\u4e0e\u7ed3\u679c\u53ea\u8bb2\u771f\u548c\u5047\uff0c\u800c\u6309\u4f4d\u4e0e\u5f97\u51fa\u7684\u5374\u662f\u5b9e\u5b9e\u5728\u5728\u7684\u4e00\u4e2a\u6570\u3002
\u4ee5\u4e00\u4e2aVerilog\u6d4b\u8bd5\u7a0b\u5e8f\u4e3a\u4f8b\uff0c\u8bf4\u660e\u4e24\u8005\u4e4b\u95f4\u7684\u533a\u522b\uff1a
module test (CLK, AA, BB, CC, AOUT, BOUT, COUT, DOUT);
input CLK;
input[3:0] AA,BB,CC;
output AOUT,BOUT,COUT,DOUT;
reg AOUT;
reg BOUT;
reg COUT;
reg DOUT;
always @(posedge CLK)//\u68c0\u6d4b\u65f6\u949f\u4e0a\u5347\u6cbf
begin : u1
if (AA && CC && BB)
begin
AOUT<=1'b1 ;
end
else
begin
AOUT<=1'b0 ;
end
end
always @(posedge CLK)//\u68c0\u6d4b\u65f6\u949f\u4e0a\u5347\u6cbf
begin : u2
if (AA & CC & BB)
begin
BOUT<=1'b1 ;
end
else
begin
BOUT<=1'b0 ;
end
end
always @(posedge CLK)//\u68c0\u6d4b\u65f6\u949f\u4e0a\u5347\u6cbf
begin : u3
if ((AA>5) && (CC4))
begin
COUT<=1'b1 ;
end
else
begin
COUT<=1'b0 ;
end
end
always @(posedge CLK)//\u68c0\u6d4b\u65f6\u949f\u4e0a\u5347\u6cbf
begin : u4
if ((AA>5) & (CC4))
begin
DOUT<=1'b1 ;
end
else
begin
DOUT<=1'b0 ;
end
end
endmodule
\u4e0a\u9762\u4e09\u4e2aalways @()\u4e2d\u5206\u522b\u7528\u5230\u5982\u4e0b\u4e09\u79cdif\u5224\u65ad\u8868\u8fbe\u5f0f
(AA && CC && BB)
(AA & CC & BB)
((AA>5) && (CC4))
((AA>5) & (CC4))


\u6269\u5c55\u8d44\u6599\uff1a
\u5bf9\u8fd9\u56db\u6761\u8868\u8fbe\u5f0f\u8fdb\u884c\u903b\u8f91\u5206\u6790 \uff1a
1\u3001(AA && CC && BB)
\u903b\u8f91\u5206\u6790\uff1a
\u5f53AA\u3001BB\u3001CC\u90fd\u4e3a\u975e0\u6570\u65f6\uff0c\u8868\u8fbe\u5f0f\u4e3a\u201c1\u201d\u3002
\u600e\u4e48\u5224\u65adAA\u3001BB\u3001CC\u4e3a\u975e\u201c0\u201d\uff0c\u5148\u5206\u6790\u4e00\u4e0b\u4e3a\u201c0\u201d\u7684\u60c5\u51b5\u3002
\u5f53AA\u4e3a0\u7684\u65f6\u5019\uff0cAA\u7b49\u4e8e4'b0\uff0c\u5373\u6bcf\u4f4d\u90fd\u4e3a0\uff0c\u5373\u53ea\u9700AA\u76844\u4f4d\u77e2\u91cf\u4e4b\u95f4\u505a\u4e00\u4e0b\u201c\u903b\u8f91\u6216\u201d\u8fd0\u7b97\uff0cAA[3] || AA[2] || AA[1] || AA[0]\uff0c\u4e5f\u53ef\u5199\u6210(|AA)\uff1b
\u5f534\u4f4d\u77e2\u91cf\u4e2d\u53ea\u9700\u6709\u4e00\u4f4d\u4e0d\u4e3a0\uff0c\u90a3\u4e48AA\u5c31\u5fc5\u7136\u4e0d\u4e3a\u201c0\u201d\u3002
\u6574\u4e2a\u5b9e\u73b0\u8fc7\u7a0b\u5c31\u662f\uff0c\u5148AA\u3001BB\u3001CC\u5404\u81ea\u672c\u8eab\u7684\u5404\u4f4d\u4e4b\u95f4\u505a\u201c\u903b\u8f91\u6216\u201d\u8fd0\u7b97\uff0c\u8fd0\u7b97\u7684\u7ed3\u679c\u4e4b\u95f4\u505a\u201c\u903b\u8f91\u4e0e\u201d\u8fd0\u7b97\u3002
2\u3001(AA & CC & BB)
\u903b\u8f91\u5206\u6790\uff1a
\u8868\u8fbe\u5f0f(AA & CC & BB)\u7b49\u6548\u4e3a\uff1a
((AA[3] & BB[3] & CC[3]) || (AA[2] & BB[2] & CC[2]) ||
(AA[1] & BB[1] & CC[1]) || (AA[0] & BB[0] & CC[0]))
\u5373\u53ea\u9700\u8981\u5176\u4e2d\u6709\u4e00\u4e2a\u8868\u8fbe\u5f0f(AA[i] & BB[i] & CC[i]) \u4e0d\u4e3a\u201c0\u201d\uff0c\u5219\u6574\u4e2a\u7ed3\u679c\u5c31\u4e3a\u201c1\u201d \uff0ci\u53d60\u52303\u3002
3\u3001((AA>5) && (CC4))
\u903b\u8f91\u5206\u6790\uff1a
\u8868\u8fbe\u5f0f(AA>5)\u3001(CC4)\u7ed3\u679c\u5747\u4e3a1\u4f4d\u7684\u903b\u8f91\u91cf\uff0c\u4e09\u4e2a\u903b\u8f91\u91cf\u4e4b\u95f4\u505a\u201c\u903b\u8f91\u4e0e\u201d\u3002
4\u3001((AA>5) & (CC4))
\u903b\u8f91\u5206\u6790\uff1a
\u4e09\u4e2a\u4e00\u4f4d\u7684\u903b\u8f91\u91cf\u4e4b\u95f4\u505a\u201c\u903b\u8f91\u4e0e\u201d\u548c\u201c\u4f4d\u4e0e\u201d\u662f\u7b49\u6548\u7684\u3002

前者是逻辑与
后面是与门运算(按位与)

5'b10000 && 5'b10001 结果为1
5'b10000 & b'b10001 结果为5'b10000

扩展阅读:vlog视频 ... ll 和&&的区别 ... 2 x ... 运算符&和&&的区别 ... verilog else if ... &&和 同时使用 ... verilog中&和&&的区别 ... verilog中同或运算 ... c语言ll 和&&的区别 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网