← 2022 · 荣耀 笔试

推荐答案 测试一下

下列说法正确的是

A.在always语句中赋值的变量,可以是wire也可以是reg B.reg变量一定被综合为寄存器 C.always块只能用来描述组合逻辑 D.在assign语句中赋值的变量要定义为wire
简答题 中等 笔试真题

参考答案

D。选项A错误:在Verilog中,always语句内赋值的变量必须定义为reg类型,wire类型只能用于assign连续赋值。选项B错误:reg变量是否被综合为寄存器取决于always块的写法,若always块采用电平敏感列表(如always @(*))描述组合逻辑,reg变量综合后为组合逻辑;只有采用边沿敏感列表(如always @(posedge clk))描述时序逻辑时,reg变量才会综合为寄存器。选项C错误:always块既可以描述组合逻辑(如always @(*)),也可以描述时序逻辑(如always @(posedge clk)),还可以描述锁存器。选项D正确:assign语句是连续赋值语句,其左侧必须是网络类型(wire或tri等),不能是reg类型;而reg类型变量只能在always或initial等过程块中被赋值。因此,只有D说法正确。

涉及知识点

  • Verilog中reg与wire的赋值规则
  • always块中变量必须为reg类型
  • reg变量综合结果与always块写法关系
  • always块可描述组合逻辑与时序逻辑
  • assign语句左侧必须为wire类型
← 上一题
登录后反馈错题
下一题 →