我有以下属性声明并签入我的系统 verilog 文件之一:
property StepOutP_pulse_width;
int count;
@(posedge ClkRs_ix.clk)
($rose(mc.outvec.StepOutP_o),count=STEPPER_PULSE_WIDTH) |->
(mc.outvec.StepOutP_o,count--)[*] ##1 (~mc.outvec.StepOutP_o && count==0);
endproperty // StepOutP_pulse_width
assert property (StepOutP_pulse_width);
这基本上检查了信号 mc.outvec.StepOutP_o 生成的脉冲宽度
当我尝试编译设计时,Quartus Prime 在这个属性声明上失败,说
错误 (10170):在 steppingcontroller.sv(404) 文本附近出现 Verilog HDL 语法错误:“]”;期待一个操作数。检查并修复紧接在指定关键字之前或处出现的任何语法错误。英特尔 FPGA 知识数据库包含许多文章,其中包含有关如何解决此错误的具体细节。访问 https://www.altera.com/support/support-resources/knowledge-base/search.html上的知识数据库 并搜索此特定错误消息编号。
现在,我想,在分析和综合过程中,这些属性声明和相关断言被完全忽略,因为它们只涉及模拟。但显然情况并非如此。Modelsim(原始导师图形版本)编译它没有问题,并且断言也符合预期。Quartus verilog 编译设置设置为 'SystemVerilog'
如何:
使属性规范与 quartus 编译器兼容?
或设置编译器忽略这些断言?
谢谢