Programmable ASICs on Software Gone Wild

During Cisco Live Europe 2017 (where I got thanks to the Tech Field Day crew kindly inviting me) I had a nice chat with Peter Jones, principal engineer @ Cisco Systems. We started with a totally tangential discussion on why startups fail, and quickly got back to flexible hardware and why one would want to have it in a switch.

Next we discussed the various switching implementations, from software-based switching to network processors (NPUs), programmable ASICs and fixed ASICs. Oh, we also mentioned why ASICs are called ASICs (or “what is application-specific in them”)

We couldn’t resist going deeper and discussing some of the NPU implementation details, and the differences between NPUs and programmable ASICs, but quickly recovered and did a brief overview of where you’d find various chips in Cisco’s products (because Peter works for Cisco).

Next we focused on UADP ASIC used in Catalyst campus switches, briefly explored the idea of virtual hamsters, reverted to being serious and started discussing UADP header parsing, forwarding pipeline, MPLS and SPAN implementation on UADP, and finally what goes into individual stages in the forwarding pipeline, and how the forwarding pipeline uses TCAM.

Last but definitely not least; we couldn’t resist mentioning VXLAN encapsulation, CampusFabric and Geneva.

Want to know more? Listen to Episode 76 of Software Gone Wild.

Even More Details


  1. Ivan,

    Thanks for the opportunity to do this. I really enjoyed it, and I hope we get the chance to do it again.

    Peter Jones
  2. programmable ASIC is a marketing name for a FGPA?
    1. No. FPGA is programmable at the silicon gate level, while programmable ASIC could be programmable at the level of "which fields do I use for lookup". Gross oversimplification, but I hope you get the difference.
    2. Best analogy I can think of is shader programing for graphics processing units. Still application specific with programmability.
  3. Ivan is close to correct. FPGAs have a huge amount of flexibility at the logical gate level, but you pay for that in terms of price/poerformance.
    Programmable ASICs support certain types of primitives designed for dealing with packet forwarding operations.

    Take a look at and for more info.
  4. What's the difference between a programmable ASIC and NPU?

    1. I thought we addressed that : ( Did you listen to the podcast? Where exactly were we unclear?
    2. Sorry, missed that part, it was clearly answered. Thank you.

Add comment