上期答案
[164] 下列两种情况下c的值会是多少(五个时间单位后)?
代码语言:javascript复制1)
initial begin
a=0;
b=1;
c = #5 a b;
end
2)
initial begin
a=0;
b=1;
#5 c = a b;
end
initial begin
a=0;
#3 a=1;
end
- c=1
- c=2
第一种情况下,c=a b,但是需要五个时间单位的延迟以后才完成赋值
第二种情况下,在c=a b赋值完成之前,另一个initial块中,第三个时间单位时,修改了a的值,所以在计算a b时,a=1,因此最终结果为2
[165] 分析下面的代码,找出代码的错误
代码语言:javascript复制bit a, b, c, d, e;
always @(a, b, c) begin
e = a & b & c & d;
end
敏感列表缺失了d,这会导致仿真结果错误,而综合结果可能是正确的
你答对了吗
本期题目
[166] 编写verilog模块,使用“?:”运算符实现3:1mux
[167] 用下列两段代码进行建模,这两种代码风格有什么问题?
代码语言:javascript复制always @(posedge clk or posedge reset)
if (reset)
X1 = 0; // reset
else
X1 = X2;
always @(posedge clk or posedge reset)
if (reset)
X2 = 1;// set
else
X2 = X1;
欢迎在留言区给出你的答案,正确答案将在下一期公布,或者到下面的文章获取答案