An interview with Stefan Schippers (Part 2)
An interview with Stefan Schippers, Creator of xschem. (Written Version)
CG: What kind of companies are you using xschem now?Â
Stefan: There are three or four companies that are actively using xschem. One is a company writing radiation hard net chips for space applications. One in Canada is using xschem for developing sensors. So these are small startups who cannot afford the huge price for cadence licenses. And a funny fact is one of the companies, they were really angry that cadence was not supporting old database formats. So they said, if we need to switch, we want to switch to something that is open. And not only the program must be open, but also the file format must be open. And since the file format is just text and is documented, I don't think that I will ever be developing a new version of X scheme that does not support the old format. This was a good motivation for me to continue on this track.
Big companies don't have these kinds of problems. They just want some big software maker, so they can blame them if something doesn't work. But small companies have a different budget and they do care much if there is an open source solution if they find it useful.
CG: Now that xschem has these capabilities and is now being used by companies doing space applications and sensors, what do you see as the future of the program? Are you going to keep revising it ? I mean, you already have one developer, do you plan on getting more and expanding it even more?Â
Stefan: I have done a lot, a lot of additions in the last year, for example. The program can now handle multiple tabs, multiple schematics. Previously, since the program is very small, the approach to handle more schematics was just to launch another instance of xschem. Now, you can run one process, two processes, three processes. And I think it's very useful. This looks like a small change, but when you program this, you need to do a lot of stuff. You need to avoid the global state in the program because you have multiple global states. So you have to reformat the program and correct a lot of things. This was a huge effort, but it makes the program much cleaner.
Another addition I did is the ability to view simulation data. So the graphs, waveforms in the schematic, because as you said, there are no good analog schematic tools in the open source. And I can add, there are no good analog waveform viewers in the open source world. .
If you now do a simulation with xschem, you create a net list from the schematic, you run the simulator and then you get back the simulator data directly into an xschem graph.Â
For the future, for new features, I am more focused on making the program easier to use for new users. There is of course, a learning curve. It's a complex program, it's not a push button. So for now, I am focused on attracting new users and making life easier. So you said that the digital and analog designer life is already complex enough and these people don't want to spend hours configuring the program. And together with SkyWater, we are trying to automate the process and trying to make the schematics portable. So if I send a schematic to a friend on a different computer, it needs to run on that computer with the least possible modification. That means avoiding absolute path locations in the files, stuff like that, and leading all the system dependent data into a configuration file.
CG: And for, for the future you mentioned you're going to do some videos and tutorials? Is that something you think you're going to expand on more with maybe examples and stuff? Cause that, I think, is a big part of what open source is missing is there's not a lot of really good tutorials and videos, especially from the actual developers. It's pretty rare to see.Â
Stefan: There is one user, who is an electronics professor, and he has done numerous sets of YouTube videos about xschem. I plan to improve the documentation, as I said before, because it's mostly based on the user feedback.Â
I am also presenting xschem at The Free Silicon Conference, which is being held in Paris this year, after two years off because of the pandemic. I will take this also as an opportunity to update and improve the documentation. The documentation is huge, there are numerous files. So whenever I change something in the program, I need to go back through all the docs and verify if everything is still up to date. So it takes time. In some cases, updating the documentation takes more time than updating the program.
As you probably know, developers are more focused on their software and they don't like doing the documentation because it is boring. But if you want your program to have success and to be used by the most amount of people possible, the documentation is the most important thing, together with error checking and not crashing.Â
CG: Is xschem a full-time job for you right now or are you still working as a chip designer?Â
Stefan: No, I am not working for micron. I'm working from home. I have some personal projects. I am supporting these small companies and I'm just giving advice to these companies because after 26 years designing memories, it was a little bit too much for me. I needed to change something. And I got a very interesting retirement offer from micron. And I took this option to get a better work life balance.Â
CG: Originally, did you want this to be more analog focused? Was that one of the goals in the beginning?
Stefan: Yeah, in the beginning, if I'm talking about 2000, no yeah, even before. We were not using that much logic synthesis as we are now. So it was more analog, even digital schematics were often drawn by hand .
But in the very first project I was involved in, there was no luck at all. So there was no logic synthesis, but soon after we started to use logic synthesis for the digital part. And now for the memories, there are two worlds, the digital part, which is from hardware description language to GDS, all the way down to the layout, fully automated.
While analog is still done mostly by hand in schematics. So you have your schematic sheet and yeah. And mixing the two things together is the challenge, because in some cases you want to have a digital simulation and you have to model the analog parts such that the digital simulator understands them.Â
CG: And speaking on kind of cadence and everything like that, I know that obviously the end goal of open source is to make them at the same level of performance as cadence and synopsis. Do you think that's going to be able to happen? Do you think xschem or other open source schools are eventually going to close the gap and be at a performance level of a tool like cadence or synopsis?Â
Stefan: I think it has the potential to close the gap with more complex software like synopsis or cadence for schematic. But for digital systems you don't even use schematics. So it's not very useful for that, but if you have for example, a Sigma Delta system, all this kind of stuff can be done in xschem .
CG: The reason I ask those questions is because it's kind of crazy to me that, just you by yourself can create a tool that is maybe not at the performance level of cadence, but is getting close, and has a ton of similar capabilities. And cadence is a billion dollar company with a lot of employees.Â
Stefan: Yeah, cadence is a billion dollar company and it's also probably a billion lines of code maybe.Â
And compared to most of the projects I see around, it's not that big. If you take a NG spice, the simulator, I think it's 200,000 lines. So 35,000 lines for xschem is quite small.Â
CG: That's surprising. I can't believe it's only 35,000.Â
Stefan: And it's, I think it's 95% C code, let's say 90% C code and 10% TCL. And some other scripts around them. So, it's very small because I want it to be very fast. If you create a 1 billion line script, it cannot be fast.
CG: I mean, I've never heard someone say fast and schematic program in the same sentence, so it's pretty interesting to see something like this.