Walter, We have discussed the typ/min/max problems in IBIS several times. There is no need to go over that topic one more time. Regarding: "So with minor exceptions min==slow and max==fast." and "IBIS has confused a consistent way of associating Corner with typ, min and max values" I have to repeat that those minor exceptions are the main reason for min!=slow and max!=fast in IBIS, (where "!=" means not equal), most notably with C_comp. I did explain it in an earlier email why C_comp should be treated as an independent variable from the I-V and V-t curves and [Ramp]. So IBIS did not confuse anything, it did the right thing, allowing the EDA vendors and users to simulate the various combinations of those non-tracking model parameters. But I must emphasize that BIRD 140 was NOT written to solve the issue of mapping typ/min/max with typ/slow/fast. I wrote this BIRD because I found that the current specification (5.0) doesn't state where the underlying value of "Corner" comes from. I believe this should be spelled out. I only brought up BIRD 124 because in search for an answer I found some text in that BIRD which mentions Corner. (Unfortunately, instead of answering the questions, BIRD 124 seems to further confuse and complicate matters). I would like to write BIRD 140 so that it can proactively pave the way for BIRD 124, if possible, to reduce the amount of work we need to do there, but we can ignore BIRD 124 if people don't want to include that in this discussion. In summary, the issues I am trying to solve with BIRD 140 is: Under "Format", pg. 140 of IBIS 5.0 lists Value, Range, List, Corner, Increment, Steps, Table. All of these, except Corner, are simply a qualifier for what follows. None of these have an underlying value upon which the subsequent values are operated on. Corner, on the other hand, assumes a value behind the name Corner, based on which one of the next three values is selected. The spec doesn't explain this clearly and doesn't explain where this value is coming from. The note on the next page (pg. 141): | Note that in the context of Algorithmic Model for type 'Corner', <slow | value> and <fast value> align implicitly to slow and fast corners, ... is a very poor attempt to give such an explanation, because the words "align to slow and fast corners" do not give an unambiguous definition for what this alignment is aligning to (not to speak about the mapping problem between min/slow and max/fast, which we can't solve with this BIRD). Even if we are NOT solving this mapping problem with this BIRD, I would like to at least spell out in the spec that Corner assumes an underlying value based on which it will pick one of the three values listed and spell out where this underlying value is coming from. Is that too much to ask for? Thanks, Arpad ================================================================== From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz Sent: Tuesday, August 30, 2011 4:34 PM To: IBIS-ATM Subject: [ibis-macro] Cornering IBIS All, Corner is mentioned multiple times in IBIS 5.0. e.g. | | Corner corner_name file_name circuit_name (module) Corner Typ buffer_typ.v bufferb_io_typ Corner Min buffer_min.v bufferb_io_min Corner Max buffer_max.v bufferb_io_max | | The required "typ" column for all data represents typical operating | conditions. For most [Model] keyword data, the "min" column describes slow, | weak performance, and the "max" column describes the fast, strong | performance. It is permissible to use slow, weak components or models to | derive the data for the "min" column, and to use fast, strong components or | models to derive the data in the "max" columns under the corresponding | voltage and temperature derating conditions for these columns. It is also | permissible to use typical components or models derated by voltage The implication for I-V and Ramp columns is | | e. Typ, Min, and Max must all be posted, and are derived at the same | extremes as the I-V tables, which are: | | Ramp rates for CMOS models: | typ = typical voltage, typical temp deg C, typical process | min = minimum voltage, max temp deg C, typical process, minus "Y%" | max = maximum voltage, min temp deg C, typical process, plus "Y%" | | Ramp rates for bipolar models: | typ = typical voltage, typical temp deg C, typical process | min = minimum voltage, min temp deg C, typical process, minus "Y%" | max = maximum voltage, max temp deg C, typical process, plus "Y%" So with minor exceptions min==slow and max==fast. An EDA tool may support additional corners, but in any case they EDA tool is responsible for mapping its "Corner" into IBIS typ, min and max values. The bottom line is that all EDA tools have a concept of at least three corners typ=nominal, min=slow=weak=worst_case, and max=fast=strong=best_case. Where min and max corners most often map into min and max columns in the IBIS file. The AMI format "Corner typ_value slow_value fast_value" suggest that the EDA tool associates typ_value with typ=nominal, slow value with min=slow=weak=worst_case and fast_value with max=fast=strong=best_case. The EDA tool is not required to make this associating, but by using the AMI format Corner, the model make is assuming that the EDA tool will make that association. The existence of format "Corner" had the implication that the EDA tool was going to choose a Corner (typ, slow, fast). The bottom line is that IBIS has a built in assumption that Corner shall be "typ" "min" or "max". IBIS has confused a consistent way of associating Corner with typ, min and max values. When AMI was developed 3 years ago, we decided to eliminate this confusion by calling the three corners Typ, Slow and Fast. BIRD 124 (Dependency BIRD) makes the assumption that the EDA tool will select one of the three corners for a simulation. The EDA tool must already do this to choose the External Model, the IV and VT curves to apply, as well as Model Parameters. Since the EDA tool is required to do this to pick External Modles and IV/VT data, then the EDA tool knows which Corner to use in AMI Corner parameters. Walter Walter Katz wkatz@xxxxxxxxxx<mailto:wkatz@xxxxxxxxxx> Phone 303.449-2308 Mobile 720.333-1107