Well, there's always something new to learn, isn't there? Just the other day, for example, I heard that a company called Reflex CES had introduced the industry's first "Aurora-like" IP core. (Click here to see my column on this product announcement.)
I'm still pondering how "Aurora-like" relates to "Aurora-compatible" (or not as the case might be), but that's a topic for another day. Upon first hearing this announcement, I experienced two "knee-jerk" reaction thoughts. My first thought was "Ooh, an Aurora-like IP core -- that's interesting." My second thought was "What's an Aurora IP core when it's at home? What does it do and why would I want to use one?" So I started to root around...
It seems that Xilinx first introduced the Aurora IP core in 2002. Aurora is basically a scalable, lightweight, high-speed serial interconnect core and communications protocol. When used in Xilinx FPGAs (and now in All Programmable FPGAs, SoCs, and 3D ICs), Aurora is royalty-free and license-free. (I believe that there is a small charge if one wishes to implement the core in a regular ASIC/ASSP/SoC design.)
But why do we need such a core/protocol? Aren't there already a bunch of such things along the lines of PCI Express (PCIe) and transceivers of this ilk? Well, yes there are, but in addition to having to pay license fees and suchlike, protocols like PCIe are ferociously complex and can take a lot of time to learn and implement; also, realizing these high-end protocols can consume a significant amount of an FPGA's programmable logic resources.
By comparison, as it says on the Xilinx website:
Aurora is a very efficient low-latency protocol that uses the least possible amount of logic while offering a rich, highly configurable feature set. Aurora increases bandwidth through bonded lanes. Aurora also requires little time to integrate in to existing user designs.
The Aurora core can be used in any application that requires serial point-to-point connectivity -- chip-to-chip, board-to-board -- and where an inexpensive, high-performance link layer with little resource consumption is required. Using Aurora can save many hours of work for users who were considering developing their own MGT (multi-gigabit transceiver) protocols.
The image above shows Aurora cores transmitting and receiving 8B/10B encoded data, but Aurora also supports 64B/66B encoded data if required.
In their product press release, the folks at Reflex CES say that their Aurora-like IP core is based on Altera FPGAs, and that this core enables interoperability between Xilinx FPGAs and Altera FPGAs. "Hmmm," I thought, "I wonder what the guys and gals at Xilinx think about this?"
So I called the folks at Xilinx to ask them and I was pleasantly surprised by their response. First, they noted that imitation is the sincerest form of flattery. Second, they pointed out that this validates the quality and usefulness of the Aurora IP core. They also told me that they are in the process of transforming Aurora into an industry standard. And last, but certainly not least, they noted that they have all sorts of extra "goodies" to support the Aurora core, like bus functional models and testbenches.
The amazing thing to me is that I had never heard of this little rascal, but then I've never had a need to use high-speed serial interconnect. How about you? Have you used the Aurora core? If so, it would be great if you could share your experiences below.