 We're here at the NaraConnect 2018 here in Hong Kong, and who are you? Thomas Evansons, I'm the CTO for Embedded Software at SILINX. And you just had a keynote, so what are you talking about? It's really about how you can use an FPGA from a software point of view. Typically what people have been doing is programming these FPGAs, it's programmable hardware basically, so doing that with hardware description languages like VHDL and Verilog. What's new now is that you can actually write your C codes, C++ and OpenCL, and get that automatically then compiled into the FPGA, and get massive parallelism and really high performance. Is that a tool that converts that C code and all that stuff, it converts it into an FPGA code? Exactly, so basically what you do is you write the program and then you point to a function or a few functions you want to have running in the FPGA, and just either with command line options or from the GUI, you tell the compiler so that the rest of the code will go through your regular GCC or what have you, the rest of the stuff that's going to the FPGA will go through our high level synthesis tools and be placed into the FPGA. Because the FPGA is a pretty awesome thing, right? It has lots of performance, but it's programmable, so it's like magic. What is this kind of thing? Yeah exactly, so an FPGA is really different things for different people. From a software point of view, think of it as programmable hardware, so you can, what people are doing otherwise is they're creating their own ASICs for some very specific optimizations like transcoding video or doing machine learning neural networks and so on. Here you can program that, so the hardware is actually programmable, so you can change what the hardware is doing, and that's really exciting, and then you can choose if you want to use your traditional hardware description languages to do this, or now using C code and the stuff that people like me understand. But if you use C code or other kind of software, is that not the optimal way of doing FPGA code? It's optimal, very often from a time point of view, how long it takes. Hardware is very, very parallel, so the trick is always how do you express that parallelism in your C code, which is a very sequential language where you do A and then B and then C. So typically what you do is that you put the stuff you want to calculate in a loop, and then you say that, all right, I want to explode this loop and run maybe 100 of these iterations every clock cycle. That's how you get the big gain in performance. So I'm guessing the super expert engineer software developers in the FPGA field are maybe cutting edge in terms of in general chip programming, because it sounds like the FPGA you can program it to do many different things at a different time. It's not just doing one thing. No, exactly. So customers are actually changing it depending on the use case. They just change the hardware, if you will, the programmable hardware. You can imagine if you have a device, for example, and then you have during the day you need to do something and something else during the night, or even if you push this bottom, then you want to show something on the screen that's very different and you want to accelerate different things. So it's programmable from that point of view, and what's new now is that the software guys can do that programming as opposed to just the hardware guys that's been traditionally doing it. And I guess maybe some of your customers are completely changing the strategy and keeping the same hardware, just loading a new thing and then it's different. Exactly. It's really good for platforms. You can imagine a company that wants to build a standardized platform for lots of different devices. So you can do that. And then depending if you want to put that stuff into a robot, for example, then you have some things that you putting into the fabric, or if you want to have the same platform of doing something with something completely different. You have the same platform from the software point of view. It looks the same and so on. It really simplifies things. And if you want to emulate like the kind of stuff that an ARM sensor does, you can do that too? Well, we have embedded ARM cores there. So you run that stuff on the ARM cores. Do you want to emulate a bigger one? Yeah, so that's another use case of FPGAs. People have been doing it for emulation. So then you have take our really big FPGAs and you put multiple of those onto a board. And people like the emulation companies, they are using FPGAs for that. So that when you emulate your ASICs, you use FPGA so that you can run at fairly high speed while you are testing out the original chip before you go to tape out because that's super expensive of course. Testing out if the design is a good idea or something like that? Both a good idea but also that it's correct. You can look for correctness and find bugs in it. So one of the timing issues. So here the Linar Connect is really cool. You're launching the 96 boards. That means you want to open it up to many more people to start working with FPGA. Exactly. So the new thing here is a board we call the Altra 96. So it's a 96 board compatible which is really important because that means that for software people they know exactly what's there. But then on top of that you can add your own accelerators and we have lots of examples on how you can do that. So you have neural network stuff. You have face recognition those kind of things as an example. So you get the best of both worlds. The standardized software development environment but then this kind of specialized acceleration. It's 249 exactly and it's really aimed for software guys. Typically what we've done before with boards is that we have lots of different connectors so people can try out those kind of things. The other boards you have are like big ones. They are typically big and expensive. Oh they can easily be a few thousand dollars for the bigger boards. This is just 249. 249. And the Altra side plus which is like the latest mass market the most popular right now. Yeah yeah no it is of the new generation of course we sell a boatload of the older generations of course right they're not going anywhere. But of the new 16 nanometers that's a popular. The current flagship kind of right. Yeah no it's it's mass market kind of. Yes and we have different sizes of the FPGA as well right. But on this one is a part that's really popular in automotive for example for driver assist. So this exact part is used a lot in the industry right now. And yesterday I think was yesterday or a couple days ago signings announced next gen. Yes yes the seven nanometer seven nanometer. Yeah it's getting small for sure it is yes. So this is a really exciting announcement. So the current generation is on 16 nanometers as you can imagine. Which is pretty good already. Yeah yeah no absolutely that's advanced. Altra 96 is 16. 16 nanometer exactly. Which is pretty good. Yeah and so but next generation is in seven nanometers. And so we just announced it we sort of announced the high level details of it. But we expect really high performance out of it maybe 20 times for neural networks if you compare it with the current vortex that people are using in like Amazon cloud and things like that. We have the FPGA in the cloud. So we really think we'll get the massive improvement in performance. So companies like Amazon they're like optimizing their AIs with the FPG's on the cloud. So this is not only for cars and stuff like that is for the data center too. Oh absolutely and that's where Everest is really focusing on is the data center. And in the data center you have lots and lots of different use cases. If it had been one killer application someone would have done an accelerator just for that right. But there are so many different tasks as running in the data center and that's a nice thing with FPGA because then you can you know doing a video transcoding for one customer and then the next second you're running something completely different like a neural network some AIs face recognition or something like that. And then the next you do something else. And maybe it's a nice potentially it's a nice platform for people to provide a cloud as a service. Exactly. To thousands of different customers everybody has their own designs. Exactly so for the Amazon example it's Amazon F1 so it's FPGA as a service so you pay for the time you actually run it on the servers. So that's potentially a huge part of this next gen right? Yeah it's definitely an important part of our strategy going forward is data centers and Everest really hitting the sweet spot there. So you call it ACAP and Everest right? So Everest is the so I'm the techie guy here so we've been using Everest is our code name internal code name ACAP is more the official name. Everest is the highest mountain in the world right? There you go. So that may be one of the reasons or something you want to be the some kind of highest. Yeah actually our code names has been mountains for for some reason that I don't even recall so we always been using mountains for for our code names. What's higher after Everest? I know we probably have to look at mountains on other planets I know. Yeah Mars or something. I'm just giving you ideas. So how about this trend that's going on where the ARM SOCs they want to do their NPU neural processing units and stuff like that. How does that compare with running it on FPGA? Yeah no it I mean obviously machine learning is getting big all over the place right and and if you know exactly the network you're going to optimize and so on there you can do very specific things. What we believe is that the FPGA has a lot of value to add because we can do the neural network really fast but you can also do other things that connections into it we can do other workloads as well. So that flexibility gives us we think a leg up really that we can both do machine learning very very efficient but we can do other things as well so it's really utilizing the same hardware for multiple things because in the data center you can imagine they don't want to have one card for that of that acceleration another card for another acceleration they want to have standardized on what kind of cards to put in there. So the FPGA is not just like glue logic or something like that. That's the yeah a lot of people and it's prototyping future stuff. Yeah so a lot of people still of course if you're connecting your FPGA to real world stuff like field buses or industrial ethernet and so on and you want to have some glue still being used for that of course right but the exciting part that we're talking about here is more the use it as an accelerator. I did some videos at mobile office it seems that there's a new also a new growing market for signings to do networking software defined networking maybe or some kind of acceleration in the 5G network and all that stuff. Yes yes so we've been in so wireless has been been a big market for us for a long time you can imagine you get an antenna signal coming in and then you need to do a lot of processing on that parallel processing to figure out exactly what what bits are are in there and so FPGAs are used for that for that calculation because you can do massively parallel calculations with it and a new thing a product that we also introduced here fairly recently last year something called RF SOC where we have integrated the AD converters and the DA converters which means that in one chip you can get the analog signal straight into the chip and then you digitize it and convert it to packets or what have you. So it's one as I see that does RF also. Exactly exactly which is really cool. Very useful for the mobile the telecom industry right. Absolutely because in the past you used to have separate chips for that and then you had a really high serial connection of service into like an FPGA and that consumes a lot of power so if you take away that and immediately go in with the analog signal then the saving is is quite a bit on the power side and there was also a big boost of signings to the embedded world so that's also an important part of signings is the embedded market right. Absolutely well to today so depending how you define the embedded market of course most of the things we're doing today is embedded right so even the wireless when we're in a base station that would be an embedded market we're not in mobile markets but our big markets are wireless and wired you have industrial you have automotive is really big for us things like driver assist those kind of things using our parts quite a bit we're in airspace defense is also fairly horizontal technology that you can use for a lot of different things and that's one of the values for us we can with one chip we can hit all these different markets. Are you in a consumer or professional cameras because I never know what they're using these guys when they do like you know it seems that they update the software the camera suddenly does more codecs it does all these and it sounds like it sounds like an FPGA. Yeah so in broadcast that's another use case for example and and actually we were in a lot of 4k TVs early on when they came out so the interesting thing is that you have FPG's in a lot of different things and sometimes I don't know it myself and some say you know that there's an FPG in in XYZ device and they're all over the place very often a little bit hidden because it's not the thing you talk about right so. So signings is the leader right absolutely yes there's like thousands of engineers doing this. Yeah yeah so I mean just Everest alone has been I think about 1500 engineers involved in that so it's a big problem. Have you organized all these people are you are you part of the organization of all these engineers? So I'm on the software side and obviously a lot of the engineers are working more on the hardware side right what I'm involved is to make sure that we have the right operating systems as you can imagine these kind of chips is very heterogeneous different types of CPUs and you have this code that's getting accelerated. How do you connect all that stuff from a software point of view making it easier for software developers that that's my area that I'm working on. There's also Cortex R on the SOC on the UltraSoc class the Ultra96 right yes and so that means you do you can be compatible with a safety application or something that's important to be like real time or something. Exactly so on that on the Ultra96 board we have four A53s typically people are running Linux on those maybe HyperVisual, Accent or something like that and maybe Linux and other things. On the R5 course which we call the RPUs the real time process unit they're real time obviously a big thing because you don't get as many cache layers in between and so on so it's much more predictable deterministic there but very important when you connect into the to the fabric the program of logic but it's also used for safety so safety certification so we have the hardware itself it's been safety certified and so that's a good place to put your safety certified code. And so it's quite exciting for you to see the narrow and the open source community optimize all the Linux stuff that's going to happen with your with your and is there a special way you have to build a Linux for plugging into the FPGA? Well so that's an interesting question to some extent with the Ultra96 board you have standardized a lot of the different things of course if someone in the program of logic wants to put in another network driver right for example then one way of doing that is to reconfigure the kernel rebuild the kernel what we really are trying to get people to do is to more use device 3 overlays as it's called so that you dynamically load that that driver and tell Linux that it's so you don't have to change the Linux image every time you do something but if the interesting thing when you have programmable hardware basically is that anyone can change so it looks like a completely new SOC from a software point of view so that's why you have to be so careful about putting stuff in user space when you access it or or using a loadable kernel module as opposed to every time recompile the kernel when you put it in the program. So you have standards or something like that? Yeah so the community has standards for for doing those things and what we are pushing standards is how do you interface between different types of course different operating systems that's an effort called open amp that we are leading because that that's really where the future is that you don't have just homogeneous cores that are doing the same thing have this specialized core and then so far people have been doing ad hoc communication between the cores ad hoc life cycle management so we are together with a bunch of other companies like TI and ST and NXP and Comenso1 and ARM of course and Linaro standardizing how to do those kind of things. The heterogeneous multi processing, exactly multiple operating system how do you start up something on another core and and so on so we're doing that both standardizing it but even more important an open source project that's in the Linaro light organization. So one of the things I like with the ARM stuff is the new thing they're doing with the emulating x86 apps on those new Windows laptops is something that could be also done on the PGA is emulating x86? I mean theoretically you can do that you can do pretty much anything on it I haven't seen anyone do that particular one what we do do is that we have our own what we call soft cores so small CPUs that we put into the fabric so you can you know have hundreds of those if you have a big FPGA and then you can program all that so you can create your own massively parallel networks of CPUs in the fabric itself and then you can have the ARM core sort of get the load out to them and lots of really innovative things going on in the fabric and I think I saw on the new announcement the 7nm it's going to have 50 billion transistors it's like a crazy huge amount that's crazy huge that's why Everest is like the biggest there's no chip with that many billions of transistors how do they all work they have to all work right they have to and that's something that's really really important for us of course is the whole quality control every we have a really good reputation on on that because as you can imagine doing a new tape out cost a lot of money so you really want to get it right when there's 50 billion transistors exactly so what you really have to do is emulate that before you get to that point right so all the CPUs and all that stuff you want to emulate that and hey guess what fpgs are really good at emulating it so we really eat our own dog for the next respect and you say there's a lot of hardware designers silings oh yeah they cannot just do whatever they want they have to they have to work for you basically they have to customize the hardware to what the software people want so part of that yes but a lot of that is that on the software side a lot of it's standard we're using standard arm cores and so on on the fpga side so that's something we're working on is creating more standards how do you actually get your so what they are mostly focusing on is making sure that they can accelerate things like their own networks really really fast and this is a new area that a lot of a lot of research is going into and that's why we are doing things a little bit different in the next generation so that we can shuffle the data a little bit differently and and have really massively uh dsp capabilities in it and that fpga that fabric that's your that's your thing right so that's our thing yeah that's your thing and you're the leader in that but i guess you have a proprietary way of doing that but is there any way to to to explain how you defer from another fpga company or how's your secret ingredient well the language that hardware developers are using vhdl and where those kind of languages so you can have design for one fpga and then move to another you have to do a little bit of work but but that's sort of standardize at that level what we're trying to do now and and other fpga companies as well is to use higher level languages like open cell and then the standard becomes the language definition as opposed to of the hardware implements it is there like an app store so don't really have an app store for fpga that's great idea so you know stay tuned that that might come someday because i i think that's as we go forward if you're a software developer would it be nice to just go to an app store and say oh that's excellent i want that one and that one and that one and i need a self-driving thing yeah exactly it'll just take from somebody who would like to provide it to you maybe exactly so so far you know that doesn't exist so now you work if you get stuff from our partners you know you go in and get it from them directly awesome so we're looking forward to 50 billion transistor and see what it's gonna do what it's gonna change the world when people have this stuff like what is what's gonna it's just gonna is it too much is it like is this kind of no yeah personally i think we're far away from from the machines taking over i hope i'm gone by when we get that but the ai that we're seeing now the enormous explosion i think that will help quite a bit with a lot of things that we're doing today the obvious example autonomous cars right and we play a big part on that we have many customers using our chips for really to get to get to the autonomous car commission so it has the best power efficiency yes you want to use too much power but you want to do lots of ai exactly very very often it's like for example if you have a forward-facing camera in a car it can't really use more like than five watts so you're not going to put in a big honky gpu thing there right and then melt the window so that's not going to work so that's why you have the spectrum of but it's always power efficiency is really really important even in the data center right because electricity is one of the big big cost there and it's interesting to see the whole industry doing all kinds of different things some people are trying to do stuff on gpu's the other are trying to make new machine learning chips and the arm is getting faster and all that but it's going to be interesting to see how it plays out it would be interesting and i personally don't think there's a one-size-fits-all here and that's why it's good to be an fpga company because you can have lots of different sizes if you win in the fpga so you can test out a lot of different things but there will be definitely some workloads where a gpu is better than an fpga and yeah then you should use a gpu for it but the flexibility and the dsp guys as well right so but we have that it's so expensive to come up with a new asic so unless you have really really high volumes then something that's more programmable like an fpga becomes a better choice and you know maybe the bulk of the market in the future is going to be lots of small projects that don't have the possibility to make a huge quantities of something so i think that's definitely a trend if you look at things there's a lot of small projects exactly and if you look at the industrial internet of things right there are a lot but it's not the one thing that goes to millions and millions of people you have different things and different factors absolutely