HWSimulation Project and VS2008 IDE…

Well people, Product Management is a pretty boring job when looked at from a programmers/coders point of view. I am a programmer/developer/coder at heart and still try to catch up with different things whenever time permits me. From that angle, I have been in the product management sh*t for more then 2 years now. It is a very interesting job where you are able to do a lot of things which spans multiple projects, multiple organizations, hundred different teams and thousands of customers. But alas for a programmer, there is no coding in that job profile. Anyways, nowadays I have got some free time which I of course donate to satisfying the programmer inside me. Don’t ask me how I got the free time. I cut some time of gaming and some time off my sleeping. I also have automated some of the tasks that I have to do in product management and learned some good file organization skills which helps me find a lot of information faster then my fellow colleagues. So back to the scene, I fired up a copy of Visual Studio 2008 and thought of letting the fun begin.

But wait a minute, this is new. Nothing of it looks like the good old VS98. Hmm… the first change I notice is that there are a lot many new languages. Now I have worked a bit with VC# as well before some time so nothing strange there. First impression is that it looks good. I select the Visual C++ project and think about doing an MFC based application. The application I want to do is a nice Visio kind of application which has a stencil that allows you to drag and drop different entities (electronic components in this case) which can be joined by connectors. The file so generated should be saved in the form of an XML file. The application will also have a feature wherein it can generate code for the connector in C++. All the components will have a corresponding C++ class which makes the code generation easier (i.e. it would be a simple function which instantiates, supplies and calls functions based on the diagram). I have also plans to generate a make file which will help with the compilation and linking using any standard c++ compiler. This I have thought of as the first step. And now you would ask me how would it help? First of all it is fun. Secondly it will allow a person to simulate circuits and see how the output is affected based on a given input. Thirdly, there is another step which is described below.

The second step is to try to simulate the passing of the signals graphically through the whole circuit. For example, lets say you design a flip-flop (I have taken a simple example. The aim is to generate very large complicated circuits and then do the rendering and signal passing graphically). Now you give a 1 on signal A and 0 on signal B. It will go through each of the gates (basic components) and show the values from each of the gate as it is fed in and out of the whole circuit. You can send a stream of signals/bits or individual signals/bits to the whole circuit. It will also allow the user to visually see as to what happens if certain input is given to the circuit. It is complex and that is why it is the second step. If I am able to get the first step up and working correctly and I am still alive, then I will do the second step. The third step is to allow the user to package the components into another component (i.e. use a set of gates connected in a particular configuration as a Flip-flop and use the flip-flop as the base component for designing further complicated circuits). Of course all these should be visual and simple enough. I would like to get all the help I can so any of you other there wants to contribute to the project, I will place it up in Source Forge. I already have a project there http://sourceforge.net/projects/talkingclock which I can use to share the source code. Talking clock is made and available for you to download. It has bugs, it doesn’t have the features that I had planned for initially, but that is how it is.

So that said, coming back to the Visual Studio 2008, it is pretty good and a bit intriguing to a person who has directly jumped from VS98 to VS2002 to VS 2008. I didn’t use VS 2005 ever and maybe that is why I am a bit intimidated. I chose the MFC MDI application and followed all the default selections which pretty much satisfy my requirement for the time being. I gave it a go and voila, it looks great. But now comes the intriguing part. A lot of things have changed. I do not see a class wizard and I do not see a lot of other functionalities. Maybe they are hidden somewhere inside the cryptic IDE. That said, I will keep posting updates on how I am doing with the project. For the moment, I have build the basic classes for implementing the logic gates. I have also outlined a XML structure that can be used further on. It will evolve as I go along but for the moment it looks fine. I am now looking into the visual part and try to build a pluggable architecture which will allow others to write meta-classes/compoenents with/without exposing the classes/components on which it is built. i.e. if someone wants to code a 555 timer IC he can do that as a class with certain attributes, plug it into the GUI and let everybody use it. Tall claims haan.. lets see if it gets build up or goes to some level and then sees the dust and decay of time that has happened to some of my projects which I wanted to implement after I started working (after my academic life)…

 

Peace and love…