|
20 | 20 | `define TVIP_TIME_PRECISION 1ps
|
21 | 21 | `endif
|
22 | 22 |
|
| 23 | +`define tvip_inside(VARIABLE, MIN, MAX) \ |
| 24 | +((VARIABLE >= MIN) && (VARIABLE <= MAX)) |
| 25 | + |
23 | 26 | `define tvip_delay_constraint(DELAY, CONFIGURATION) \
|
24 | 27 | 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 \ |
40 | 45 | } \
|
41 | 46 | else { \
|
42 | 47 | DELAY == CONFIGURATION.min_delay; \
|
|
0 commit comments