rss search

next page next page close

Confusion. Problem.

Sometimes when things seem to be right yet a feeling of confusion and restlessness continues to linger over. More often than not, there exists a problem. Usually a simple problem, which is not perceivable. But there is a problem. You just cannot pinpoint it, despite it staring right in to your eyes. When you sleep, you dream of it but when you wake up, you cannot remember it. Still, it’s there, rooted deep inside you. Maybe its just you. (more…)


next page next page close So be patient. Verily, the promise of Allah is true and ask forgiveness for your fault... (40:55)”
next page next page close

a landmark day

  • After having “clean (and vacuum) the apartment” for well over a month on my todo list, I am proudly striking it out today.
  • Running perilously short on food supplies for 10 days…I finally stocked up for atleast a month today. My refrigerator was empty except for a bottle of milk (and two eggs, which will possibly remain there for another month or two)
  • My bath’s shower head was broken 3 weeks ago. I unscrewed it, kept it aside and was using the water directly from the pipe without shower head for bath. Not fun, I know. And yes, I bought  new one today. (side note: this happened with me back in Pakistan as well, and I didn’t replace it for 8 months)
  • Not only my refrigerator was empty…I had no sugar for past three days so all tea/coffee were consumed unsweetened. Got a jar today.
  • I haven’t registered with a GP (doctor) since moving in this area…been over 6 months. Woke up early to do this as well…but when I went there they told me they don’t register on weekends. Not sure when am I going to make a second attempt.
  • Also, I changed the bedsheets today..after..err..I don’t know the last time I did that

So yes, a very once-in-a-lifetime kind of a day which I hope never comes again :P


next page next page close

Typical ASIC Workflow

Recently I was tasked to recode a very small piece of hardware with some changes that will potentially optimize its present state. What seemed like a pretty easy and straightforward task turned out to be a nightmare for two days. Since it wasn’t critical I was hellbent on doing it all myself without asking anyone for help. Although it was a very small hardware unit, it involved the complete ASIC flow, almost.

I started by looking at the current operations performed by the module and made a simplistic block diagram of what is going on within it. The task was basically to reduce the area of and make it work at some new frequency i.e. the operation was required to be performed in certain nanoseconds. So, I wrote the code again from scratch with the changes in mind to improve its performance and then it was time to test it. Usually writing code is the easy part of ASIC design if you know what to do. But will it get done as you want it is a different game altogether. (more…)


next page next page close

Six Month Review

Exactly six months ago was my first ever day at a full time job. I was understandably nervous, hardly knew anything about working in a big company and had no idea about how to tackle seemingly huge design issues which I was introduced to in the first week. I wasn’t worried about the latter because that is exactly what I came here to learn.

I am probably slotted to have a 6-month review meeting with my manager soon, but I am not sure if that will happen or not because I did have one 3-month review which wasn’t really planned. And the fact that I’ve had one review meeting, I am absolutely comfortable at the thought of having the second one, if that happens now. One reason for that is I am quite satisfied with my performance so far, not top notch (I can certainly do better), but good enough. Secondly, and more importantly I am lucky to have a really cool manager, who thought I was doing well at our earlier review.

Regardless of what the company review holds, I did a quick self-review to see how far I’ve come in these last 6 months. Result: I’ve covered a lot of ground. From having absolutely no idea about environment variables in Linux and not knowing that merely selecting by mouse copies the item and middle click pastes it, I now feel at home using Linux, so much that I hardly use my Windows machine at work. Having never scripted before, now I am quite proficient in Python, know that TCL is a pain in the ass and okay working in Perl. So much so that whenever I see repetition in anything I write a quick Python script to do the work for me. Obviously, task management and scheduling is done there too.

Now the major part of the job is hardware design in VHDL and within a day after starting proper design, I wrote more VHDL code than I did in my entire time at uni. I’ve learned some of the tricks the pros use to optimize the design, although there is a long long way to go here. I’ve also been given various design parts with some tentative deadlines, which makes me feel good.

Although I have come a long way in these six months, I also have a list of things which I specifically want to learn and excel in. It will take time, but I have a feeling I am on track.

I cannot thank Allah enough for making this easy, fun, informative and exactly as I wanted (a dream job).


next page next page close

Joys of being an ASIC Designer

After spending hours and hours of deciphering a set of specs written by someone else you start writing code for hardware that will perform a certain set of operations. Usually the specs contain inputs and outputs and a lot of details of how things should be processed in between. Translating the pseudo-code in hardware is not an easy task. Usually something is missing in that doc.

