← 2022 · ZEKU 笔试

推荐答案 测试一下

从综合出电路的电路看第一段代码比第二段代码优化的地方是

D <=A+B; B.第一段代码比第二段代码省功耗; C.第一段代码比第二段代码的电路简单; D.第一段代码比第二段代码易于理解和实现;
单选题 中等 笔试真题单选

参考答案

正确答案是B。第一段代码中,当条件A&B不成立时,D保持原值(即不更新),综合出的电路是一个带使能信号的D触发器,使能信号为A&B。只有在使能有效时,寄存器才更新数据,因此减少了不必要的寄存器翻转,从而降低了动态功耗。第二段代码中,有else分支将D赋值为1'b0,这意味着每个时钟上升沿D都会被重新赋值(要么是A+B,要么是0),综合出的电路是一个不带使能的D触发器,前面加上一个二选一多路选择器,选择A+B或0。这种结构下寄存器每个时钟沿都会更新,即使数据相同也可能发生翻转,功耗更高。选项A错误:代码简练与否与综合优化无关,且综合工具对两者的处理不同。选项C错误:第二段电路多了一个多路选择器,组合逻辑更复杂;第一段电路虽然寄存器本身带使能逻辑,但整体组合逻辑更少,电路并不一定更简单(使能寄存器内部结构比普通寄存器复杂),且从整体面积看,第一段可能略小,但主要优势在功耗。选项D错误:两段代码都容易理解,但第一段隐含了保持行为,第二段明确清零,从设计意图清晰度看,第二段更明确。因此,第一段代码的优势是节省动态功耗。

涉及知识点

  • 时序逻辑中if-else对综合结果的影响
  • 带使能寄存器与普通寄存器的区别
  • 寄存器翻转率与动态功耗关系
  • 综合工具对未覆盖条件的处理
登录后反馈错题
下一题 →