In reply to nimitz_class:
From an 1800’2017 I do not see this restriction; maybe I missed it, but I could not find it.
From 1800 syntax
( sequence_expr {, sequence_match_item } ) [ sequence_abbrev ]
boolean_abbrev ::=
consecutive_repetition
| non_consecutive_repetition
| goto_repetition
sequence_expr ::=
cycle_delay_range sequence_expr { cycle_delay_range sequence_expr }
| sequence_expr cycle_delay_range sequence_expr { cycle_delay_range sequence_expr }
@(id) id== 4'h2 |=> (@(posedge clk) (1, v_t1=$time) ##0 @(negedge clk) (1, v_t2=$time, v_hi=v_t2-v_t1) ##0 @(posedge clk) (1, v_lo=$time-v_t2) ##0
(1, v_total = (v_lo+v_hi)) ##0 (1, ratio = (v_lo* (1/v_total))) ##0 ratio >= half_duty_cycle - tolerance && ratio <= half_duty_cycle + tolerance) [*2];
// is equivalent to
@(id) id== 4'h2 |=> (@(posedge clk) (1, v_t1=$time) ##0 @(negedge clk) (1, v_t2=$time, v_hi=v_t2-v_t1) ##0 @(posedge clk) (1, v_lo=$time-v_t2) ##0
(1, v_total = (v_lo+v_hi)) ##0 (1, ratio = (v_lo* (1/v_total))) ##0 ratio >= half_duty_cycle - tolerance && ratio <= half_duty_cycle + tolerance) // [*2];
##1
(@(posedge clk) (1, v_t1=$time) ##0 @(negedge clk) (1, v_t2=$time, v_hi=v_t2-v_t1) ##0 @(posedge clk) (1, v_lo=$time-v_t2) ##0
(1, v_total = (v_lo+v_hi)) ##0 (1, ratio = (v_lo* (1/v_total))) ##0 ratio >= half_duty_cycle - tolerance && ratio <= half_duty_cycle + tolerance);
// or more simply, just looking at the clocks
(@(posedge clk) (1) ##0 @(negedge clk) 1 ##0 @(posedge clk) expr ##0 expr2)[*2]
// same as
@(posedge clk) (1) ##0 @(negedge clk) 1 ##0 @(posedge clk) expr ##0 expr2 ##1
@(posedge clk) (1) ##0 @(negedge clk) 1 ##0 @(posedge clk) expr ##0 expr2
To me, it does not look like an 1800 issue. It could be a tool restriction, and we don’t address tools in this forum. Am consulting with one of the other 1800 SVA member.
More to come.
Did a search on LCA feature
NOTE: Adding the “-lca” switch to a VCS/VCS-MX command line enables a suite of “limited customer availability” features.The exact set of features differs from release to release, but is documented in the “LCA Features” portion of “vcs -doc”.
You seem to be using a special switch feature.