Anyway, you code and code, and keep looking at the number of lines of code you’ve reached while adding those shitty comments which not even you can understand after an hour. Then goes an attempt to compile the code and obviously when there are hundreds of lines of hardware code it can’t compile in the first attempt. It shouldn’t. Then pops up a list of errors which in many cases is not that helpful to sort out the problems. Code finally compiles after fixing those bugs. Time for a celebratory break. Coffee?

Quickly write a test environment (testbench) to make sure the output of your hardware is correct. Trust me, it won’t be. You’ll be lucky if you’re getting an output. If and when you do get an output signal, it obviously won’t be correct because you missed something small in your hardware. Good thing that these days you can code a hardware and simulate it. It can take hours (or days) to find those issues and finally come up with the correct output after testing for all corner cases. This is one of the moments you’d want to savour being an ASIC designer. It doesn’t come very often. Go ahead and celebrate because tough times lie ahead.

To be continued…


next page next page close

monthly financial cycle

My financial month begins on the 26th of each month, or the weekday before it if 26 happens to be an off day. A good day when everyone at work seems to be delighted as the bank accounts are topped up :D

The first few days are good with plenty of spending with multiple trips to malls and dinners out. All those plans that I made of buying little things a week ago while staring blankly at the monitor at work daydreaming come in to the forefront. Ten days in to the month and that slightly unsettling feeling starts to draw in, especially if I happen to look at my bank statement while drawing out some cash. It gets worse when those ugly bills with extras start to appear in the middle of the month and suddenly a big chunk of money goes out in the house rent. I promise to myself to curtail spending from next month. Another ten days and then I start looking at that reserve amount I keep aside for troubled times. The last ten days (esp. the last 5) are the worst. Everything goes on standby, every price tag looks magnified. And then comes that wonderful day again. The cycle goes again in a while(job==true) loop.

Managing finances isn’t as easy as I earlier imagined it to be :\


next page next page close

joining the dots

It bewilders me to look back at some of the things that have happened in life and how they’re connected to my present. There is a definite pattern in life. Its like events in the past happened because they were required in the future and not because I decided them to happen. They just happened. There are many aspects in which pattern may be found but I will talk about just one here which is quite strange, in a good way.

When I joined NUST for undergrad, we had this C language course in the first sem and we were required to do a project towards its end. It was an open choice so the group decided to work on matrices calculation implementing some algorithms to find inverse of n-dimensional matrix and that stuff. It was a tedious task at that time, doing C language for the first time. I didn’t think much and just went with the group. Call this event 1. Next so-called event was my love for microcontrollers in which I spent quite a lot of extra time (nearly 2 years of fun) apart from the 6-month mandatory course, it just happened to be my favourite. And then the final event of undergrad studies was my final year project which was in image processing, out of the blue. We were almost ready to propose some topic when something happened and we decided to change it. All these things happened and then when I went for Masters, what project do I get? I get to implement something on microcontroller based system (related to event 2) which involved heavy usage of matrices and the whole thing to be coded in C (similar to event 1). And just because I did that stuff in undergrad I was at home doing this project. The research part of this project involved some complex mathematical compression techniques. In the VHDL coursework that I did, I was supposed to design a vector display processor (2-d graphics) and my part involved mainly getting the pixels, storing them in some order (caching) so that they can be easily displayed.

And now when I get a job, I’m working in the graphics group which is related to image processing field. What do I get to work on? Some caching stuff which, the concept of which is similar to what I designed (although much much more advanced). Also I get to work on some compression/decompression stuff again for which my earlier experience came in handy. Now it should be noted here that I am not given this task based on my CV. It just so happened that I was free and there was work to be done and hence I got it.

Anyway, the point I tried to make here in a very convoluted manner is that there is some method behind every single event that transpires in life. Indeed, Allah(swt) is the Planner and He has it all planned for us. The dots are already there on the sheet, the joining takes place as time passes and then begins to come out a clearer picture.

PS. Apologies for the technical stuff there, I just couldn’t simplify it :\


next page next page

Confusion. Problem.

Sometimes when things seem to be right yet a feeling of confusion and restlessness...
article post
So be patient. Verily, the promise of Allah is true and ask forgiveness for your fault... (40:55)”
article post

a landmark day

After having “clean (and vacuum) the apartment” for well over a month on my...
article post

Typical ASIC Workflow

Recently I was tasked to recode a very small piece of hardware with some changes that...
article post

Six Month Review

Exactly six months ago was my first ever day at a full time job. I was understandably...
article post

Joys of being an ASIC Designer

After spending hours and hours of deciphering a set of specs written by someone else you...
article post

monthly financial cycle

My financial month begins on the 26th of each month, or the weekday before it if 26...
article post

joining the dots

It bewilders me to look back at some of the things that have happened in life and how...
article post