1
module circuit_1 (a, b, c);
input [1:0J a,b;
output [3:0J c;
assign c = a + b;

如果输入 a = 2'b11 并且输入 b = 2'b10,

输出 c 有什么值?请给出描述性的答案。

还请告诉我分配和始终的功能。我有点困惑。

4

1 回答 1

8
c = 4'b0101      // Output, implicitly a wire

“assign”用于网络类型声明(Wire、Tri 等)。由于导线根据驱动它们的值更改值,因此每当 RHS 上的操作数发生更改时,都会评估该值并将其分配给 LHS(模拟导线)

always - 用于寄存器 + 组合逻辑。如果是 always(@posedge clk)- posedge clk 事件触发 always 块,块内的逻辑被评估和分配。

always @ (*) - 如果 always 块的 RHS 中的某些内容发生更改,则评估并分配该特定表达式。

想象一下分配为电线并始终作为寄存器块(现在),因为它们的行为是相同的。

于 2013-03-26T00:22:42.990 回答