Skip to content

Commit 66b21d7

Browse files
add workaround for infinite loop problem of xelab
(refs: taichi-ishitani/tvip-axi#32 (comment))
1 parent 6de0f40 commit 66b21d7

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

src/tvip_common_macros.svh

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,28 @@
2020
`define TVIP_TIME_PRECISION 1ps
2121
`endif
2222

23+
`define tvip_inside(VARIABLE, MIN, MAX) \
24+
((VARIABLE >= MIN) && (VARIABLE <= MAX))
25+
2326
`define tvip_delay_constraint(DELAY, CONFIGURATION) \
2427
if (CONFIGURATION.max_delay > CONFIGURATION.min_delay) { \
25-
(DELAY inside {[CONFIGURATION.min_delay:CONFIGURATION.mid_delay[0]]}) || \
26-
(DELAY inside {[CONFIGURATION.mid_delay[1]:CONFIGURATION.max_delay]}); \
27-
if (CONFIGURATION.min_delay == 0) { \
28-
DELAY dist { \
29-
0 := CONFIGURATION.weight_zero_delay, \
30-
[1 :CONFIGURATION.mid_delay[0]] :/ CONFIGURATION.weight_short_delay, \
31-
[CONFIGURATION.mid_delay[1]:CONFIGURATION.max_delay ] :/ CONFIGURATION.weight_long_delay \
32-
}; \
33-
} \
34-
else { \
35-
DELAY dist { \
36-
[CONFIGURATION.min_delay :CONFIGURATION.mid_delay[0]] :/ CONFIGURATION.weight_short_delay, \
37-
[CONFIGURATION.mid_delay[1]:CONFIGURATION.max_delay ] :/ CONFIGURATION.weight_long_delay \
38-
}; \
39-
} \
28+
`tvip_inside(DELAY, CONFIGURATION.min_delay, CONFIGURATION.mid_delay[0]) || \
29+
`tvip_inside(DELAY, CONFIGURATION.mid_delay[1], CONFIGURATION.max_delay); \
30+
`ifndef VIVADO \
31+
if (CONFIGURATION.min_delay == 0) { \
32+
DELAY dist { \
33+
0 := CONFIGURATION.weight_zero_delay, \
34+
[1 :CONFIGURATION.mid_delay[0]] :/ CONFIGURATION.weight_short_delay, \
35+
[CONFIGURATION.mid_delay[1]:CONFIGURATION.max_delay ] :/ CONFIGURATION.weight_long_delay \
36+
}; \
37+
} \
38+
else { \
39+
DELAY dist { \
40+
[CONFIGURATION.min_delay :CONFIGURATION.mid_delay[0]] :/ CONFIGURATION.weight_short_delay, \
41+
[CONFIGURATION.mid_delay[1]:CONFIGURATION.max_delay ] :/ CONFIGURATION.weight_long_delay \
42+
}; \
43+
} \
44+
`endif \
4045
} \
4146
else { \
4247
DELAY == CONFIGURATION.min_delay; \

0 commit comments

Comments
 (0)