我已经了解到在Verilog函数中不允许使用非阻塞赋值语句。有人能给出一个合理的解释吗?
在Verilog中,不要把函数想象成C语言中的函数:
Verilog中的函数旨在以一种对开发人员友好的方式在多个位置同时实例化相同的组合逻辑,而不是重复编写/为其制作模块。 很多对Verilog新手尝试通过类比C语言中的函数来理解函数,虽然它们“返回”一个值,但最终更容易(也更正确)将它们概念化为组合门块。
请注意,这与“任务”不同,后者更通常用于按顺序执行事物,在测试平台情况下比函数更有用
当你学习Verilog时,请不要把你写的HDL理解为“代码”,因为这是一种不同的思维方式。
编辑:删去了我部分错误的解释。