【日更计划079】数字IC基础题【HDL部分】

2021-03-16 15:22:00 浏览数 (1)

上期答案

[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
  1. c=1
  2. 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;

欢迎在留言区给出你的答案,正确答案将在下一期公布,或者到下面的文章获取答案

0 人点赞