74F550 and 74F551 have only fall delays on the inverters. Use the fall delay for both rise and fall.
This commit is contained in:
parent
28a710b2d6
commit
48cd7d5fd4
|
|
@ -2625,6 +2625,7 @@ static char *get_delays_ugate(char *rem)
|
||||||
{
|
{
|
||||||
char *rising, *falling, *delays = NULL;
|
char *rising, *falling, *delays = NULL;
|
||||||
struct timing_data *tdp1, *tdp2;
|
struct timing_data *tdp1, *tdp2;
|
||||||
|
BOOL has_rising = FALSE, has_falling = FALSE;
|
||||||
|
|
||||||
tdp1 = create_min_typ_max("tplh", rem);
|
tdp1 = create_min_typ_max("tplh", rem);
|
||||||
estimate_typ(tdp1);
|
estimate_typ(tdp1);
|
||||||
|
|
@ -2632,13 +2633,19 @@ static char *get_delays_ugate(char *rem)
|
||||||
tdp2 = create_min_typ_max("tphl", rem);
|
tdp2 = create_min_typ_max("tphl", rem);
|
||||||
estimate_typ(tdp2);
|
estimate_typ(tdp2);
|
||||||
falling = get_estimate(tdp2);
|
falling = get_estimate(tdp2);
|
||||||
if (rising && falling) {
|
has_rising = (rising && strlen(rising) > 0);
|
||||||
if (strlen(rising) > 0 && strlen(falling) > 0) {
|
has_falling = (falling && strlen(falling) > 0);
|
||||||
|
if (has_rising) {
|
||||||
|
if (has_falling) {
|
||||||
delays = tprintf("(inertial_delay=true rise_delay = %s fall_delay = %s)",
|
delays = tprintf("(inertial_delay=true rise_delay = %s fall_delay = %s)",
|
||||||
rising, falling);
|
rising, falling);
|
||||||
} else {
|
} else { /* use rising for both rise/fall */
|
||||||
delays = get_zero_rise_fall();
|
delays = tprintf("(inertial_delay=true rise_delay = %s fall_delay = %s)",
|
||||||
|
rising, rising);
|
||||||
}
|
}
|
||||||
|
} else if (has_falling) { /* use falling for both rise/fall */
|
||||||
|
delays = tprintf("(inertial_delay=true rise_delay = %s fall_delay = %s)",
|
||||||
|
falling, falling);
|
||||||
} else {
|
} else {
|
||||||
delays = get_zero_rise_fall();
|
delays = get_zero_rise_fall();
|
||||||
}
|
}
|
||||||
|
|
@ -2655,6 +2662,7 @@ static char *get_delays_utgate(char *rem)
|
||||||
struct timing_data *tdp3, *tdp4, *tdp5, *tdp6;
|
struct timing_data *tdp3, *tdp4, *tdp5, *tdp6;
|
||||||
char *tplz, *tphz, *tpzl, *tpzh, *larger, *larger1, *larger2, *larger3;
|
char *tplz, *tphz, *tpzl, *tpzh, *larger, *larger1, *larger2, *larger3;
|
||||||
BOOL use_zdelays = FALSE;
|
BOOL use_zdelays = FALSE;
|
||||||
|
BOOL has_rising = FALSE, has_falling = FALSE;
|
||||||
|
|
||||||
tdp1 = create_min_typ_max("tplh", rem);
|
tdp1 = create_min_typ_max("tplh", rem);
|
||||||
estimate_typ(tdp1);
|
estimate_typ(tdp1);
|
||||||
|
|
@ -2662,14 +2670,16 @@ static char *get_delays_utgate(char *rem)
|
||||||
tdp2 = create_min_typ_max("tphl", rem);
|
tdp2 = create_min_typ_max("tphl", rem);
|
||||||
estimate_typ(tdp2);
|
estimate_typ(tdp2);
|
||||||
falling = get_estimate(tdp2);
|
falling = get_estimate(tdp2);
|
||||||
if (rising && strlen(rising) > 0) {
|
has_rising = (rising && strlen(rising) > 0);
|
||||||
if (falling && strlen(falling) > 0) {
|
has_falling = (falling && strlen(falling) > 0);
|
||||||
|
if (has_rising) {
|
||||||
|
if (has_falling) {
|
||||||
larger = larger_delay(rising, falling);
|
larger = larger_delay(rising, falling);
|
||||||
delays = tprintf("(inertial_delay=true delay = %s)", larger);
|
delays = tprintf("(inertial_delay=true delay = %s)", larger);
|
||||||
} else {
|
} else {
|
||||||
delays = tprintf("(inertial_delay=true delay = %s)", rising);
|
delays = tprintf("(inertial_delay=true delay = %s)", rising);
|
||||||
}
|
}
|
||||||
} else if (falling && strlen(falling) > 0) {
|
} else if (has_falling) {
|
||||||
delays = tprintf("(inertial_delay=true delay = %s)", falling);
|
delays = tprintf("(inertial_delay=true delay = %s)", falling);
|
||||||
} else if (use_zdelays) {
|
} else if (use_zdelays) {
|
||||||
/* No lh/hl delays, so try the largest lz/hz/zl/zh delay */
|
/* No lh/hl delays, so try the largest lz/hz/zl/zh delay */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue