Mike,
Thank you for the detailed answers.
Huang,
I would like to add a few things to Mike's
reply.
1) No, this BIRD does not allow you to
define filters in
terms of poles and zeros. This has been
brought up in the
discussions, but it was decided to do
everything in the
time domain (at least for now).
2) Reading between the lines of your
question it seems as
if the reason you are asking for multiple
AMI keywords in
a [Model] is because you may want to
cascade them as if
they were multiple blocks in series in the
buffer. Is this
correct? (The reason I feel that this is
what you may be
interested in is because the associated
question about
sequence ordering).
We have discussed multiple AMI keywords in
a [Model] but
not in this context. It was more of a
"model selector"
idea to use one or the other. Your
question seems to
want to use them all together. In that
case couldn't you
just include all of the blocks in one AMI
model?
3) I think Mike said it all, it can't be
done (at least
for now).
In general, we are aware of some of these
limitations, and
these can all be addressed in the future.
We all have to
start somewhere and what we have in the
BIRD is a start, not
necessarily a complete solution for all
possible needs.
On the other hand, all of the topics you
mentioned COULD
be modeled using the *-AMS extensions of
IBIS TODAY. I
have shown some very
basic examples (again starters) in
two of my presentations
(both of which have working code
examples):
Even though these code examples are very
basic and do not
include the features you are asking for,
the beauty of
using the *-AMS language(s) is that you
don't have to
wait for a BIRD or a specification to be
finished, since
the *-AMS languages
are already established languages,
and they have been
supported by IBIS and some tools
for several years now.
As far a coding goes, you would pretty much
end up writing
the same amount of code whether you do it
as the AMI BIRD
suggests or in *-AMS. You may only need to
use a different
language to write your code.
I hope this helps,
Arpad
=========================================================
Huang-
Good questions, as usual.
As a general statement, one must view the algorithmic modeling standard
as a critical part of a total solution, but not a complete solution by
itself. I've inserted my opinion/understanding below. Other
contributors may have a different point of view.
Thanks for the questions.
Mike Steinberger
Huang chunxing wrote:
Hi Arpad and all,
I have some comments here.
1. As for the "Model Specific
Parameters", it has the syntax "Type Tap" for Linear feedforward
equalization or emphasis.
(Model_Specific | Required heading
(txtaps
(-2 (Usage Inout)(Type Tap) (Format Range 0.1 -0.1 0.2)(Default
0.1)
(Description "Second Precursor Tap"))
(-1 (Usage Inout)(Type Tap) (Format Range 0.2 -0.4 0.4)(Default
0.2)
(Description "First Precursor Tap"))
(0 (Usage Inout)(Type Tap) (Format Range 1 -1 2)(Default 1)
(Description "Main Tap"))
(1 (Usage Inout)(Type Tap) (Format Range 0.2 -0.4 0.4)(Default2
0.2)
(Description "First Post cursor Tap"))
(2 (Usage Inout)(Type Tap) (Format Range 0.1 -0.1 0.2)(Default
0.1)
(Description "Second Post cursor Tap"))
) | End txtaps
AMI Bird has clearly showed that
parameter could support parameter for LFE. Instead of LFE, some
SERDES would use peaking filter(Continous Time Equalization) as
emphasis at transmitter or equalization at receiver. I believe peaking
filter is also a common technique for compensating channel
loss. Peaking filter is analog filter and change its frequency response
by adjusting its poles and zeros.Its parameter may like this,
Zero: 0.1/UI 0.2/UI
Pole: 0.6/UI 0.5/UI
Does BIRD have any method to define
specific parameter for this filter?
It is possible for a model developer to parameterize a peaking filter
in any way they choose; however, the BIRD does not suggest any one
method over another. When compared with FIR equalization structures,
the difference is that whereas the degrees of freedom offered by an FIR
structure always have the same structure (in the sense that there are
independent tap weights), the ways in which the poles and zeros of a
peaking filter can be manipulated depend very much on the details of
the circuit design. One can't simply move the poles and zeros anywhere
one wants. What I've seen so far has been peaking filters which offered
a fixed number of configurations. Each configuration had a set of poles
and zeros, but the way in which the poles and zeros varied from one
configuration to the next was not necessarily obvious.
This affects the interaction between the model and the execution
environment it runs in, in the sense that whereas the execution
environment can have a relatively simple and effective optimization
routine for FIR equalizers because their degrees of freedom follow a
regular and well defined pattern, the only general approach for peaking
filters that I know of is to try each and every configuration and then
choose the one which gave the best results. I have algorithms for
designing rational transfer functions, and I've used those algorithms
to define the requirements for peaking filters; however, those
algorithms are only applicable before the circuit has been designed.
It's perhaps a minor point, but I've seen LFE structures that were not
FIR. Unfortunately, they were shown to me under NDA (non-disclosure
agreement), so I can't provide any more details. What we've defined in
the BIRD truly does assume FIR.
2、As for Keywords [Algorithmic
Model], Bird metioned,
| Usage Rules: The [Algorithmic
Model] keyword must be positioned within a
| [Model] section and it may appear only once for each
[Model]
| keyword in a .ibs file. It is not permitted under the
| [Submodel] keyword.
Is it possible that Algorithmic Model
appears more than nonce in Model keyword? I think one Algorithmic Model
for RX model may be not enough. If we can use more than one
Algorithimic Models here, how can EDA simulator know the calling
sequence?
I know very little about how IBIS is used in general; however, it will
often be the case that several IBIS files are used in a single analysis
or simulation. For example, there can be several circuit blocks in a
system that are to be modeled with algorithmic models, and each such
circuit block will have an IBIS file associated with it. There is no
reason why a single IBIS file has to be applicable to two different
circuit blocks. Rather, the two circuit blocks may be supplied by
different vendors, and so would have to have different IBIS files. All
that is required (and all that we've attempted to achieve) is that a
single IBIS file can contain enough information to fully describe a
single circuit block.
As regards calling sequence, that is an interesting problem which is to
be solved by the execution environment based on the circuit topology
that has been defined and the simulations/analyses that are to be
performed. The only constraint is that AMI_Init() is called before
AMI_GetWave() is called before AMI_Close().
3、As for AMI_GetWave function, one
wave input may be not enough also.
| 3.2 AMI_GetWave
| ===============
|
| 3.2.1 Declaration
| =================
|
| long AMI_GetWave (double *wave,
| long wave_size,
| double *clock_times,
| char **AMI_parameters_out,
| void *AMI_memory);
Like crosstalk cancellation
equipment, it needs not only receiver waveform, but also aggressor
waveform. AMI_GetWave function contains only one wave input parameter.
In such case, it may be difficult to fulfill this kind of modeling work.
You're quite right that the proposed standard does not directly support
modeling crosstalk cancellation equipment explicitly in the time
domain. Similarly, the proposed standard does not directly support
modeling clock forwarded interfaces (e.g., PCI-X, HT3.0) explicitly in
the time domain. In both cases, the problem, as you've pointed out, and
that there is only a single input time domain waveform whereas an
explicit time domain model would require two or more. Thus, for
example, the proposed standard would not enable the designer of a
crosstalk canceler to model the internal behavior of the canceler in
the time domain.
It is, however, possible to model crosstalk cancellation in the
AMI_Init() function, and to output the resulting impulse response for
each aggressor. These impulse responses could then be incorporated into
a semi-analytical BER estimation. There are some critical details to
this procedure that are not covered in the BIRD, and there are several
possible choices for the implementation of the BER estimator. All that
the BIRD assures us is that a model which includes _the_ _effects_ _of_
crosstalk cancellation will run in anyone's execution environment, and
an execution environment which implements the right analyses will be
able to accurately model _the_ _effects_ _of_ crosstalk cancellation.
What is not guaranteed is that any execution environment will
accurately model the effects of crosstalk cancellation. (-;
Thanks!
Huang
HUAWEI TECHNOLOGIES
CO.,LTD.
Address: Huawei Industrial
Base
Bantian Longgang
Shenzhen 518129, P.R.China
Tel: +86 755 28976426
Fax: +86 755 28976758
E-mail: huangchunxing@xxxxxxxxxx
www.huawei.com
-------------------------------------------------------------------------------------------------------------------------------------
This e-mail and its attachments contain confidential information from
HUAWEI, which
is intended only for the person or entity whose address is listed
above. Any use of the
information contained herein in any way (including, but not limited to,
total or partial
disclosure, reproduction, or dissemination) by persons other than the
intended
recipient(s) is prohibited. If you receive this e-mail in error, please
notify the sender by
phone or email immediately and delete it!