You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Verilog事件控制语句括号可选吗?@a写法是否符合官方语法规范?

关于Verilog模块@a写法合法性的疑问

先看这段测试代码:

module test;

logic a;

initial @a;

endmodule

实际仿真中不少仿真器会认可这种写法,但严格来说,它是否属于官方Verilog/SystemVerilog语法的扩展?

查SystemVerilog-2017标准,事件控制语句的语法定义如下:

event_control ::=
   @ hierarchical_event_identifier
 | @ ( event_expression )
 | @*
 | @ (*)
 | @ ps_or_hierarchical_sequence_identifier

对照标准可以发现,@a完全找不到匹配项:

  • hierarchical_event_identifier只针对命名事件,这里的a是变量,不符合
  • event_expression明确要求带括号,@a没有括号,不满足该分支
  • ps_or_hierarchical_sequence_identifier对应序列标识符,和普通变量无关

所以结论很明确:@a这种写法不属于SystemVerilog-2017的官方标准语法,属于部分仿真器额外支持的语法扩展。

内容的提问来源于stack exchange,提问作者andreas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:33:07