Interview with Jim Anderson, CEO of Lattice Semiconductor
anandtech.com
anandtech.com
Very disappointing that on the topic of Software/Toolchain it's more of the same business decisions of just copying the Xilinx/Altera paradigm.
Since they seemed rather non-agressive towards Yosys/SymbiFlow they made me quite hopeful that Lattice would be the fpga players that would kickstart open-source toolchain.
I am tired of being forced to use software that vendors treat as a cost centre. I want to buy your hardware, I want the people that I work with to buy your hw.
I am tired of vendors forcing a graphical programing toolchain that hides complexity behind half baked software. And judging from the Altera/Xilinx forums I know I cannot be alone in this.
People warned me that Xilinx were legally very aggressive and that I could lose everything I owned. Nobody wanted to get involved then. At one point an academic paper about alternative programming techniques on Xilinx devices withdrew some of their work, out of legal concerns. So I kept out of it too.
In fact, I quit working with FPGAs for a long time (it had been my main job, developing and using hardware compilers at a higher level than VHDL/Verilog), so that my previous use of Xilinx and Altera software might become a distant memory and I wouldn't feel that the licensing restrictions accompanying their old software would constrain reverse engineering on a new generation.
I was intending to eventually reverse engineer some of the devices from first principles without using their software. We know that can be done to some extent just by programming bitstreams. Timing and power models are more difficult to reverse engineer, but not impossible and I had some measurement ideas, and I had in mind to additionally etch and photograph the chips as well, or perhaps use focused X-ray tomography. But that never happened; life happened instead.
Times have changed. The FPGA patents from that era have expired. You can build a decent device without infringing, in principle. There's a rapidly growing movement in open source hardware on FPGAs and even ASICs. And people have been reversing Xilinx among others, more confidently than the people of 20 years ago were willing to.
For today I have two words: QuickLogic and OpenFPGA. QuickLogic devices may be small compared with the high end, but they are explicitly supporting open source toolchains, better than Lattice's passive tolerance. This is a breath of fresh air, and I hope they are successful. OpenFPGA is actual open source FPGAs.
How well does their FPGAs work and how much can you do with the open source tools (e.g. timing driven synthesis)?
I feel this is a mentality change, albeit slow, that is starting to happen. We still don't have source code for Intel MKL, or all of OpenVINO and it bit us in the ass several times, so much I'm really trying to find ANY OTHER SOLUTION and pay the perf hit, if I can own and debug it. I'm not even asking for github or even publicly available tarballs, but 'I paid I want the source and I want to be able to look inside to be autonomous'. Make it OSS without community involvement, for all I care, but dammit let your paying customers look and debug. Let us automatize, let us own the tech.
Nah, at best it could be a rediscovery that took an inexplicable amount of time in the wake of the UNIX wars and dotcom bubble. If you look at paper titles from the 70s, when things were advancing at breakneck speed, you'll see "Open" commonly prefixing proposals - even stuff coming out of IBM (sadly looks over at PS/2 doorstop). Though, I think it is far more likely that businesses have developed a strategy that involves extracting as much free labor possible without actually generating free software: OpenSource® <insert Intel jingle>.
I am somewhat sympathetic to their problem though, the early developments occurred in a very different environment - involving companies that couldn't have existed as they did without state sponsorship.
I wasn't saying one team would steer the ship, but rather that the culture of opensource also lives inside Xilinx and I'll take any progress I can. Especially on such emergent tech and after the pains of closed-source AI toolkits and even inside Xilinx, the pain of using their DPU/VITIS-AI offer: oh you want to do X? Too bad, the IP can't be changed or touched (and is or will even be encrypted? Woa).
My last 9-5, many years ago, involved writing logistics software in an industry that: didn't present moral dilemmas, didn't especially reward creativity, and certainly didn't leave one feeling any real sense of accomplishment - outside of occasionally conquering another rung on the corporate ladder. It did, however, regularly present interesting problems - so I was pretty happy getting paid to solve non-contrived puzzles. But as I assumed more responsibility I surrendered more independence, and it eventually got to the point were it was a job - so I asked for a pay bump large enough to compensate the loss of intellectually challenging problems. I found myself reading IRS guidance for independent contractors shortly thereafter.
Over the years I've considered paths that would eventually necessitate hiring, but I haven't been able to come up with a solution for the problem of balanced interests. One that would have been able to retain my younger self while also maximizing utility. I'm not sure if such a financial instrument exists, one that incentivizes the execution of long term objectives in the company's interest, doesn't collect dead weight silent partners, doesn't leave anyone starving, and doesn't end in a coup.
I try to distill our culture (actual and the one I strive) as a first image of Corp X. And I always try to steer those who don't feel they'd fit in, but have a great CV or story, to other parts of the corp or to places I know would fit better.
It all starts at first impressions and those who want to define the future of the company should invest energy in hiring and mentoring, mentoring and mentoring again. 'no we don't do that here' at the coffee machine, with a smile. 'oh I wouldn't do that, that's a breach of your customer's trust, if you want I can come to the next meetings with you or help you craft a written answer with the proper people in Cc... Yes that sounds like being an annoying busy body but the help seems usually very appreciated.
I'm willing to personally donate 10k a year to projects like these to liberate myself from crappy vendor tools that I can't improve.
A while ago I found a bug in Lattice Radiant that produced broken PLL configurations. I reproduced this and confirmed that it doesn't happen in their iCECube software, but had no desire to argue with their support about why they should even look at it when I'm not paying $$$ for the software...
I permanently switched to the open toolchain and never had any serious issues since...
I will admit that QuickLogic was not a household name for me but the SoCs you have do tick a lot of boxes for me. I have now ordered a Qomu dev kit to evaluate, I am looking forward to see how the workflow/toolchain are like.
A final question, when trying to order a QuickFeather from Europe, I get a 'restricted availability' message that Mouser is unable to deliver the dev kit in my EU country due to 'government regulations'.
In the past I had to go through a few hurdles/forms when using a specific chip for a medical device because it apparently was also used in some form of US defense application. Is that something EU buyers should expect from Quicklogic products in general? It's not a show stopper but it would be good to know ahead of designing anything.
I’d love to have the momentum around open source EDA tools. At this point I’m not hopeful though.
Open your stupid bitstream formats FFS.
Linux is supported.
Amen. The size of these closed source toolchains is often enormous. I wonder how many folks are not content with using relatively large Windows point-and-click software to program relatively small form factor hardware.
I wish!
I'll take my hardware without the sauce, thank you!
Open implementations which acquire enough traction become open standards. I'm doing block-level CPU simulation work for my dissertation, and there's pretty much a wall of abstraction where my work has to stop before it explodes with licensing + compatibility landmines. A rock solid tooling ecosystem I could target for FPGAs and then eventual fabrication would be the dream.
You aren't alone. Most people who work with FPGAs hate the toolchains.
The entire FPGA industry and to a larger extent the entire semi industry in plagued by this problem.
This is a deep cultural issue.
Look for example at NVidia and their dumb secrecy policy around drivers (just the first example on top of my head, examples abound).
Secrecy and making your customers pay for tools is dyed in the DNA of these people and it is going to take a very long time for them to understand the economic advantage of openness.
It took MSFT almost 30 years to finally understand the lesson that giving away dev tools for free (e.g. Visual Studio) was a competitive boost.
Why aren’t there any open FPGAs or at least more Open FPGA tools? Why are vendor FPGA tools so huge, terrible and hard to use? Open FPGA tools are better and the way to go! etc.
In one of Dr. Cutress’ questions he states and then asks: > … they're just hard to develop for. You need to know how to use them before you use them , which sounds like the wrong way to learn how to code! What exactly is Lattice doing to kind of ease that transition for people who may understand software, but are kind of new to the hardware?
Why is this? What can Lattice do?
It’s because one does not “code” an FPGA, they design a microchip and that process involves a lot more than writing code. It is pretty hard to do right. FPGA is on the spectrum of VLSI microchip implementation technologies. That’s why they compare FPGA’s to ASICs in the interview.
Don’t believe me? Look at this article: https://www.tutorialspoint.com/vlsi_design/vlsi_design_fpga_...
So in general the progression is FPGA -> GA (Gate Array) -> Standard Cell ASIC -> Full Custom ASIC
FPGA development is microchip development. It requires a great deal of tacit knowledge, experience and a background in electrical engineering and digital design and a number of other skills to do well.
In order to develop open tools for these devices most of the devs in the community would have to have a lot of this knowledge and experience and most if not all of the FPGA vendor’s IP on all of their devices in order to work on an open tool chain. In the end an open tool chain will do little to alleviate all the pains of the chip design process anyway so it really isn’t worth the effort to make open tools. It is way easier to just use the vendor’s tools once you know what you are doing. Most of the tools have gotten much better in the last 20 years.
That is why you will not see open tools for anything but the smallest and simplest devices that can be reverse engineered.
IMO, the best thing lattice can do for someone who doesn’t have any experience with the technology is to point them to the Lattice Partners program to find an expert to help.
I am probably not making any friends here by saying this, but I welcome any counterpoints we might argue together here.
It's a decent overview of Lattice's business and some of their applications. Nothing too technical. A shame Ian didn't ask about open source toolchains.
Turns out Lattice bought Silicon Image in 2015, then turned around and sold off the HDMI portion of the business to another company I've never heard of, which was again sold - to Analog Devices.
Huh. Silly me for not paying attention.
But I really don't blame you at all. When I write for myself, I try very hard to self-edit, but I still leave all kinds of small silly little grammar/spelling mistakes in.
I really did like the way you setup the interview and the questions you ask were pretty on point, so don't take this negative feedback too strongly.
> One of the things with FPGAs - I get a lot of feedback for is that they're just hard to develop for. You need to know how to use them before you use them, which sounds like the wrong way to learn how to code! What exactly is Lattice doing to kind of ease that transition for people who may understand software, but are kind of new to the hardware?