Category Archives: Daily Scribble

My random thoughts of the day.

DAC 2010 Technical Report (Day 1)

Today is the report of my first day in DAC. I signed up to a full day technical workshop Choosing Advanced Verification Methodology. After the workshop ended at 3:30p, I managed to checked out a few companies in the exhibition floor Vennsa Technologyies, Agnisys Inc and Veritools

Advanced Verification Methodology

The workspace is smaller than I expected. There is only about 20 attendants. It started off with a keynote from Brian Bailey, a verification consultant, on the latest trends in verification. Assertion and ESL seems to be the theme of the day.

We finally see formal verification comes out from academic research and put into use by the industry and developing a good use model. There are 7-8 formal tools venders in the market right now, but looking at historical data in the EDA industry, no matter what previous technology, the market is only big enough for 2 to survive.

ESL is the latest buzz word. The word has many different meaning but basically it means where software and hardware comes together. To verification, ESL means we are building reusable testbench with different abstraction layers. Starting from the top with TLM model to verify the algorithm, then push down to verify the architecture, and then the RTL implementation at the very bottom. TLM 2.0 is the new industry standard and pretty much sweep aside all proprieties prototypes from different vendors. TLM 2.0 still lacks synthesis and no hardware/software interface.

Currently, many people model ESL in SystemC, but both SystemC and System Verilog need a few more revision to fully support ESL. The new ANSI concurrent C/C++ coming out this year many turn SystemC into a obsoleted branch of C/C++. High-level synthesis, C to RTL compiler, is almost an ESL enabler. It separate the architecture from behavioral description. The shift from RTL coding to high-level synthesis would be as disruptive as the shift from schematic capture to RTL coding.

Constraint random generation is a challenge in ESL verification. Current tool does not understand sequential depth and can’t constraint across sequence. Functional coverage is broken. It is merely isolated observation not necessary reflect the verification progress. We need a different metric to provide a direct measure on verification closure.

In ESL development, management will be a new challenge. Now we have to develop the hardware and software in the same development cycle, there will be conflicting schedule between the hardware team and the software team. Communication among different team and clear interface management at the partition between software and hardware implementation is the key.

In the next few years, the speak predicts there will be more research and probably technology break though in these areas: specification capture in verification, sequential equivalent checking, intelligent testbench, assertion synthesis and behavioral indexing.

After the keynote session, it is customer panel. The panel guests are Intel, ARM and nVidia. The ARM and nVidia are assertion expert, the Intel guy is more on ESL. It is Q&A session, but nothing special, the guest only talks about very generic things. They tell us what they do but don’t they us how they do it.

Jasper has the next presentation together with nVidia and ARM gives customer testimony. They talked about their formal verification tool and introduce basic concept like full proof, counter example, partial proof. There are quite a few neat examples of formal verification, like generate an input sequence for a given output trace, answer urgent customer question on whether something is possible in the design, verify dead lock/live lock, checking ‘X’ propagation. Both ARM and nVidia has dedicated assertion team and they said that is important to the success in using assertion in verification.

Synposys presents new updates to VCS simulation. They close the coverage to constraint loop with the Echo testbench technology. It is similar to what Cadence has and it is limited to the coverages that has a direct relationship to the constraint VCS finally has multi-core support. I think Cadence already it in IES 8.2. We should look into using both technologies for Digi. We should work with the CAD group to set up special LSF machines reserved for multi-core jobs.

TSMC talk about its Open Initiation Platform (OIP) for ESL verification. The virtual platform enable hardware/software co-simulation. The testbench is build from the top-down approach. Start with ESL TB to verify the algorithm, then ESL SoC TB to verify the ESL mode, then add cycle accurate adapter to the ESl model and finally the RTL testbench.

Mentors talks about ESL testbench and present a success story of TLM to RTL synthesis verification. They claim the high level synthesis flow save them lots of time and use the same testbench with different abstraction from top to bottom.

There is nothing new in Cadence’s presentation. They just show how vPlan fit in ESL flow.

