Freescale IP Design Manager Jose Nunez presented a tutorial on Tuesday, June 4th, at the Design Automation Conference in Austin entitled “Challenges of Integrating External IP”. Through a show of hands, he found the majority of his audience were IP users and therefore knew his comments would be of more than passing interest.
Nunez first noted there are even challenges in reusing internally-generated IP – big companies often have multiple groups, each with different ways and methodologies for designing IP blocks. He said, however, his talk would focus on licensing third-party IP – standard IP such as PCI Express and USB, which would add no value to Freescale if developed internally, as well as other types of IP, which if developed internally might exceed a need-by date. In such cases, he said, licensing third-party IP almost always proves cheaper in the long run, but it has to be done with care!
Nunez cited common misconceptions: 1) When companies use widely-available third-party IP from known providers, it means those blocks come with fewer bugs. 2) If everybody’s using third-party IP, it can’t be that hard to integrate it into a project. 3) Third-party IP always delivers best-in-class features, maturity, power and speed. Having set the stage, he then listed some straightforward guidelines for interfacing with IP vendors, and using their products.
Value-add – It’s far better to buy, rather than make, industry-standard IP.
Availability of IP – Never single source your IP to avoid being stuck with only one provider.
Vendor selection – If you’re just getting started licensing IP, be careful; the playing field can quickly change in the world of IP vendors. You might license IP from a company that’s either going out of business, or is in the process of being acquired by one of your competitors.
IP selection – Evaluate the IP you’re contemplating based on features, maturity, and price, in lieu of the vendor’s reputation.
Contractual Agreements – Pay for IP on an unlimited, per-use basis; it’s the only way to go. Some contractual arrangements are built around royalties and maintenance fees, and a lot of people have gone that route, but you’re far better off paying up front.
Maintenance fees – These can run as high as 10-to-15 percent per year, and you’ll be paying for years because there are always bugs, so negotiate aggressively for a price that’s set up front for at least 3-to-4 years. And get that price in writing.
IP delivery – There are multiple choices here, FTP, logging into a server, even email. Be sure to discuss all of this in advance with your provider, and confirm the details in writing. As well, sometimes IP providers have revisions issues. Be sure to clarify how you can insure that the IP you’re using is free of bugs identified in earlier versions.
Sharing IP source materials – Oftentimes, IP users need to share their RTL with their CAD tool vendors. Keep that in mind and check with your IP provider that such sharing is okay, and get that permission in writing.
Dealing with bugs – Killer bugs often show up after the system in which the IP is embedded has been implemented in the field. Ask your IP vendor how they are going to deal with those situations, and get their responses in writing.
Support and bug reporting – A lot of IP providers have good systems in place for reporting bugs, both for you to report to them and for them to report to you. The very last thing you want to hear from your IP provider is, “Oh yeah, that bug? We ran into it a couple of years ago.” That’s when you’ll find yourself saying, “Really? That’s nice, but you didn’t bother to mention it to us?”
Integration – Many IP providers deliver regression suites with their products. You need to run these often to verify that you’ve gotten what you paid for. Also, note that sometimes vendor-provided test cases fail. When that happens, hold the IP provider’s feet to the fire and demand satisfaction. And always be aware at the outset what you’re receiving with the IP – lint checking, CDC checks, etc.
IP interface – Make sure in advance that there’s an interface match between your system and the IP you’re considering. Gasket complexity can vary, so be sure to check this out before you sign on the dotted line. In the real world things can go horribly wrong. [Nunez avoided mentioning specific vendors.] Ideally, IP contains 3 interfaces – the core, the system, and the register. You need to receive all of them, and be sure that you do. But first, be sure that those items are all guaranteed in writing.
Features – A lot of providers sell bare-bones IP, where each feature layered on the product generates additional costs – like a car dealer who lures you in with one price for the stripped-down model, and then drives the price up with each additional feature. Make sure that your contract with your IP provider clarifies exactly what you’re getting, and how much it’s going to cost. Don’t be caught buying IP that ends up missing important features.
RTL simulation – You often run into simulation incompatibility, for instance, NC-Verilog versus VCS versus QuestaSim. Talk about all of this with your IP provider in advance and pay attention to what you’re doing. You shouldn’t end up having to purchase additional unplanned licenses, so you can go back and recreate the compilation.
Synthesis – Not all synthesis tools are born equal. High-level RTL constructs and global definitions can cause issues, so ask for an evaluation license of the block you’re contemplating before buying. Take that IP through an entire flow in advance of purchase to verify compatibility.
CDC – This one can be very costly if not attended to in advance of purchase, and typically there are no possible workarounds if things go wonky. Talk about CDC with your IP provider, and related issues, to get their responses and waivers in writing before cutting that check!
CAD companies who also sell IP – These companies bring a double-edged sword into the conversation, and a potential host of competing interests, with IP users often caught in the middle. You may not be able to use all of the tools in your tool flow if your IP is from one CAD company, but your tools are from a competitor. Read the fine print with particular care when dealing with CAD tools providers who also sell IP. Be very, very aware – discuss restrictions up front and get it all in writing!
Q&A with the audience at DAC …
Q – Can you cite specific problems that arise when your CAD tool provider is also your IP provider?
Nunez – When we have to license IP from Synopsys, we have to go through a lot of hoops to run it through our back-end using Cadence tools. Whenever we have to send the design out for test, we have to stub off the IP. The companies are getting better about all of this, but only slowly. And you still have to sign a lot of papers to get it done.
Q – At what point can you start to charge your IP vendor for debugging their code?
Nunez – Believe me, there’s no way they’re going to pay you. Instead, they’ll just continue to say, “All IP has bugs! Deal with it!”
So accept the fact that you’re paying them to whitewash their fences. It’s just how it is!