How much will it cost to have an IBIS-AMI compliant simulator, which is not only free of any licensing costs, but also makes its source code freely available?
You may have heard of IBIS-AMI (algorithmic modelling interface) and thought, “Hey, I should learn all about this.” But, when you asked around, you found that your company didn’t have a licence for any of the commercially available IBIS-AMI simulators. You may have even made some initial inquiries of vendors only to find that those licences are rather expensive. And at that point you may have concluded that it just wasn’t in the cards that you would learn about IBIS-AMI modelling. Well, don’t give up hope just yet, because have I got a deal for you!
How much would you pay for an IBIS-AMI compliant simulator, which was not only free of any licensing costs, but also made its source code freely available to you so you could study/modify it, as you pleased? But, wait, don’t answer yet. Because, if you go to the Instant Gratification page of the PyBERT Wiki, right now, you can be up and running with just such a simulator in less than 30 minutes. Now, how much would you pay? But wait, don’t answer yet. Because, if you… (Actually, go ahead and answer, because I can’t find Ginsu steak knives anywhere.)
The IBIS-AMI modelling standard is an extension to IBIS, which predates it by many years. It was intended to provide the same sort of behavioural approach to high speed serial link modelling that IBIS brought to parallel I/O modelling. IBIS was chosen to host this new algorithmic approach to serial link modelling, for several reasons:
Indeed, with an IBIS-AMI compliant simulator in hand, as well as the necessary IBIS-AMI models, a system designer is now able to produce a production worthy high speed serial communication link design, without having to understand the details of channel equalisation. And that has been a very empowering paradigm shift for the telecommunications industry. All that remains is to get this new capability into the hands of more designers, not just the privileged few, whom happen to work for a company willing to shell out $40,000 for a licence to one of the commercial tools. Enter PyBERT.
PyBERT was originally just a learning tool intended to help the curious telecommunications engineer better understand the wizardly topic of channel equalisation. When I first started writing PyBERT (ca. 2014), the topic of channel equalisation was still considered to be a "black art." And those who had demonstrated some proficiency at it enjoyed a certain wizardly status, and were profiting from that status handsomely. Worse, some of these wizards were actively discouraging other engineers from developing their own understanding of this topic, hoping no doubt to extend the lifespan of this new racket they’d discovered and milk it for all it was worth.
This really bothered me, because I understood channel equalisation and knew that the mathematics behind it weren’t really all that mysterious. I really wanted to pull the curtain aside on these self-proclaimed wizards and show people that the wizards’ machine was operable by them too. So, I wrote PyBERT, intending for it to function as a community owned and maintained resource for the curious telecommunications engineer interested in learning about channel equalisation. Last year, over the holiday break, I decided to give PyBERT the ability to use IBIS-AMI models—as an alternative to its own native algorithms—for modelling the effects of channel equalisation.
Getting up and running with PyBERT is easy. Just go to the Instant Gratification page of the PyBERT Wiki and follow the instructions there. If you bump into any trouble, I’ll be happy to help you navigate around it.
Running your first IBIS-AMI simulation in PyBERT is pretty straightforward. Just click on the Config. tab and start working your way from the top-left section (Simulation Control) to the right (Channel Parameters) and then down to the Tx_Equalization and Rx_Equalization sections.
You’ll notice that some sections contain two subsections: IBIS-AMI and Native. Native equalisation modelling is the default in PyBERT. You’ll need to explicitly activate IBIS-AMI mode, by:
Decide whether you want to run the simulation in Init()-only or GetWave() mode and check or leave unchecked the Use GetWave checkbox accordingly. Finally, click the Configure button, to set up each of your AMI models. When you’re done, click the Run button at the bottom of the PyBERT main window. (You can safely ignore the options in the following three sections, all located in the bottom row of the Config. tab: CDR Parameters, DFE Parameters and Analysis parameters.)
You should see the status (located near the bottom-left corner of the PyBERT main window) change state several times. And, when it returns to "Ready," your simulation has completed and you are ready to view the results. You do this, by clicking on the other tabs of the PyBERT main window, generally working your way from left to right, depending upon what you’re most interested in seeing.
Some (hopefully) helpful tips:
That’s about all there is to running an IBIS-AMI simulation in PyBERT.
David Banas is Principal SERDES Applications Engineer at eASIC.
First published by EDN.