Vennsa Technologyies
It is a small company in Toronto based on the research of a prof. from U of Toronto. Their OnPoint debug tool is pretty neat. It is an add-on to the simulation help the designer pin point the bug. Once you have an assertion failure, you can fire the OnPoint GUI. The tool will back trace the logic cone, narrow down and suggest where the bug is about. You can also start the back trace from a given value on the output pin at a given time. I played their demo for almost half an hour and it is a very handy tool if it works as advertised. The idea behind the tools sounds and I think we should evaluation the tool.

Agnisys Inc
This company has two product: IVerifySpec, a web GUI replacement for vManager and iDesignSpec, a half bake solution similar to RDA.

IVerifySpec use SQL database to store the vPlan, but it does not support UCD directly. It has to translate the UCD to an XML offline and import to the database. There is a few nice feature in the GUI, like heat map, traceability matrix, some charts and graphs looks like Google Analysis. However their tool is very immature overall, it does not support multi-level hierarchy in requirement specification, no revision control and data entry via the web interface is very tedious and user unfriendly. I should simply ask Cadence copy those nice report feature into vManager.

iDesignSpec sounds good on paper but the implementation is awkward. You enter the register specification in Word using some funny plug-in. Then the plug-in will generate PDF, HTML, XML, VHDL, OVE, C++ files. Somehow it is the exact opposite of our RDA flow. We enter our register description in XML and generate one thing at a time using scripts. The format of their word plug-in is very ugly. The code and PDF file generated by the plug-in is very primitive. I would say even our old ECBI generator is better than this tool. The only thing useful I learn from this presentation is there are industry standard for register description, SystemRDL and IP-XACT. Maybe our RDA tool should support industry standard as well.

Veritools

Their flag ship product is Veritools Designer. It’s basically a Debussy Verdi clone. It can view schematic and waveform, source code debugging. They claim their tool is very fast and only cost 1/4. I am always skeptic about those claims and I don’t like they use a their own waveform database format. It means simulator has to dump another waveform through their PLI. The GUI is fast but the design in the demo is not very big. The GUI is quite primitive compare to Simvision and they can’t beat the price of Simvision which comes free with IES. I do agree Simvision is a bit slow but I think investing in faster computer with bigger RAM can solve this problem. They have an add-on tool called Veritool Verifyer. This tool is kinda dumb. If there is an assertion failure, it read in the waveform and let you to test changes to the assertion code without invoking the simulation. I don’t think it is very useful. When an assertion fail, how often it is due to RTL bug and how often it’s just a faulty assertion?

DAC 2010 – First Impression

This is the first time I am going to the Design Automation Conference (DAC) conference or any industry conference. It is really an eye opener for me. When I first started working in PMC during the dot-com bubble days, the company promised send us to a conference every two years. Unfortunately before my turn to go, the bubble burst and the company is on survival mode for almost a decade. Finally, we are back on the growth track and the company has money to invest in developing the employees and budget to send us to industry conference.

There is a few reason I picked DAC to go. First, it is the biggest conference of the EDA industry. It has 3 days of exhibition and 2 more days for tutorial and workshops. You can see everything under the same roof, all the tool venders, 3rd party IP provider, the big names and new start up that you never heard of. Second, there are many workshops and tutorials sessions specified for verification, so I can learn what’s new other there, what other companies are doing. In fact there are so many interesting sessions that I could not see them all. Last, the conference is in Anaheim, right next to Disneyland. I am flying Pat down here and spend a weekend after the conference as a mini-vacation.

The latest technology presented by the exhibitors are amazing, but I am equally amazed by the registration system. After you have registered on-line, you can pick up your badge in the registration desk. The process is very smooth, just scan the bar code and your card is printed right in front of you. The card has built in RF chip. You no longer have to hand out business cards to exhibitors, they have a cell phone like device scan your card and print out your information automatically.

There are lots of freebies in DAC. It’s only the first day of the exhibition, I only covered 1/3 of the exhibition and I already got the following freebies: 1 backpack, 3 T-shirts, 4 balls, 2 highlight pens, a measuring tape, A battery powered cell phone charger, a pair of waist band and a book “The ten commandments for effective standards”. Other than freebies, there is free beer. Last night we have the kick-off reception sponsored by Intel. Tonight I went to the Denali party in Disney Downtown. Although, there is the beer is bottomless, no one is abusing the kind offer and got drunk. It is an industry conference after all, you don’t want to embarrass yourself in front of potential clients and employers. The industry is a small world after all.

