Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module 两者的意思相同吗?_Module_Verilog_Fpga - Fatal编程技术网

Module 两者的意思相同吗?

Module 两者的意思相同吗?,module,verilog,fpga,Module,Verilog,Fpga,在Verilog代码中 case ({Q[0], Q_1}) 2'b0_1 :begin A<=sum[7]; Q<=sum; Q_1<=Q; end 2'b1_0 : begin A<=difference[7]; Q<=difference; Q_1<=Q; end default: begin A<=A[7]; Q<=A; Q_1

在Verilog代码中

case ({Q[0], Q_1})
  2'b0_1 :begin 
    A<=sum[7];        Q<=sum;        Q_1<=Q;
  end
  2'b1_0 : begin 
    A<=difference[7]; Q<=difference; Q_1<=Q;
  end
  default: begin 
    A<=A[7];          Q<=A;          Q_1<=Q;
  end
endcase
case({Q[0],Q_1})
2'b0_1:开始

是的,它们是一样的。例如,尝试此小代码并检查输出是否相同:

module test;

wire A,B,C;

reg p,q,r;

initial 
begin
 p=1; q=1; r=0;
end

assign  {A,B,C} = {p,q,r};

initial   #1 $display("%b %b %b",A,B,C); 

endmodule
通常,如果您想了解连接运算符,可以参考


编辑:我假设ApBqCr长度相同。

不,它们不一样。串联运算符(
{…}
)允许您从多个不同的信号中创建向量,允许您使用这些向量并分配给这些向量,从而使分量信号的分配将从结果中获得适当的位。从您前面的问题(),我看到
A
Q
sum
difference
都是8位值,
Q\u 1
是1位值。让我们检查第一个作业(注意其他三个作业的方式相同):


请注意,它们与
sum
不同,
difference
A
的长度至少为8位,请参阅我的答案以获得完整的解释。实际上,我假设它们的长度相同。我已经更新了答案中的假设。@Unn。最后一部分。我想它一定像
A@sharvill111
A
没有出现在赋值的rhs中,所以
A
没有承担
A
的任何部分,还要注意concat操作符首先有MSb,所以
sum[7]
是我使用的示例中的MSb,而
Q[0]
Q
的最后一位)是LSb。所以,我很确定我的拆分是正确的。@Unn好的,现在我明白了。你说的是OP代码中的第二个代码段,而我指的是第一个代码段
module test;

wire A,B,C;

reg p,q,r;

initial 
begin
 p=1; q=1; r=0;
end

assign  {A,B,C} = {p,q,r};

initial   #1 $display("%b %b %b",A,B,C); 

endmodule
{A, Q, Q_1} <= {sum[7], sum, Q};
A <= {sum[7], sum[7:1]};
Q <= {sum[0], Q[7:1]};
Q_1 <= Q[0];