[160] 下面的兩個例子綜合時需要多少個Flip-Flop?
1)
always @(posedge clk)
begin
B = A;
C = B;
end
2)
always @(posedge clk)
begin
B <= A;
C <= B;
end
1)一個;2)兩個
第一種情況下,A的值賦予B,B更新后的值在同一個周期將賦予C,因此只需要一個觸發(fā)器即可
第二種情況下,B更新后的值,在下一個周期才能賦予C,需要兩個觸發(fā)器實現(xiàn)
[161] 下列代碼的輸出是什么?
always @(posedge clk)
begin
a = 0;
a <=1;
$display("a=%0b", a);
end
由于非阻塞賦值只能在周期結(jié)束生效,而display語句打印的是當(dāng)前值,所以結(jié)果是a=0。
你答對了嗎
本期題目
[162] 編寫verilog代碼,交換兩個寄存器的值,并且不使用中間寄存器
[163] 下列代碼的輸出是?
module test;
int alpha,beta;
initial begin
alpha = 4;
beta = 3;
beta <= beta + alpha;
alpha <= alpha + beta;
alpha = alpha - 1;
$display("Alpha=%0d Beta=%0d", alpha,beta);
end
endmodule
|