Dreaming in Code

A day in the life in EDA ...


by Peggy Aycinena


Despite the volume of press that the EDA industry has generated over the years, I'm aware of very little that has ever been written about the people in the trenches – the tools developers themselves. This is for two reasons, in my opinion. One is that developers are intense, technically trained intellectuals who may not offer the flash and dash that senior executives at EDA companies offer to the press.

The other reason is that developers constitute the crown jewels of an EDA company. The success of an EDA company is profoundly based on the abilities and creative drive of their developers. To allow developers to be interviewed openly by the press might somehow reveal the most proprietary intellectual capital of the company, that of their human capital.

Given those circumstances, I am both grateful and extremely impressed that the management of Novas Software allowed this interview to take place. It's a reflection of both the maturity of the management, and the confidence with which they view their employees. Ying-Tsai Chang is a Senior R&D Engineer at Novas. I spoke to him by phone on Thursday, November 18th.


** The Interview **

Q: What is your educational background. Is it in EE or CS?

Ying-Tsai: Actually, it's quite complicated. I had a double [undergraduate] major in physics and mathematics. That's not the background you would expect for a programmer. My PhD is also in physics, and I have a masters in ECE. So, my background is quite mixed.

Q: What computer languages did you study in school?

Ying-Tsai: Personally, I was very interested in writing software – even before I studied physics – so I studied many different languages while I was in school. Although I know a lot of different computer languages, however, the languages I use the most in my work are C, C++, Perl, and shell scripts.

Actually, that I'm that interested in lots of different languages probably makes me a nerd, so I will give you the website that is really for nerds. [Laughing]

It's called www.slashdot.org, and it's an eccentric place enjoyed by a lot of programmers, where they can discuss a lot about science and computer programming. It really is a place for nerds and [the people who go there] are very proud of being that way.

Q: So, it's C, C++, Perl, and shell scripts that are the languages you work with at Novas?

Ying-Tsai: Yes, I use all of those languages. Actually, almost every EDA company I know uses C or C++ to do their work.

Q: Do you know Verilog or VHDL, and do you do any work in those languages?

Ying-Tsai: Of course, I use HDLs. Since Novas is a debugging company, we have to deal with those languages, too.

Q: How did you learn the HDLs?

Ying-Tsai: I learned them at school. We had to write some Verilog code in some of the engineering courses I was required to take, so I learned Verilog for those classes. But I learned a lot more about the languages out in industry, because that's where you see the really weird cases. [Laughing].

Q: What do you think are the long-term prospects for the HDLs? Do you think they'll be replaced by the higher-level languages like C?

Ying-Tsai: That's actually a very big question. With the way the technology is now, I don't really see that happening soon. C has been the programming languages for software development for some years now – you also now have Java and other languages – but mostly it's C. However, C is not specific enough to use to define hardware behavior. If all you care about is time to market, you're not going to get your product to market quickly enough if you use C. I don't see the HDLs going away, at least in the next 5 years. But, that's just my personal opinion.

Q: In your work, you must frequently look at code from your customers. Do you ever notice if the code is very good or very poor?

Ying-Tsai: [Laughing] Yes, customers often need to open their code to us. Sometimes their code is awful. But if a customer's HDL code works, then it really doesn’t matter.

Q: How much of your day is spent actually coding?

Ying-Tsai: That's sort of a difficult question to answer. I guess actually writing code is about 40 to 50 percent of my time. But if you include debugging my code, it's more like 80 percent. It just takes a lot of time to do these things.

Q: Do you mean to say that sometimes your code has bugs in it?

Ying-Tsai: [Laughing] Nobody writes code without bugs in it! Nobody writes code without having to debug it! In fact, if it's not so complex that there are bugs, it's not complex enough to make it worth writing the code.

Q: How do you spend the rest of your time?

Ying-Tsai: My other time is spent on discussions and on working with people on specs for the algorithms and the code.

Q: What is the best way to capture circuit optimization concepts in an algorithm?

Ying-Tsai: Well, we're a special kind of EDA company – we're a debugging company, so we're not really looking at circuit optimizations. But to solve our problems, quite often we look at the existing literature to see how other people do it. Then we wee if there's some way we can improve on that to solve things. Then we tend to explore even more ideas [to find the best solution].

Q: How do you work with the folks who develop the algorithms to understand the most efficient way to get those algorithms coded? Do you sometimes develop algorithms?

Ying-Tsai: We develop a bag of tricks that we can offer to users with different options for them to explore to solve their problems. So, most of our R&D people are involved with coming up with the algorithms.

Q: Is it possible to have one person developing an algorithm, and one person coding it. Or is it better to have that process happening with just one person?

Ying-Tsai: Well, it may be possible to have one person with the algorithm, and one with the code. But in EDA, the implementation of a solution always has to be very efficient. So it's possible to have some people architecting the software, and others doing the implementation.

