← 2022 · 华为 笔试

推荐答案 测试一下

下面这段代码,说法错误的是:

A.数据寄存推荐这样的写法 B. din_dly用来当控制信号是安全的 C. din_ dly不受复位影响 D. din的不定态会传递到din_dly
单选题 中等 笔试真题单选

参考答案

正确选项是A。该代码是一个标准的同步时序逻辑,使用非阻塞赋值在时钟上升沿将din寄存到din_dly。选项A说“数据寄存推荐这样的写法”,但在实际设计中,通常推荐在always块中添加复位逻辑(同步或异步复位),以保证寄存器在系统上电或复位时具有确定的状态,避免仿真时未知初值或FPGA上电后不确定状态带来的问题。因此,完全不带复位的写法并非推荐做法,故A错误。选项B正确:din_dly是din寄存一拍后的信号,已经同步到时钟域,作为控制信号使用时可以避免组合逻辑毛刺,相对安全(前提是建立保持时间满足)。选项C正确:代码中没有复位信号,寄存器不会因复位而改变,其值仅随时钟更新。选项D正确:非阻塞赋值会在每个时钟沿传递din的值,包括不定态,仿真中若din为X,则din_dly也会变为X。

涉及知识点

  • 同步时序逻辑寄存器写法
  • 非阻塞赋值的特性
  • 复位策略的重要性
  • 不定态在寄存器中的传播
  • 控制信号的同步处理
← 上一题
登录后反馈错题
下一题 →