I am looking forward to the rest of the week. I am going to write about what new technology I learn in DAC every day. Stay tuned.

Sears Stars on Ice

I have watched figure skating on TV during the Olympic games, but it is the first time I am watching live figure skating. Olympic figure skating ticket is too expensive, Sears Stars on Ice features Olympic figure skaters, like Joanna Rochette, and a it only cost $45. The skaters seems more relax in the show than in the competition. I suspect they are saving their best for the competition and I only get to see the safe moves.

I never watched figure skate seriously, I have only watched the highlight on TV. Watching a live show confirmed my belief that figure skating is boring. The first few skaters are fun to watch, but soon the novelty wears off. The movements of all skaters are more or less the same, they are just jumps, turns, spins, throws in different sequence. Watched one pretty much watched them all. The most noticeable difference among the skaters is some of them screwed up the landing and lost their balance. Figure skating is so boring that I slept thought the second half of the show.

Sports, like figure skating, with no objective measure of winners and losers are usually boring. It relies on subjective measurements like aesthetic appeal of the judges to determine the outcome, so you don’t get any excitement out of competition. In sports with objective measure, it is easy to understand the athletes, as their action are directly related to winning the game. However in sports without objective measure, the athletes’ actions do not have obvious purpose and the sport lost its meaning, thus it is boring.

The 5th Bangalore Trip

This is my 5th trip to Bangalore. Instead of staying in the guest house, this time I am staying in a new hotel in Electronics City, which is only 5 minutes walk away from the office. When I first went to Bangalore 2 years ago, there wasn’t any business hotel close to the office, but now at least 4 new hotels has opened. My hotel is acceptable, but there are still many little things that drive me nuts in the usual Indian way. For example, the room has a do not disturb light outside of the room, but somehow the room service always ignore the sign. They will ring your door bell at 7:30a giving you your morning newspaper, then ring your door bell again at 8:00a asking you whether you have laundry for the day. Like a typical business hotel, the room comes with a comfortable bed and a large working desk, but they don’t have any lights over the desk. I have to move a pole light from other side of the room to light up the desk area. For whatever stupid reason, the hotel decide only to turn on the boiler from 6a-10a and 6p-10p, if you want to take a shower in the afternoon or at night, sorry you only have cold water. Given that most flight arrive India after midnight and almost every traveler want to take a hot shower the first thing after checking into the hotel, it leaves a very bad first impression. I swear I will never go back to this hotel again.

Bangalore has changed a lot since my first visit 2 years ago. The toll bridge linking Electronics City to Bangalore is finally open. Now it only takes 15 minutes from the office to Forum Mall, compare to over 45 minute in the past. Taking the bridge costs Rs45 a day, saving 30 minute for $1 definitely worth the price. However, I suspect the bridge won’t last very long. They forgot to build proper rain drain system for the bridge. When it rains, the center lanes are floated with water as deep as a feet. The bridge opens for the first monsoon season and the pillers already shows signs of rusting and water damage. Our company even issue a warning to the employees warns them not to use the bridge during heavy rain.

Looks like the outsourcing business in Bangalore is doing well. I have met a lot more foreigner this time compare to 2 years ago. There are quite a number of German staying in my hotel and they work for different companies. We love to exchange Indian stories, whining how annoying some of the Indians are and we all agree it sucks living in Bangalore. There are many new non-Indian restaurants opened in last year, Japanese food is in fashion in Bangalore, with the number of Japanese restaurants tripled. Some 5 stars hotels start offer sushi at their Sunday lunch buffet. I am very skeptical about idea of eating raw fish in India, I don’t want to get any food poisoning in Indian. The the number of western restaurants is blooming but the quality of service is deteriorating. In the past the service was supreme, there is always a waiter available when you need one and they call the customers Sir or Madam. Now, maybe the restaurants is spoiled by western customers, their service is no difference from with what we get back home. Food and gloceries is still cheap in Bangalore, although there is an annual 20% pay increase in the high-tech industry, the rest of the people are still very poor.

