The Growth of Open Source Chip Design with Klayout
A revised transcript from our interview with Matthias Kofferlein
Colby: I wanted to start in the beginning with why you started K layout and what were the goals in the beginning? Because a lot of the open source tools usually start as a project that people use to solve problems that they have personally with some of their work and everything.
Matthias: I hope it's not disappointing, but this is exactly how this tool started, basically. I used to work for Qimonda which was a memory company, back then in 2004, five, something like that. They were only doing memories and so they did not spend a lot of money on licenses. So the tools we had were limited. My job was doing physical layout in a sense, so software development, plus physical layout. I thought I would apply my knowledge to building the tools I would like to have. So this was the initial motivation. You want to learn, you want to apply your knowledge. And in my particular case no one was interested in such a tool inside the company, so they wouldn't spend effort on developing such a thing when you can buy it.
Colby: What year was that?
Matthias: Before the financial crisis, 2008. Because this is when the company went bankrupt so I think it was like 2005, six, something like that.
Colby: And what did the open source tools look like at the time for layout, especially analog, cause even now there's not many good analog tools or tools that support analog.
Matthias: I think essentially there was only magic and static electricity, but not much else. Xschem was already there, but I didn't really investigate at this time. Whether there's a lot on the market already, they were small, a couple of small projects, but they were not well maintained and performance wise, they were pretty disappointing.
At this time, my particular concern was that we had pretty huge files. Because we went into a 14 nanometer node. You had pretty large file sizes and I couldn't use any of the existing free tools to do anything.
Colby: And did you do this individually from the start? Developing it?
Matthias: Yes. To be honest, I cannot really remember how it actually started, but it was like, you start with an experiment, then it turns out to grow, then you think it's, it might be useful, then you develop it on your own.
Then, it took two or three years until it was major enough. So I put it on the net. That was pretty boggy, that version and slow. And then people discovered that they contacted me and I felt it's time to get more involved. And actually during the financial crisis I considered making a business out of that, but I dropped this idea because of such level entry. And as a single person player, you cannot really do a business there; it's too specialized and people would just buy mentor or cadence.
Colby: And for the development part in actually creating the software behind everything, because software engineering is very different from hardware engineering. Was the software development part difficult for you? Or are you a software engineer by trade?
Matthias: Yeah. I worked as a software development engineer and in the past I did some software engineering. But originally I studied physics.You need some reasoning, some logical thinking, right?
What I think is important is, you need to have a vision, the path you want to follow and the goal you want to achieve. And this is easy for me as a single person, because I know what I want. I think that it’s rather underestimated how difficult it is to follow a path consistently and try not to deviate too much. Try to keep the big picture in mind. Try to focus on things like that. And it's far easier for me as an individual when I know what I want to achieve.
Colby: When it first got really popular in the beginning, who was jumping on board, was it mostly other individual designers and developers? Or did any companies start to get in on it early?
Matthias: Yeah, mainly layout engineers like me. For companies, usually people who had some experience. NXP, for example, apparently they had a culture where they were actively looking outside for what's going on, that was my impression.
I didn’t know this company as an insider, but I was contacted from different sides by NXP and they didn't offer money or support, but they showed interest. That motivated me and was very useful for me initially.
Colby: And I see that a lot of companies in education use K layout, because it's one of the closest tools to being at the level and look of cadence and synopsys. Did you try to model it close to cadence in those tools? Or were you just trying to get the capabilities that you needed for your projects?
Matthias: In general, what cadence offers is much more powerful of course. And it's well designed. So what they now expose is a very nicely designed and consistent architecture. And this is not something that K layout actually offers. So it doesn't integrate schematics. For example, it's a pure layout tool. If I really would like to replace cadence, then I know that I have to spend a lot of effort in rebuilding such a similar ecosystem.
And the scope initially was a different one. It was not about layout, but about visualizing huge data sets. And that is technically a different requirement. And cadence cannot visualize these. It's just awfully slow, would not display properly and so on.
Given that background, it doesn't model cadence. But of course there's an overlap and you can use it to do layout, but you cannot, for example, link it to a schematic. Of course, you don't have virtuals or excels or you don't get nets highlighted and things like that. You don't have a program as involved, so it's not really cadence, but it's part of that.
Colby: And if you wanted to make something like cadence, they've used hundreds of engineers, so to do it by yourself, it would probably be a lot of.
Matthias: I don't know how many engineers Cadence actually employs. I think the core team isn't that big. They do bug fixing, but they have maintained the same architecture over decades now. Which is of course good for people asking for backup compatibility and sustainability.
And of course it's good for cadence because they do not have to spend money on such basic work. On the other hand, you feel that cadence now is aged, right? It's major maybe, but it's also aged. And I actually believe that if you would do that from scratch, you wouldn't need hundreds of developers.
Maybe if you take a team of people who do it from scratch with modern tools and modern frameworks and modern languages, they would actually be capable of redoing it.
Colby: To see an open source one would be really cool.
Matthias: The problem I see here is that maybe it's legally risky because you don't know how much is actually patented. So it's not good advice to rebuild something that is available, and cadenced managed to tie people quite closely to the ecosystem, because it's not compatible with anything else outside. It's not impossible to redo, but I just don't know whether it's a good idea.
Colby: Speaking on the beginning of K layout and being a developer of an open source tool, especially an individual one. You're responsible for the maintenance and helping people that are having issues. Now, there's people all over YouTube and GitHub that are making tutorials for klayout. But in the beginning it was probably difficult to develop the tool and then have to do maintenance and help people learn how to use it.
Matthias: The community isn't that big, so it did cost me a lot of time. And I set up this forum that people still use. I consider, from time to time, doing tutorials, but It's tedious. And you have to make video recordings with good quality, which is actually challenging.
So I didn't do this myself, but the forum and the documentation I wrote. This wasn't so much effort. I felt that there was a lot of positive feedback which gives you a good feeling about what you do, and for me, that's payment enough.
But I think you are right. Now it's actually growing and I feel that it could grow a lot more. And there's a point now where I'm happy that people jump in and take over these kind of let's say, add on activities. I feel that right now it's going to become a community project rather than a single person activity.
Colby: Which is really cool to see the community grow and for the documentation part, because klayout has surprisingly good, very good, documentation in terms of open source tools. Did you always try to keep it to a really high standard or did you go through and add a ton of stuff when it started to get really popular?
Matthias: I mean, I felt that providing good documentation reduces your efforts and one on one support, and it probably did. To be honest, I think the documentation, in parts, I'm pretty proud, but in parts it's just too little. It would need a lot more explanation and examples and so on.
Whenever I created a new feature, I also tried to document it at least well enough so people would be able to use it and give feedback. I also get other feedback, people saying I looked everywhere and I couldn't find the answer to my problem. I'm not sure whether they are just too lazy to really look everywhere or whether they really don't understand it. But in general, the feedback is positive.And I still try to keep the documentation effort lower than the coding effort, so that's prioritizes code still.
Colby: It's really cool to see klayout being taught and learned at universities because open source is helpful with education. Have you seen a lot of or been reached out to by schools and everything and seen it being used at a bunch of universities?
Matthias: Yeah, of course. Sometimes you get requests from teachers, But usually they tell me that they are preparing a course. They would ask for certain advice or they encounter issues when they have 50 students, and some of them have special problems because their device isn't capable of doing this or that.
So I get feedback of that kind. But what is really interesting is I was once doing an interview with people in India because they wanted to hire engineers there. And some of them told me they know me already because they learned layout at, in university or at school by doing K layout.
And, you go to India, one and a half billion people and they know you. So that's actually pretty rewarding.
Colby: And off of that, is this your full-time job now or are you still working full time?
Matthias: I'm working full time as basically a physical implementation engineer, but on a close to MOSFET level. I'm not a designer, so I'm not doing digital or analog design, but what I get is the output of the design flow. And then it's about making masks and doing your final physical checks.
And also what I'm doing most is supporting technology integrators or technology developers, getting their features on the masks. Pretty physical work in that sense.
Colby: For everything that's happened with K layout and the popularity and how it's grown over time have you seen, especially on the forum and everything, and I saw that at one point there were thousands of downloads a month. Especially now with efabless and everything, do you see it growing even more?
Matthias: I haven't checked recently to be honest. I try not to track people and it's also difficult because open source is always distributed for many terms and I don't know how realistic that is.
Colby: Yeah. It's really hard to keep track with open source.
Matthias: If it gets published as a package Ubuntu, for example, then people would rather use that instead of downloading. And I don't want to track people by checking IPs and so on. So I don't want to do this. It's a matter of trust. But I feel that there's a lot more traffic in the forum where people can ask questions. And I see a lot of forks and side projects popping up and. And people creating pull requests and so on. So this has actually increased. And there's a lot of connection to open road and open lane and SkyWater of course. And I'm in touch with a couple of these guys mainly in terms of advising them or bug fixing.
Colby: Are you doing major releases still or just mostly maintenance now? Because you've been developing klaoyut for quite a while now. So is it mostly just bug fixes or are you still doing major releases of it?
Matthias: Yes. So the answer is yes. There are some big topics like people, for example, asking for parasitic extraction. So where you generate resistance, receive values of resistance values from layout and capacitance values and annotate net lists with that. I think this is feasible, but it's not my field of knowledge, to be honest.
And that's something I have in mind. Basically for the future, I cannot promise anything because I do not have a real roadmap here, but I think this is something that, with the proper connections and support, maybe knowledge sharing with others. It could be a feature which is, the next to come, but it's not a, it's not an announcement in that sense.
And there are a couple of other major enhancements to, in particular, if it comes to verification of SkyWater layouts. I think there's a lot which can be improved. Performance can be improved, accuracy, and new features being added. Maybe also, in the direction of forecasting analog layout.
I think there are many ideas, and I still pursue some of them, but it's too much to do everything that people request here. But it's not closed. It's not maintenance mode only. It's not bug fixing only. But of course, bug fixing is a major part.
Colby: For sky water, or even other fabs that klayout has been used on, have you had to go in and make specific changes and revisions to make it compatible with different kinds of processes?
Matthias: So far, it was not necessary because they're using an ecosystem which comes from cadence and mentor and of course they are compatible. Their design system wants to be compatible with these tools, so they cannot build in features that cadence or mentor doesn't offer. And that's why they can't confine themselves to design rules, for example, which can be implemented with mentor and mentor, it's an amazing tool I need to say. But the functionality is limited to the standard features and that's why they did not require or request something beyond these standard features.
And Klayout offers, not everything, but let's say a reasonable subset of calibrators. And so they can use it in a sense. Performance is not as good, I need to say, but it can be improved hopefully. But so far, there was no need for extended features here.
Colby: I also wanted to touch on the upcoming conference, the FSCi conference, the one in Paris, because you're one of the organizers of that. I wanted to touch on that one specifically and how you're involved in this community because it's a pretty small community, but it's grown really fast.
Matthias: Yes. The involvement, this is not the first time we’ve done it. We did it in 2019. And initially, there were a few people that were contacting me and it was very small. I attended and it was a nice event, I need to say, and I felt that the people there had the right mindset.
So they were looking for open source software specifically. And they were mainly driven by the need for education because they were all from universities. And I felt quickly connected with them.
And a year later we extended the circle somewhat and suddenly there were 50 people, and this was a really nice gathering. And by coincidence, at this time also, the whole sky water idea popped up, but then the pandemic came. And now we are trying to reboot. But honestly, times have changed a little. So now we have sky water. And there's a lot more competition I'd say. But still we expect about 50 to 60 people to gather here or maybe even more. And I hope it's going to be a nice community event.
Frankly, Europe is not quite the center of this, of the semiconductor world. And it's quite a small community, in fact. And in the end, I know most of the people who are active in Europe, but Paris is a nice place to go so maybe this is an incentive.
Colby: Pretty much every tool that's available, its creator and developer is speaking. Were you part of getting all that stuff together? What was your role in planning the event?
Matthias: I think my main contribution was probably putting the banner on my website and this affected a lot of people. The main organizers did all the work of contacting people and asking them and inviting them.
Colby: Yep. And I saw your talks. You're doing a couple on Klayout and one of them is, the workshop. What's your plan for the workshop and the tutorial?
Matthias: My plan is to present a couple of frequently asked questions. Which I'm going to take mainly and from forums. I’ll try to give some answers to them in a way that people learn how to solve their own problems. For the tutorial, it’s just one hour so I cannot do a tutorial in one hour, but I want to motivate people to ask questions, not to be shy. And also tell me when they have a particular problem. I think that's eventually the message I will try to convey here.
Colby: And for the tutorial and workshop, have you done something like that before? Because as a technical engineer, it's really hard to explain technical programs and fundamentals and theories. This community's good because they're pretty familiar with the tech already, but have you done workshops like this before? Because it seems difficult to explain a tool that has this many capabilities and is this technical to a lot of different people.
Matthias: If you talk about trainings where you present something in a step by step introduction, I haven't done these so far. My experience is that people like to try things, and then once they are stuck, they approach me. And this is exactly what open source is about. There's no barrier, you can just install it and try it yourself. And if it works out of the box and people can already have some success or some first impressions, they will start just using it without any training.
When it comes to training, it starts becoming necessary if it's about special features. So when they master the entry level and they want to do something else. Usually, this is when they have particular questions. And that's why I think the FAQ format is maybe one way to address the interests of advanced users. I'll see how it works out.
Colby: It's helpful now that there's a ton of different tutorials all over the internet for Klayout.
Matthias: Entry level, I'd say, but I think I don't need to explain to people how to draw polygons.There’s YouTube videos about this, but when it comes to how to tailor the spice reader to read your particular spice dialect. That's not something where there isn’t a YouTube vivideo.
Colby: Cause that's not really entry level.
Matthias: Yeah. I expect that most people there have some knowledge and others, many of them, I'd say that they're experienced already.
And I think it would be boring for them to listen to an entry level video. On the other hand, I understand that there will also probably be some students who have basic questions. I hope that we have time for discussions and I can tell them. Maybe next time I'll offer a basic training session.
Colby: And I'm glad you brought up the open source stuff. In the very beginning, I know you mentioned maybe thinking about turning into a company early on, but it's hard as an individual and choosing to go open source, because there really aren't that many open source tools, especially with these kinds of capabilities. Was that something you knew you wanted to do was make an open source tool at the beginning? What were the motivations to choose to be open source instead of a closed source tool?
Matthias: That’s a good question. If you work on your own you never know what level you are on. You can be content yourself, with what you did, but it's a challenge. So open source is definitely a challenge and it gives you a way to get feedback quickly because people will just use it.
But there are always people just installing it and trying it. When you do something on your own, I felt that it would just lead me to doing things myself, without exposing it. And finally I would never know whether it's good or bad or if someone wants to use it or not.
And as I said, for me, it's a kind of challenge. This is what motivated me initially. And once I got all this feedback, in particular the positive ones, then the motivation is to help people. And in the end, if I see that people are being educated with this tool, then it's also a way to improve the world a little bit. If it's an option for Indian students to learn, then it's hopefully of some benefit.
Colby: Just a side point off of that, I've talked to a couple different developers that are pushing projects through efabless in countries like Pakistan and India, and they can't get the cadence license or synopsis license. So tools like these are such a huge help for them.
Matthias: There are many countries, it's not just India and the east. It's also Africa. And this is the kind of feedback. Egypt, for example, is pretty active in, in terms of education. And I believe this is also at least partially due to the availability of open source today.
Colby: That's pretty much all I had for today. This was awesome.
Matthias: Thanks. It's maybe different from when you have a startup founder, they would probably talk differently. Did you already do a lot of interviews with developers or software open source developers?
Colby: Not too many real open source developers where everything is open source and, especially with a community like this. It's really cool. The more people I talk to, the more companies that are becoming open to using them because they're so well maintained now. And there's so many different ones to pick from that are quality tools.
Matthias: I need to mention something here. Maintenance of open source tools is actually a business model, right? Let's say the owner of an open source tool still has the ability to withdraw the tool, then it's difficult. But with GPL I cannot withdraw anything and I cannot prevent anyone from making money with that.
Which I don't want to, but eventually someone could sell Klayout and offer a maintenance contract with that. And this would then leverage the tool to a professional level that's also acceptable as a production tool for industry for example, redhat does this.
They take an open source system. Then they improve it. They certify it and then they sell it to banks who can do their financial business with Linux. This is actually a business opportunity.
Colby: Yeah because maintenance is really difficult for an individual developer to do so if you had a team, you could really improve it.
Matthias: Someone generating revenue could also spend development resources in contributing or doing maintenance or just doing testing, or improving documentation or giving training.
Colby: I'm glad you brought that up, because there are a lot of ways to make open source into a business.
Matthias: But it is a business model and eventually, when the code is GPL, the code is available to everyone which makes every human on earth a potential supporter maintainer. So that's incredible. So it's not a cadence organization, which is the only one who offered to make such an offer. Open source means almost 10 billion potential maintenance supporters, and contributors. That's how I see it. That's why I actually love GPL as a license because it doesn’t create a risk for someone engaging.