****************************************************************************** ********************* IBIS GOLDEN PARSER BUG REPORT FORM ********************* ****************************************************************************** INSTRUCTIONS To report a bug in the IBIS golden parser. Please fill out the top part of the following form and send the complete form to ibischk-bug@vhdl.org. A list of reported bugs will be maintained on vhdl.org. ****************************************************************************** PARSER VERSION NUMBER: Found in IBISCHK3 V3.2.1 UNIX PLATFORM (SPARC, HP700, PC, etc.): ALL OS AND VERSION: ALL REPORTED BY: Chris Rokusek, Viewlogic Systems DATE: 1/13/99 DESCRIPTION OF BUG: When Only the Vinl is overridden using the [Model Spec] keyword the checking code will cause a seg fault. From a glance at the source code this effect appears to exist for each subsection (e.g. D_overshoot, Pulse) within the [Model Spec] block. The following proposed fix would need to be applied to all similar functions within the source (taken from mspec.c): static void s_CheckThresholds(MSPEC *pMspec) { RNG *r; double typ, min, max; /* if none of the Hysteresis parameters are specified do nothing */ if( !pMspec->pVinh && !pMspec->pVinl ) { return; } /* check the min, typ and max values */ #if 0 r = pMspec->pVinh; if( r->eTypStat == SET ) { /* r is NULL here */ #else if (( r = pMspec->pVinh ) && /* assign ok, check for NULL */ ( r->eTypStat == SET )) { #endif typ = r->dTyp; min = (r->eMinStat == SET) ? r->dMin : typ; max = (r->eMaxStat == SET) ? r->dMax : typ; /* check min <= typ <= max or max <= typ <= min */ if(!(min <= typ && typ <= max ) && !(max <= typ && typ <= min)) { ERRLOG_Warn(sErMinMax, "Vinh", gMspecBeginLine ); } } <...> } INSERT IBIS FILE DEMONSTRATING THE BUG: [IBIS ver] 3.0 [File name] mspec_ok.ibs [File Rev] 0.0 [Date] 1/13/99 [Source] [Notes] This model is bogus. [Disclaimer] [Copyright] | |************************************************************************ | Component mspectest |************************************************************************ | [Component] mspectest [Manufacturer] None [Package] | variable typ min max R_pkg 2.00m 1.00m 3.00m L_pkg 5.00nH 4.00nH 6.00nH C_pkg 8.00pF 7.00pF 9.00pF | [Pin] signal_name model_name 1 t1 mCheck | |************************************************************************ | Model mCheck |************************************************************************ | [Model] mCheck Model_type Input Vinl= 1.5 Vinh= 3.5 C_comp 5.00pF 5.00pF 5.00pF | | ... this should be OK since the model thresholds will be used [Model Spec] Pulse_high 3V 2.5V 3.5V Pulse_low 1.2V .5V 1.5V Pulse_time 1.1n .5n 1.5n | | **BUG** | | When the Vinh below is commented out error occurs | From a glance at the source code, this effect will | probably also occur within each "set" below when | one row is commented out | Vinl 1.6 1.4 1.7 |Vinh 3.6 3.4 3.7 | | FALLING Vinl+ 3.62 3.61 3.63 Vinl- 1.62 1.61 1.63 | | RISING Vinh+ 3.42 3.41 3.43 Vinh- 1.42 1.41 1.43 | S_overshoot_high 5.1 5.09 5.11 S_overshoot_low -.1 -.11 -.09 | | D_overshoot_high 5.5 5.51 5.49 D_overshoot_low -.2 -.21 -.19 D_overshoot_time .5n .4n .6n | | [Temperature Range] 50.00 100.00 0.00 [Voltage Range] 5.00V 4.50V 5.50V | | End [Component] mspectest | [End] ****************************************************************************** ******************** BELOW FOR ADMINISTRATION AND TRACKING ******************* ****************************************************************************** BUG NUMBER: 35 SEVERITY: [FATAL, SEVERE, MODERATE, ANNOYING, ENHANCEMENT] SEVERE PRIORITY: [HIGH, MEDIUM, LOW] HIGH STATUS: [OPEN, CLOSED, WILL NOT FIX, NOT A BUG] CLOSED FIXED VERSION: 3.2.2 FIXED DATE: January 1999 NOTES ON BUG FIX: This has been fixed and will be closed when verified. ****************************************************************************** ******************************************************************************