【日更计划078】数字IC基础题【HDL部分】
[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,因此只需要一个触发器即可
第二种情况下,B更新后的值,在下一个周期才能赋予C,需要两个触发器实现
[161] 下列代码的输出是什么?
always @(posedge clk)
begin
a = 0;
a <=1;
$display("a=%0b", a);
end
由于非阻塞赋值只能在周期结束生效,而display语句打印的是当前值,所以结果是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
0条评论