System verilog 为什么不能在系统verilog中的fork join any/none中使用引用参数?
无法在系统verilog中的fork join any/none中使用引用参数 **错误:../tb/range\u xform\u driver.sv(28):(vlog-LRM-2295)通过引用传递的参数不能在fork-join\u any或fork-join\u none块中使用System verilog 为什么不能在系统verilog中的fork join any/none中使用引用参数?,system-verilog,System Verilog,无法在系统verilog中的fork join any/none中使用引用参数 **错误:../tb/range\u xform\u driver.sv(28):(vlog-LRM-2295)通过引用传递的参数不能在fork-join\u any或fork-join\u none块中使用 **错误:../tb/range\u xform\u driver.sv(29):(vlog-LRM-2295)通过引用传递的参数不能在fork-join\u any或fork\u-join\u none块中使
**错误:../tb/range\u xform\u driver.sv(29):(vlog-LRM-2295)通过引用传递的参数不能在fork-join\u any或fork\u-join\u none块中使用这是LRM限制(参见第9.3.2节“1800-2017 LRM中的并行块”)。此限制背后的原因与以下事实有关:fork/join\u none/join\u any块中引用的任何变量的生存期必须在fork块的整个生存期内存在。回想一下,有以下几种变量的生存期
- 静态-永久性,不是此问题的问题
- 自动-在块激活期间存在
- 通过活动引用进行动态类对象内存管理
如果编译器在任务中运行(将对任务的调用替换为任务源代码的内容),您可以绕过此限制。但是,您不能利用单独的编译(在编译调用任务的代码的单独步骤中编译任务定义).嗨,dave,谢谢你的回复。请告诉我动态变量的生存期是如何限制的,仅限于join none和join any,而不是join all