← 2022 · 小米 笔试

推荐答案 测试一下

哪些Verilog的写法是不能综合的__________

A.输入为变量的除法 B.循环边界未在编译时指定的for循环 C.含有时序电路的function函数 D.输入为变量的乘法
多选题 中等 笔试真题多选

参考答案

正确选项:A、B、C。 A. 输入为变量的除法:综合工具通常无法将变量除法直接映射为硬件除法器,因为除法器面积大、延迟高,且需要特殊处理(如流水线或迭代算法)。如果除数和被除数均为变量,综合时通常会报错或提示不可综合,因此属于不可综合写法。 B. 循环边界未在编译时指定的for循环:for循环用于综合时,循环上界和下界必须在编译时(即综合前)确定为常数,否则综合工具无法展开循环,从而无法确定生成的硬件规模。如果边界为变量,则视为不可综合。 C. 含有时序电路的function函数:function在Verilog中用于描述组合逻辑,必须是无延迟、无时序依赖的纯组合电路。若function内部包含触发沿(如posedge clk)或非阻塞赋值等时序逻辑,则违反function定义,综合工具无法处理,属于不可综合。 D. 输入为变量的乘法:乘法运算中,若两个乘数均为变量,综合工具可以直接生成组合逻辑乘法器(如Wallace树等),尽管面积和延迟可能较大,但属于可综合结构。因此该写法可综合。 易错点:注意区分乘法和除法在可综合性上的差异;循环边界必须为常数;function只能用于组合逻辑。

涉及知识点

  • Verilog可综合语法要求
  • 除法运算硬件实现限制
  • for循环边界必须为常数
  • function不能包含时序逻辑
  • 乘法器可综合但除法器需特殊处理
← 上一题
登录后反馈错题
下一题 →