在 Verilog 中,~ 和之间有什么区别?
In Verilog, What is the difference between ~ and?
使用 ~
波浪号和 !
感叹号表示不或反转信号有什么区别。
always @(posedge clock)
begin
z=(!x&!y&Q1);
Q1=(~x&~y|z);
end
如果非阻塞 =
被取消并替换为下面的代码,会有什么不同。
always @(posedge clock)
begin
z<=(!x&!y&Q1);
Q1<=(~x&~y|z);
end
!
合乎逻辑
~
是按位的
换句话说:
!a
表示“a
不是 0”
~a
表示 "invert the bits of a
"
第二个问题:
第一个代码片段是错误的。您不能将非阻塞分配用于顺序逻辑。
如果您需要组合逻辑:
always @(x, y, Q1, z) # or always @(*)
begin
z=(!x&!y&Q1); // here, you have to use blocking assignment as it is combo logic
Q1=(~x&~y|z);
end
使用
~
波浪号和!
感叹号表示不或反转信号有什么区别。always @(posedge clock) begin z=(!x&!y&Q1); Q1=(~x&~y|z); end
如果非阻塞
=
被取消并替换为下面的代码,会有什么不同。always @(posedge clock) begin z<=(!x&!y&Q1); Q1<=(~x&~y|z); end
!
合乎逻辑~
是按位的
换句话说:
!a
表示“a
不是 0”~a
表示 "invert the bits ofa
"
第二个问题:
第一个代码片段是错误的。您不能将非阻塞分配用于顺序逻辑。 如果您需要组合逻辑:
always @(x, y, Q1, z) # or always @(*)
begin
z=(!x&!y&Q1); // here, you have to use blocking assignment as it is combo logic
Q1=(~x&~y|z);
end