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

SystemVerilog中为何禁止对wor线或信号类型执行typedef定义?

关于SystemVerilog中wor类型typedef报错的问题答复

结论先行:该报错是Synplicity工具的实现Bug,并非IEEE 1800 SystemVerilog规范的强制限制。

根据IEEE 1800标准规定,typedef支持为所有合法的内置或自定义类型定义别名,其中就包含wor、wand、tri这类线网类型,你所写的第二种语法完全符合规范要求。

你给出的两种写法均为标准合法的SystemVerilog语法:

合法写法示例

typedef logic [15:0] bus16;
typedef reg [15:0] reg16;

interface myif;
   bus16 mybus;
   wor [15:0] myotherbus;
endinterface

符合规范但Synplicity报错的写法

typedef wor [15:0] wor16;

interface myif;
   wor16 myotherbus;
endinterface

旧版Synplicity兼容方案

如果暂时无法升级工具版本,可采用两种临时规避方案:

  • 放弃使用typedef别名,直接在声明位置写完整的线网类型定义 wor [15:0] myotherbus
  • 若仅需要在接口内统一线段位宽,可使用参数化位宽定义替代typedef

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:09:03