But in EDA, the implementation of a solution always has to be very efficient. In EDA, people care about performance – not just about the algorithm, but the implementation as well. Our work always involves a discussion among people about the features [we're trying to achieve] and how to implement those features.

Q: Do you ever get so wrapped up in a coding problem that you can't seem to stop thinking about how to solve it? Do you ever dream in code?

Ying-Tsai: Actually, yes I do. I know that a lot of people who do work like I do, have this exact same experience. When you have a bug in your code, or a problem that you can't solve, you just can't leave it alone. It's really terrible. Even in your dreams, you can't stop thinking about it. Even when I was studying physics, this was a problem for me.

It's actually very hard to understand how the brain works. Sometimes the answer just comes out. Sometimes I think [solving a problem] may work best at a subconscious level. So if you keep dreaming about a problem, for many people I think that is how they finally solve it.

Q: Do you ever have to get up and go take a walk to try to solve a difficult problem?

Ying-Tsai: Yes, sometimes I do have to leave the office. I walk around the block – just the usual routine – and look at the buildings. Actually, I have heard that a lot of people get inspiration this way – to help them figure out what to do next. They can think more clearly when they're out walking than when they’re inside working.

Q: What do you do next, after you find the solution?

Ying-Tsai: It depends. I probably just code the solution, but if it's a problem that's more global in nature – probably the group has a discussion about it. The discussion is always very important.

Q: What if someone else has come up with an answer that is different than yours?

Ying-Tsai: Well, there's always someway to judge [the merits of the different solutions]. Discussion always solves a lot of these issues.

Q: Do you work it out in a group, on a white board?

Ying-Tsai: Yes, we may sit in someone's office or in a conference room. There's always a white board nearby.

Q: What do you have right now on the white board in your office?

Ying-Tsai: There are a lot of different things. A list of things I should be working on, and some ideas as well.

Q: So what kind of background is the perfect background for someone to succeed in an EDA environment?

Ying-Tsai: For any person who wants to do high-level planning and algorithms in EDA, you need a complex background. And you're right, at 90 nanometers and 65 nanometers, physics is becoming more and more relevant. So, maybe to be successful you need a background in electrical engineering, and physics, and computer science. You need to understand electronic devices and have a general understanding of EDA algorithms.

Q: Do you think someone can be successful in EDA without a PhD?

Ying-Tsai: Yes, people can be successful with a masters. A PhD is more like a training to help you establish a way of thinking. I believe the most important aspects of that training is to make people resourceful in seeking information, and to make them have solid problem solving capabilities in terms of problem refinement and constructive solutions.

Q: How many people are in your group and how many of them have PhDs?

Ying-Tsai: There are about 10 people in my group and about half of them have PhDs.

Q: When you were studying in school, was it your intention to go into EDA?

Ying-Tsai: No, but I was always interested in hearing from friends who were working on EDA problems. I found the algorithms and methodologies in EDA to be very, very interesting.

When I was studying ECE, they did have special classes for EDA algorithms – things like place and route. Many schools offer courses like that, but in a class you just get an introduction to a topic and a chance to just start exploring the topic. You can't spend that much time [on such broad topics] in a class. So, if you're really interested in an area, you have to be able to dig in and study more.

Q: What was your PhD thesis on?

Ying-Tsai: The title of my Ph.D. thesis was "Computability of dynamical theories with an application to quantum chaotic systems."

Q: If it were a book, would it be a best seller?

Ying-Tsai: [Laughing] Well, I still consider it as a work-in-progress in that it points out a rarely explored direction that could lead to beautiful physics and mathematics. I believe the problem will have great importance in the long run.

Q: Where did you study to earn your PhD?

Ying-Tsai: At U.C. Santa Barbara.

Q: I understand some very excellent work is coming out of Santa Barbara these days.

Ying-Tsai: Yes, they've had two Nobel Prize winners just recently.

Q: Now that you've lived in Southern California and Northern California, which do you prefer?

Ying-Tsai: Santa Barbara is very beautiful. I lived there for over 6 years. But in Northern California, you have very clear seasons. So for that reason, it's a more interesting place than Southern California

Q: I'm very partial to Northern California, so did you know that was the right answer?

Ying-Tsai: Absolutely

Q: What kinds of books do you read to relax? Do you like science fiction?

Ying-Tsai: I don't really have any preferences. I do like to read, but I don't particularly [tend towards] science fiction.

Q: Do you read through the proceedings from conferences?

Ying-Tsai: Absolutely.

Q: Do you think that's probably pretty nerdish behavior?

Ying-Tsai: Absolutely.

Q: Do you like to watch movies? Which one is your favorite?

Ying-Tsai: I really love to watch movies, but saying which one is my favorite is really hard for me. I guess one movie I really like is Somewhere in Time. It's an old movie – it's a romance, and I guess it's also science fiction because it involves time travel.

Q: How do you learn what you need to know to do your work?

Ying-Tsai: In the EDA industry, you must keep learning because it changes a lot every year. So, I read books. I read papers. I talk to people. I read the news. Of course, I go to conferences. Meetings like ICCAD are very useful for me.

Q: How do people from industry make presentations at conferences without revealing proprietary information about technical initiatives within their companies?

Ying-Tsai: I don't think people are that open. People are not so insensitive as to talk about specific things at conferences.

Q: But if they're only talking about the things that everyone should know, what do you really learn that's new?

Ying-Tsai: This is a very hard question. People talk about the things that other people should know, but the most important thing is to know what everybody else knows. Preferably, you want to be the first to hear about it. You don't want to be the last to hear about it. [Laughing].

Q: Would you advise someone in graduate school right now to think about a career in EDA?

Ying-Tsai: Yes, I think EDA is the perfect career. There are more challenging problems in EDA right now than people can actually solve. EDA involves a lot of difficult, complicated algorithms. More so, I think than in any other area in electrical engineering. I'm still a young person in the EDA industry, but I'm hoping that someday I can come up with something that's really big.

Q: It sounds like your work can be pretty intense. How do you relax when you're away from work?

Ying-Tsai: [Laughing] I play with my kids, but usually I'm pretty relaxed all the time.


****************************


Editor's Note:
Thanks to the executives at Novas Software for making it possible to have this marvelous chat with Ying-Tsai Chang - in particular, President and CEO Scott Sandler and Vice President of R&D Yu-Chin Hsu. Of course, I extend special thanks to Ying-Tsai for the opportunity to converse with him about his work.



****************************


November 18, 2004

Peggy Aycinena owns and operates EDA Confidential. She can be reached at peggy@aycinena.com


Copyright (c) 2004, Peggy Aycinena. All rights reserved.