SystemVerilog中函数调用时参数的赋值形式

📅 发布时间:2026/7/9 20:57:40 👁️ 浏览次数:
SystemVerilog中函数调用时参数的赋值形式
写这篇文章在于自己犯了一个低级语法错误而这个地方自己竟然一直都是记错了自己犯错的地方在于// 错误写法 (Illegal Syntax) cfg.fdi_cfg.configure_protocol( supported_protocol svt_ucie_types::STREAMING, // 报错这里不能用等号 supported_protocol_flit_fmt svt_ucie_types::PCIE_256B_FLIT_MODE, stream_id svt_ucie_types::STACK_0_STREAMING_PROTOCOL );SystemVerilog函数中按关键字进行参数赋值时是偏硬件语言的和cpython这些语言是不同的不是用等号进行赋值。正确的赋值写法如下// 想象你在拨号或者连线而不是简单的赋值 cfg.fdi_cfg.configure_protocol( .supported_protocol (svt_ucie_types::STREAMING), .supported_protocol_flit_fmt (svt_ucie_types::PCIE_256B_FLIT_MODE), // 这里根据 Format 6 选 256B .stream_id (svt_ucie_types::STACK_0_STREAMING_PROTOCOL) );这和module例化时信号的连接是类似的。在绿皮书中也有此情况的相关写法示例可能之前自己更多用的是位置传参。所以这种写法和其他编程语言的写法混淆了。