I see more traffic lights and less cows on the road. The city seems to be less chaotic, I wonder it is just my illusion because I am getting use to the chaos. I hire a cab via the hotel to take me to nice restaurant every night as usual. Somehow the drivers are clueless about the address and they don’t know how to read Google map. To make sure I can dinner on time, I jumped to the front seat and navigate the driver. Since there is no street signs in Bangalore, telling you which street to turn is useless. Google map comes up with a solution, in addition to the street name it also list any landmark at the street corner. The driving instruction in Google map tells you turn right at KFC or BP gas station, pretty neat. I can’t wait to see Google street view comes to Bangalore.

Work-life balance

When I talked to my friends who are working in HK, they often complain they don’t have any work-life balance. HK people probably has the highest average working hour in the world. It is not uncommon that people comes to work on 9am and work till 8pm to 10pm. No wonder when I ask them what they do outside of work, they pretty much does not much other than sleep or mundane brainless activities like watching TV, movies or shopping. It is because their have totally drained their energy at work.

Recently I feel like I am working in HK. The project is approaching the deadline, although my own tasks are in relative good shape, unfortunately an Indian team is on fire and I am parachuted to help them out. It’s not fun being in the hot seat﹐ especially when the upper management pays close attention on the schedule, you have to work with a team of Indian contractors who are not your direct report and some of them have the tendency of running on their own.

I tried to employ the chief programmer development model to speed up the development, but there is a major draw of this approach. The chief programmer has to keep up and stay on top of the team in order to have full control. If the team is located in the same physical location, it is much easier to communicate and direct the work. My team is 12 time zones from me, so I only have one chance to interact with them per day. Giving instruction via email is very inefficient because I have to make sure everything is very clear, if they got stuck they will have to wait another day for my response. I set up office hour every night to answer their questions, combined with early morning meeting and working late to keep up with their work, it really cut into my person time in the evening. I am so exhausted that I don’t even have energy to update my blog. I rather shut off my brain and watch some TV on the hour I manage to squeeze between dinner, wife-time and work. Now I understand why the life of my HK friends are so dull, because there is no work-life balance.

When my boss asked me to fly over to India fix thing up over there. I weight the lesser evils between travel to Bangalore a couple of weeks get things back on track or have conference call every night until project ends. I rather suffer a short period of time than drag on in a prolong period of pain. Well, think about the good side, I have 12 hours transfer in HK on my way to India, I can visit my grandma and go for some brief shopping.

Chief Programmer Team

In software development, there are many different models in how to organize the team structure. I have read the Chief Programmer Team model in Rapid Software Development and Mythical Man Month and I always wanted to try it. The Chief Programmer Team model is base on the fact that the best programmer is often much more productive than an average programmer. The idea is to amplify the productive of the superstar by organizing the development team around him. The chief programmer is the brain of the team, he architect the code and write the most complex part, leaving all the supporting, secondary or mundane tasks to other team members.

I found this development model works exceptionally well with Indian contractors. I have been auditing their code does not meet our quality. I tried explaining what they need to do in email and over the phone how to fix their code, but somehow they just could not get it exactly right. It is to the point of frustration that it would simply faster for me just fixing their code. However, I only have two hands and I couldn’t not do all the work myself. I decided to try the chief programmer team model. I clean up the structure of their code and take care of make sure all the pieces works coherently. Then I wrote instruction in the code and get my team clean up any syntax error or careless logical error and most important finish the mundane wiring work.

I found I am super productive using this work model. I can focus my mind on solving the big problem and let my guys take care of the boring details. When I am writing and qualify my own code, I can work on one file at a time. Now I can work on 3-4 files at the same time. It is like I have an AI automated code generator or I have a few extra pairs of invisible hands help me type the code. I just specify the flow and structure of the code, jot down some high level instruction and the code is auto generated the next morning. I gave enough information in the code so my guys only need to fill in the blanks like in high school programming assignment. I estimate I am 3-4 times more productive by having 3-4 contractors serves as my remote fingers and low-level brain. If I leave those contractors figuring out the code on their own, they won’t even be half as productive as me.

