← FPGA数字IC知识手册

推荐答案 测试一下

函数 function

编程题 中等 笔试真题

参考答案

本题主要考察 Verilog 中 function 的语法与使用规范。function 用于描述组合逻辑,返回一个表达式值。定义时需注意:<返回值的类型或范围>可选,默认返回 1 位寄存器类型;函数名隐含声明同名的内部寄存器用于赋值返回值;端口只允许 input,不能包含 output 或 inout;函数体内只能使用阻塞赋值,不能有 # 延迟、wait、触发等时序控制;可以调用其它函数,但不能调用 task。调用时作为表达式中的操作数,例如 assign word = control ? getbyte(addr1): getbyte(addr2); 易错点:1) 误以为 function 可以包含 always 块或时序逻辑;2) 忽略返回值位宽导致数据截断;3) 忘记函数名赋值导致返回值未定义;4) 在 function 中使用非阻塞赋值(<=)导致错误。函数可递归调用,但需注意硬件资源限制。

涉及知识点

  • Verilog function 语法与定义
  • function 与 task 区别
  • 组合逻辑实现要求
  • 函数返回值机制
  • 递归调用限制
← 上一题
登录后反馈错题
下一题 →