SystemVerilog计数器接口报错:语句后非法声明,疑有多余分号
问题原因及修复方案
错误根源
报错的核心原因是信号名称拼写错误:接口中定义的输入信号是dta_in,但所有clocking块里都错误地写成了din。编译器无法识别未声明的din信号,进而触发了"声明必须在语句之前"的语法顺序误判。
修复步骤
将所有clocking块里的din替换为接口中已定义的dta_in即可解决问题。你的clocking块内default配置语句的位置是正确的(放在信号方向声明之前),无需调整。
修复后的完整代码
interface my_cnt_if(input bit clk); logic [3:0]dta_in; logic [3:0]cnt; logic load; logic u_d; logic rstn; clocking de_cb@(posedge clk); default input #1 output #2; output dta_in; output load; output u_d; endclocking clocking me_cb@(posedge clk); default input #1 output #2; input dta_in; input load; input u_d; endclocking clocking mr_cb@(posedge clk); default input #1 output #2; input cnt; endclocking modport DV(clocking de_cb); modport MW(clocking me_cb); modport MR(clocking mr_cb); endinterface
内容的提问来源于stack exchange,提问作者Avadhoot Sagrolikar
相关产品推荐
相关产品推荐