The only problem of chief programmer team model is hard to implement in a typical N.America work environment where everyone is more or less equal in the hierarchy. No one wants to be the supporting programmer who carry out all the boring grunt work while the chief program gets the fun of creativity and all the glory. Moreover the role of supporting programmer seems like a dead end job with no career perspective, so naturally no one want to stick around doing it. The supporting programmer has to reach at least the basic competency level or he won’t be any use, but at the same time he much not be very competent or he will seek a greener pasture other than working as a supporting programmer. The biggest challenge of the chief programmer team model is find some stable decent supporting programmers.

CSIA level 2 ski instructor

I just passed my CSIA level 2 ski instructor training, which means I no longer limited to teach bunny hills, I can now teach on blue runs. I have my level 1 certification for 4 years but never teach any lessons. This year I decided to give level 2 a try and see how much my skiing had improved over the past few winters.

I took the level 2 course at Grouse Mountain. Although I am living in Vancouver for almost 10 years, it’s the first time I ski on Grouse. The weather is better than I hoped. There is not much snow base, there are brown patches on the ski runs and only three runs are usable, but at least I don’t have to ski in the rain. We even got 9cm of new snow on the second last day of the class.

The course is 3 nights and 3 days. I never ski 6 consecutive days in a row and it really tax my endurance. Most of the classmates work for Grouse ski school, except a girl work in Cypress. A high school girl and I are the only two students who do not teach skiing. The course covers teaching from linking wedge turns to doing full parallel turns. We spent most of the time on parallel turns since it is harder. The exam has two components, skiing demonstration and teaching. In the ski demonstration part, I am required to demo perfect parallels turn. In the teaching part, I have to assess my student and pin point what’s wrong with their skiing and give them drills to improve their basic techniques.

Somehow I actually pass the teaching part without much problem since it’s just good observation and then apply skiing theory. I was struggling in the ski demonstration. I was clearly below standard on the first day of the course. My balance is leaning too much up hill, my turning timing is off, I did not steer enough at the end of the time and I did not have much leg extension. For the whole week, I focused on improving my basic ski skill to bring it up to the standard. Luckily, this is the ski instructor training and I have lots of opportunities acting as student for my classmates. Since they are also working hard to pass the course, I got very good attention and helpful feedback. I think including the sessions from the instructor and the classmates, I have done the parallel turn lesson at least 15 times. I was so happy when the instructor told us everyone pass the course on the last day. The pain and sour of my knees and my back finally pays off.

Before I take the course, I always blame my old ski for my bad skiing. Now I know I have a lot to work on and I am far from the limit of my old ski, rather I am only limited by my poor skiing techniques. I always struggle on bumps because I don’t have a strong foundation. Skiing the same three runs on Grouse doing endless drills is not as fun as cruising down on Whistler, but it forces me return to the basics and work on my foundation. The instructor training is probably the best ski lesson I ever have in terms of skill improvement. Dollar for dollar, I earn more ski skill in this training than any drop-in lessons in Whistler. I even get tax credit for the course tuition since it is classified as job training!

Shopping for Piano

We are looking for a baby grand piano for our new home. I know Steinway and Sons is the best piano, but it’s way over our budget. A Yamaha is more affordable, but Tom Lee gets a fat profit margin. So I have been monitoring second hand piano sales on Craigslist and Kijiji for the past few months. I saw a very good deal, 15 years old Yamaha C1 for just $6000. I call the seller and ask to check it out. It turns out the piano is storing at a piano store, I feel a bit suspicious, thinking it maybe a trick to lure in customers, but I figure there is no harm to take a look anyway.

When we were in the store, as I expected the store owner try to sell us other pianos on floor. The store mainly carries two little known brand, Brodmann and Hailun from Chinese. The owner try to convince me his pianos are as good as or even better than Yamaha. He keep saying the new manufactures learns their skill from Europe and their piano have a European tone and criticize the Yamaha has a sharp tone. He try to demonstrate his point by playing a few notes from each piano. However I caught him trying to mislead my perception. He played his piano with a very soft touch and hit it really hard on Yamaha’s key. No wonder his piano sounds better. Pat took her turn and play the same piece of Mozart in all these pianos. I can tell the difference with my untrained ears. Estonia is definitely has richer sound compare to the Yamaha, but the sound from two Chinese brands are quite murky.

