New post, new exclusive interview with Olof Kindgren, a Swede high/low-level developer, open-source software an silicon advocate, and director of FOSSi Foundation, in addition to occasional blogger. He also has interesting projects like FuseSoC and SERV. Do you want to know more abote him? Read on…
Architecnología: I always start all interviews with three more personal questions before the techniques: Who is Olof Kindgren? (Please, describe yourself)
Olof Kindgren: Like Joe Strummer once said, I think people ought to know that I am anti-fascist, anti-violence, anti-racist and pro-creative.
I got an interest in digital electronics (which gives me money) and music (which haven’t given me any money yet). When it comes to digital electronics, I am working for Qamcom Research & Technology and in addition to that I am involved in a lot of different projects and activities, especially around open source silicon. It’s exhausting, but also a lot of fun and I hope it can benefit other people. I like to be seen, which is probably a big explanation why I am all over the place and doing all these things. In general, I try to take my work more seriously than myself.
When I don’t work I spend time with my partner and our two daughters. I love singing. The kids hate when I do it.
AT: When and how did you start being passionate about technology?
OK: I think there were a couple of key factors that got me where I am. We got a PC at home relatively early, perhaps 1992, and aside from playing a lot of games I also started programming simple text-based games in QBasic. I remember that I could grasp the «if» statement, but it took me years to figure out how a for loop worked. The next thing to happen was in my teenage years when I came across the demo scene. The combination of technical skills and creativity there blew my mind. I desperately wanted to be a part of that scene but I didn’t have a fraction of the skills required to do these things. I remember being insanely proud when I got thanked in another group’s demo. As for my own contributions I competed a few times with some music I had written, and even won once. But that was mostly because there weren’t any other entries.
But since I realized that the demo scene consisted mostly of people like me, it made me think I could also become that good one day if I kept practicing. I’m still not anywhere near being that good, but it doesn’t matter anymore. It also introduced me to C and assembler and doing things with extremely limited resources. These are things that are still very relevant to my work.
The other part of the equation I would say is my introduction to electronics. Me and some friends realized that you could connect small light bulbs instead of speakers to our amplifiers and they would blink to the beat. We started experimenting with more audio and light setups and that got me interested in electronics. We had absolutely no clue about what we were doing and it’s amazing we didn’t burn up more stuff or ourselves in the process.
And I guess it all came together at university when we were introduced to programmable logic in the form of CPLDs. FPGAs were way too expensive for us to play with. We built a computer with a simple graphics output and that feeling of executing code you have written yourself, in your own assembler language, on a computer you built yourself and having things appear on a TV was incredible. We did some classic demo effects like xor patterns and fire. That was fun, and from then on I really wanted to work with digital electronics and programmable logic.
AT: Do you have a reference, someone who has inspired you?
OK: I am surrounded by very skilled people and their fine work inspire me to do my part as well. But I also know I got where I am today mostly thanks to a combination of luck, persistence and having a lot of opportunities to try and fail, and that this is the common case for people who become celebrated for what they are doing. Not everyone has the opportunity to keep trying and failing over again, so I get very inspired when I hear about people who fight for equality to allow more people to get the same chances I had. That makes me want to try harder to make sure open source silicon is for everyone.
OK: There’s a long history here and I’ll give a quick version. In 1999, OpenCores was created by some Slovenian students who created OpenRISC and needed a home for the CPU and all the surrounding tools and IP cores. Many years later, OpenCores was bought by a Swedish company called ORSoC. In 2010 I started working for ORSoC and through that I got heavily involved in OpenRISC and OpenCores. Unfortunately, over the years it became evident that the interest in open source silicon was quickly growing but OpenCores did not meet the demands of modern development practices and that the owners didn’t have the money or interest to do the necessary changes. This was the second time that the development of OpenCores was held back by a lack of interest by its owners and our conclusion was that this was too important to be in the hands of whatever company that happened to own the opencores.org domain. We needed to have a vendor-independent group who was interested in advancing the state of open source silicon and this set the stage for what came next.
AT: But how exactly were those beginnings of the project? Were you involved in FOSSi from the beginning?
OK: Already in 2011, a group of us, consisting mainly of the active OpenRISC developers started talking about forming a foundation with the mission to promote open source silicon in the industry, academia and for hobbyists. A year later, we had already started the yearly OpenRISC conference (ORConf) and at ORConf 2014, we sat down and started actively working on the plans for a new foundation. It took a year to finalize everything from creating our manifesto, deciding which country and type of organization to use. Deciding what we should focus on and so on. At ORConf 2015 we officially announced the FOSSi Foundation. In addition to the overarching mission to promote and assist open source silicon, we had some clear goals:
- Make sure there exist a set of licenses that are usable and applicable for digital design and chip development
- Create a community hub around open source silicon where you can meet other people with the same interest, find best practices, IP cores, tools and ask questions.
- Create opportunitites for people to meet, present their work and learn from others.
The first goal turned into the FOSSi Foundation licensing committee, where we connected people who were interested in licensing, and in some case already working on this. This year the goal of the committee was fulfilled. With the updated Solderpad license (which is now under FOSSi Foundation stewardship) and the new CERN OHL license family, we believe that there exist strong copyleft, weak copyleft and permissive licenses that work with FPGA and ASIC development.
Our second goal was realized in librecores.org. We didn’t want to host code like opencores, since everyone was already using github or similar at that point. At the same time, it was hard to find what you’re looking for on a site like github so we focused on providing a way for IP developers to list their cores or tools and make them easier to find. We also run mailing lists for a bunch of projects and our monthly newsletter, El Correo Libre, through LibreCores.
And thirdly, our conferences have been a huge success. Our ambition was always to create events with as low barrier as possible. All our events are free of charge, not everyone can travel, so we move around the conference every time to give more people a chance to attend at least once. We don’t have any acceptance criterias or selections for the presentations. We just change things around until we can make all submissions fit into the schedule, as long as it’s about open source silicon.
AT: How can anybody collaborate with FOSSi Foundation and librecores.org?
OK: Happy that you ask! Collaboration is my favorite word 🙂 There are many ways to collaborate depending on who you are and what you want. The most common situation seems to be that people want to work on some programming task, so I will start with that.
If you’re just starting out in the field and want to understand how to create silicon designs I recommend a simple project just to learn what tools are available and how they are used. One such project is project LED to Believe (https://github.com/fusesoc/blinky) which aims to blink a LED on every FPGA board that ever been made. Very simple, but provides an introduction to several tools, which can be used for more advanced projects. If you are someone who have created a tool or IP core, make sure to register it at librecores.org so that other people can find it. Whenever I need something, that’s where I look first. Adding FuseSoC support for your cores is also a good way to make it easier for other to use it. In the end we want to make it easier for people to reuse other people’s work and to create chip designs that other can use.
And finally, if you’re representing a company, academic institution or organization, we are happy to sit down and discuss open source silicon strategies with you. We see so many companies with good intentions that want to get involved with open source silicon, but haven’t really understood how it all works. Talk to us. We are here to help you be good citizens in the land of FOSSi.
AT: Building your own chip would be something impossible without the MPW services. However it is still expensive and the development tools quite inaccessible. But in FOSSi web I could read a great news about SkyWater PDK (open-source process design kit) and the possibility of manufacturing in Skywater Technology’s foundry with a 130nm node. Google and efabless will offer free manufacturing cycles in November 2020 and several opportunities in 2021 to save you a couple of thousand euros. What would you say to readers to encourage them to participate?
OK: I think Mohamed Kassem of efabless said very good things about this in the episode of FOSSi Dial-Up where he was presenting. If everything works, you didn’t take enough risks. This is a completely new thing and it’s acceptable to fail. If it doesn’t work as well as you expected, you have still learned new things and we want to encourage this culture.
Just try it. It will not cost you any money. You will still need to invest the time to take a design through the tools, and this can definitely be a difficult task if you haven’t done it before. But please try to learn together with other people. They can help you, and you can probably help them. It’s such a small number of people who have been exposed to these kind of tools before so it is expected that most people are beginners, me included. I have never taken a design from RTL to an ASIC myself before but I hope to find the time to do it through this initiative.
AT: The previous one also serves me to introduce this other question. In addition to support for open standards, promote open IP designs, etc. How can FOSSi Foundation help in terms of manufacturing (if there is any way)? I think it’s a big limitation for some designers…
OK: As things are right now, we need to focus on the things that we already do. The manufacturing part is important, but we are a small non-profit organization where everyone works for free, so it’s not possible for us right now to reach into new areas. But in the future I hope someone can address these parts as well. There have been initiatives around this, not least the Google-sponsored tapeouts mentioned before.
AT: What challenges does FOSSi Foundation face in the near future?
OK: The chip industry is very conservative. It’s beginning to change a bit, and some companies are trying out open source silicon in some way at least. One big problem here is that most of these companies have absolutely no clue how to do this and they sometimes make very stupid decisions that end up hurting themselves and gets them scared from FOSSi. So, a big challenge is finding these companies and help them understand how this all works, before they do something stupid. But they can be hard to find, hard to reach and it can be hard to make them listen. It might also conflict with their classical business model. But open source silicon is already happening and will continue to do so, so I would say that raising awareness about the coming changes to the industry is our biggest challenge. Then of course we have the same issue as the electronics and computer industry has in general. There are far too many incompetent white men taking the places that should belong to other people.
AT: How do you see the technology landscape when current silicon technology reaches its limit?
OK: I am honestly excited about this. My feeling is that the advances in silicon has prevented a lot of innovation in both hardware and software. When we stop relying on these advances we will have to come up with clever ways to work with what we have. As an analogy, look at every video game console that has been around for a long time. The games that gets produced at the end of a console’s life span often look like they run on a completely different hardware than the ones written when the console was new. This is because over time, people learn how to use the hardware more efficiently and can do new things that could seem impossible in the beginning. This is what I’m hoping for at least, that we are forced to learn new ways to use our resources more efficiently. Another thing is that I think that new algorithms will be developed with scalability in mind from the beginning because the only way to scale will be to use more computers, not faster ones. It is also expected that the cost of making chips for each process node will decrease over time which hopefully means that more people can get into chip design. More people and more viewpoints always increase innovation.
AT: You are a developer of FuseSoC. Can you explain what it is and its advantages over other tools for HDL?
OK: FuseSoC is a package manager and build tool abstraction program. The package management part allows you to create a chip design that depends on existing IP cores and automatically have these dependencies downloaded and configured for you. Just like when you use apt, yum or portage on a Linux system, you only need to specify which application you want to install and the package manager takes care of the rest for you automatically. Most newer languages have this thing built in already, like pip/pypi for python and cargo for Rust. But verilog and VHDL are old languages which hasn’t had such a system originally. Also, the way EDA tools work with verilog and VHDL are often a bit different than how software is handled, so it needs a special package manager to help with this. The other part is the build tool abstraction part, which is part of FuseSoC but technically handled by a separate library called Edalize. If you are using for example C, you probably use gcc to compile your code. You might use clang or the Microsoft compiler, but there are just a few tools that needs to read your code and it’s pretty much the same syntax regardless if you’re compiling for an x86 or ARM CPU. In the silicon world, the situation is very different. There are so many tools which are mostly completely incompatible with each other even if they do pretty much the same thing. So Edalize works by reading a common description format that FuseSoC outputs and then translate this in a way that each EDA tool can understand. Edalize currently has 25 different tool backends. Imagine having to manually create configuration files for 25 different tools for all of your projects.
FuseSoC isn’t a unique tool. All companies I have been working for that has a large library of IP cores have a tool like this internally. But each of these tools were written by someone internally who is the only person to really understand it. All new employees have to spend a lot of time to learn how to use it and there is a good chance that this tool was originally written for a very specific use case and has just grown out of control over time and the whole system is a mess. By using FuseSoC instead, there’s a much higher chance that you can hire someone who already knows FuseSoC and can get started immediately. There’s also a larger pool of developers available to help out if there are problems. FuseSoC lets you focus on your core business instead of your cores.
But even in the open source space FuseSoC isn’t unique. There are other tools like Bender and HDLMake that does approximately the same thing. I think that one thing that sets FuseSoC apart is that I never designed this to work for my own projects. From the beginning I started using it for other people’s projects. If you only work on code that you have control over, it’s very easy to make assumptions that doesn’t work when you start working with other people’s code. I constantly challenge FuseSoC by packaging new code bases which are written in a way that I could never had imagined, and this improves FuseSoC all the time.
AT: I am very interested in the EPI project. What do you think about the problem of technological dependence on Europe and the current technology wars (for example USA vs China)?
I don’t know really. Global economy is complicated. I remember when Samsung and Apple were fighting over the rounded corners on phones and at the same time Apple were still the largest buyer of Flash chips from Samsung. What I mean here is that things can work in a completely different way than what it looks like at first. I am more worried that these conflicts will hurt people than I am that it will hurt technology in some way. Still, EPI is great and I hope we can have more of these projects all over the world to bring together academics and companies to work together on big tasks.
When it comes to Europe and the chip industry I have always been most sad that open source silicon has had a long and strong history in Europe but that the European companies and governments never have shown any interest. Already in the early years of OpenRISC, around 2004, there were American companies making investments to grow the ecosystem but basically nothing from the European side until very recently. Today there exists some European tech based on e.g. the PULP work from ETH Zürich and University of Bologna but Europe could had been leading the open source silicon movement by now, given how much of this technology that originates from Europe. But again, it’s a conservative chip industry that is hurting itself.
AT: I end with a current question… EPI is based on Arm CPU and RISC-V accelerator… Do you think this and other projects are in danger because of the acquisition made by NVIDIA? Maybe is it a good opportunity for RISC-V?
OK: I don’t think there will be much difference initially. Over time, I think there will be less new designs based on ARM, but it’s expensive to switch and Nvidia will probably take good care of the ARM technology even if I don’t think they will be as interested in the licensing side. For RISC-V it will probably be a good thing. Many companies are probably more likely to at least consider going with RISC-V instead of just using ARM out of habit.
I think there is another interesting question to ask about EPI. Would they have gone with RISC-V if OpenPOWER had been opened up a year earlier? I would love to hear from the people in charge if this was considered.
AT: Tack så mycket! ¡Gracias!