To most of my disappointment, the Yamaha is actually not a C1 but a GH1. C1 is an entry level concert grade piano, GH1 is just a Yamaha knock off made in Indonesia that does not even have a proper sostenuto pedal. At this point, I no longer trust the integrity of that shop and decide to leave. At this moment, the owner of the piano called the store and said the piano is just sold. What a perfect timing. Later that day, I found the piano suppose to be sold shows up again in Craigslist under a new ad. I am 100% sure the piano is a bait to lure innocent customer to that dishonest piano store.

Even though the piano shopping trip did not turn out as I expected, but I still learn something new about piano. The most valuable of all is I discover the Piano Buyer Guide which is very informative on anything about buying a piano. As an engineer, I don’t feel comfortable buying things that I don’t understand. Since I am not a piano player and know nothing about piano, now I feel obligated to read the Piano Buyer Guide before making a purchase decision.

My last words to those who happen to come across this blog, stay away from Heritage Piano in Surrey. Piano is probably the most expensive purchase other than a house and a car. You gotta buy a piano from a reliable source. Never deal with a dishonest piano store.

How to build a small table (part 2)

After eight week of wood working class, I have built my first table. After going through all the steps and trouble from raw lumber to a finished furniture, I appreciate all different kinds of furniture made available by modern manufacturing process. I can’t imagine how much time it will take if I have to build all my furniture myself. The cost of the wood and tools I bought plus my time, cost a lot more than the price I pay at a furniture store for a similar table.

Due to the lack of cost efficiency, I probably won’t take up wood working as a hobby, but I must confess that seeing the finishing product gives me a sense of satisfaction. I think wood working is a must-have skill for the man of the house, it the basic of home maintenance. My wood working skill also gives me better eyes in telling the quality of furniture. If I need a piece of unique special purpose furniture that is ridiculously expensive, I know I can always build it myself.

Here is the second half of my table building experience. Please see part 1 for steps 1 to 11.

12. Sand the table top to make it a really smooth surface

13. Glue the legs, sides and back pieces. Hold the shape with bar cramps.

14. Drill packet hole for mounting the top and bottom

15. Screw in the bottom piece

16. The table frame is finish

17. Cut the groove for the drawer bottom.

18. Assemble the draw with counter sink screws

19. Counter sink screws sinks into the wood to leave a flush surface

20. Cut wood plugs to cover the counter sink holes

21. Glue the plug, saw off the top and sand it flat.

22. Fasten the drawer rail with counter sink screw

23. Fasten the drawer front with bubble screw and washer

24. Slide in the drawer and the table is done!

Here is some lessons I learn what not to do in wood working

1. Don’t put much force onto the power screw driver, otherwise the wood will crack

2. Don’t drill too close to the edge or using a too large drill head, otherwise the wood will crack

3. Don’t twist the drill, otherwise the drill bit will snap.

Google 411

Whenever I used 411 to look up the phone number I need, I always feel being ripped off by the telephone company. The information is free out there on the internet, yet my mobile carrier charges me 50 cents for each call. Now, I don’t have to up with my frustration with the 411 operators anymore, here it comes the Google 411.

Call 1-800-GOOG-411 (1-800-466-4411), you are greeted with a computer voice asking for the business or phone number you are looking for. You simply say the location and business name, Google will redirect your call to the destination. No more long distance fee if you are trying to call a business out of town. Google 411 supports all US and Canada numbers but it only works in English. I tried calling my office with Google 411, it works like a charm. It can even understand my not so perfect Chinese-accented English. If you are calling form a smart phone, you can even ask Google 411 send you a map of the number you looked up.

I wonder how Google is making money off from this great service. It does not have any advertisement at the moment, but I think people won’t mind listening to a few seconds of advertisement before getting the number. I read a bit more about Google 411 and it turns out totally not what I expected it to be. Google has no intention to make any money from this service, they are not even consider selling advertisement. The service is a giant experiment to build a huge phoneme database to train their super voice recognition system. What else is better than giving a free service and get all sorts of people with different accents call and leave you their voice?