Sunday, November 20, 2011

How internet Works? - Amazing Animation

May peace and blessings of the Almighty be upon you....

This video you are about to witness gives a basic level information about "How Internet Works?" You are introduced to several networking concepts and it is always a pleasure to have this vid in the blog. 

Whats more??....This vid runs for just 12 mins (and few seconds more) and provides you a excellent viewing experience.  

My sincere thanks to makers of the video (Gunilla Elam, Tomas Stephanson, Niklas Hanberger) and the engineering community is always thankful to them.  

The entire commentary of the video was given below. This vid used here for educational purpose and does not contain any commercial motives.

Let's start and have fun...

Manuscript - Tomas Stephanson, Monte Reid

For the first time in history people and machinery are working together, realizing a dream. A uniting force that knows no geographical boundaries. Without regard to race, creed or color. A new era where communication truly brings people together.

This is the Dawn of The Net.

Want to know how it works? Click here to begin your journey into the Net.

Now exactly what happened when you clicked on that link? You started a flow of information. This information travels down to your own personal mail-room where Mr. IP packages it, labels it and sends it on its way. Each packet is limited in its size. The mail-room must decide how to divide the information and how to package it.

The IP packet now needs a label, containing important information such as senders address, receivers address and the type of packet it is. Because this particular packet is going out onto the Internet, it also gets an address for the Proxy Server which has a special function as we'll see later.

The packet is now launched onto your Local Area Network or LAN. This network is used to connect all the local computers, routers, printers etc. for information exchange within the physical walls of the building. The LAN is a pretty uncontrolled place and unfortunately accidents can happen.

The highway of the LAN is packed with all types of information. There are IP packets, Novell packets, Apple Talk packets - Uh, they're going against traffic as usual. The local router reads the address and if necessary lifts the packet onto another network.

Ah the router. A symbol of control in a seemingly disorganized world. There he is..systematic, uncaring, methodical, conservative and sometimes not quite up to speed. But he is exact... for the most part.

As the packets leave the router, they make their way into the corporate intranet and head for the router switch. A bit more efficient than the router, the router switch plays fast and loose with IP packets deftly routing them along their way. A digital pin-ball wizard if you will.

< As packets arrive at their destination they are picked up by the network interface, ready to be sent to the next level. In this case, the proxy. The proxy is used by many companies as a sort of "middleman" in order to lessen the load on their Internet connection. And for security reasons as well. We can see that the packet are all of various sizes, depending on their content.

The proxy opens the packet and looks for the WEB address or URL. Depending upon whether the address is acceptable…the packet is sent on to the Internet. There are, however, some addresses which do not meet with the approval of the proxy (that is to say corporate or management guidelines). These are summarily dealt with. We'll have none of that. For those who make it, it's on the road again.

Next up - the Fire Wall. The corporate Fire Wall serves two purposes. It prevents some rather nasty things from the Internet from coming into the intranet. And it also can prevent sensitive corporate information from being sent out to the Internet.

Once through the fire wall, a router picks up the packet and places it on to a much narrower road or band-width, as we say. Obviously, the road is not broad enough to take them all.

Now you might wonder what happens to all those packets which don't make it along the way. Well, when Mr. IP doesn't receive an acknowledgment that a packet has been received in due time, he simply sends a replacement packet.

We are now ready to enter the world of the Internet. A spider web of inter-connected networks which spans our entire globe. Here, routers and switches establish links between networks.

Now, the Net is an entirely different environment than you'll find within the protected walls of your LAN. Out here, it's the Wild West. Plenty of space, plenty of opportunities, plenty of things to explore and places to go. Thanks to very little control and regulation new ideas find fertile soil to push the envelope of their possibilities. But because of this freedom, certain dangers also lurk. You'll never know when you'll meet the dreaded Ping Of Death. A special version of a normal request Ping which some idiot thought up to mess up unsuspecting hosts.

The paths our packets take maybe via satellite, telephone lines, wireless or even trans-oceanic cable. They don't always take the fastest or shortest routes possible, but they probably will get there - eventually. Maybe that's why it's sometimes known as the World Wide Wait. But when everything is working smoothly, you can circumvent the globe 5 times over, at the drop of a hat - literally. And all for the cost of a local call or less.

Near the end of our destination, we'll find another Fire Wall. Depending upon your perspective as a data packet, the fire wall can be a bastion of security or a dreaded adversary. It all depends on which side your on and what your intentions are.

The Fire Wall is designed to let in only those packets that meet its criteria. This wall is operating on ports 80 and 25. All attempts to enter through other ports are closed for business.

Port 25 is used for mail packets, while port 80 is the entrance for packets from the Internet to the Web server.

Inside the fire wall, packets are screened more thoroughly, some packets make easily through "customs" while others look just a bit dubious. The Fire Wall officer is not easily fooled, such as when this ping of death packet tried to disguise itself as a "normal" ping packet.

For those packets lucky enough to make this far, the journey is almost over. It's just to line up on the interface to be taken up into the web server.

Nowadays, a web server can run on many things. From a mainframe, to a web-cam to the computer on your desk. Or why not your refrigerator? With the proper set-up, you can find out if you the makings for Chicken Catchitory or if you have to go shopping. Remember this is the Dawn of the Net - almost anything's possible.

One by one, the packets are received, opened and unpacked. The information they contained, that is your request for information is sent onto the Web server application. The packet itself is recycled. Ready to be used again. And filled with your requested information. Addressed and sent out on its way back to you.

Back past the fire walls, routers, and on through the Internet. Back through your corporate fire wall and onto your interface.

< Ready to supply your web browser with the information you requested.

That is - this film.

Pleased with their efforts and trusting in a better world, our trusty data packets ride off blissfully into the sunset of another day, knowing fully they have served their masters well.

Now isn't that a happy ending?

Allah Knows best. 

My sincere thanks to:
1. Warriors of the net website. link

Your brother,
Aashiq Ahamed A

Sunday, October 2, 2011

VLSI - Q & A...

Assalaamu Alaikum,

May peace and blessings of ALLAH (swt) be upon you and your family...aameen

Here are some of the VLSI related questions and answers which may be helpful to you. If you find this useful, please share it with your friends...

  1. What do you mean by Front End design and Back End design?
Front End design means Verification of a design whereas Backend Design means Analysis of a Design. In the VLSI design steps Writing HDL codes/Schematic, Simulation and Compilation belong to Front end design. And Synthesis, Floorplanning, Placing and Routing belong to Back end Design.

  1. Mention some Front end design tools?
               ModelSim from Mentor Graphics is the best Example. In this tool we can write and Simulate our design and can’t do anything apart from that. Active HDL from Aldec is an another example.

  1. Mention some Back end design tools?
RailMill, Dracula, Assura, Herculas etc…

  1. Why should I perform Synthesis?
 Synthesis is the process which will convert our HDL into gate level Netlist (or we can say, HDL to graphical representation of our design). This netlist is used for other VLSI design steps such as Placing and Routing.

  1. If I say a particular code is NON-SYNTHESIZABLE, what do I mean?
It means that the particular code can not produce suitable logic circuit/element to proceed further in the design process.

  1. Mention Some Synthesis tools?
XST (from Xilinx), Leonardo Spectrum (from Mentor), Synplify Pro (from Synplicity), Design Compiler ( from Synopsys) etc…

  1. Have you heard about RTL style of coding, if yes what is it?
Yes. If I say a particular code is following RTL style then it means that the particular code is Synthesizable.

  1. What are entity and Architecture in VHDL?
Entity describes about the external view of a project whereas Architecture explains about the internal view of a project

  1. If Quartus II related to Altera then ISPLever related to?
Lattice Semiconductor Corporation.

  1. What is the difference between a Signal and a Variable in VHDL?
During synthesis a signal can be represented as Register and a Variable can be represented as Wire.

  1. What is the real purpose of using Stick and Layout diagrams?
Without them you can not Produce your chips. The popular formats which goes to the Foundry like GDSII and CIF based on layout diagrams.

  1. If Vera related to VCS then E related to?
Specman Elite. Vera and E are nothing but the verification languages and, VCS and Specman Elite are their corresponding Compilers

  1. How does a PLD (SPLD/FPGA/CPLD) understands your higher level programming i.e. HDLs?
Through the bitstreams produced after performing VLSI design steps.

  1. In VLSI design steps, what do you mean by “Programming”?
Progamming means Downloading to the hardware.

  1. Mention some ASIC design tools?
There are lots of them. Please visit the websites of Commercial EDA tool suppliers like Synopsys, Cadence and Magma to learn better.

  1. I can design a CPLD or an FPGA using tools from Cadence or Synopsys. True or False?
Using the tools from Cadence or Synopsys you can design whatever Chips you want. If I say that then it includes CPLDs and FPGAs also. Hence the answer is true.

  1. In the name FPGA what does FIELD PROGRAMMABLE mean?
You can explain this in two ways.

v     In electronics Field means Voltage, that is why we call FET as field effect transistor. Similarly in FPGA, it explains that Gate of Arrays which are programmable if I supply a Voltage.

v     Gate of Arrays which are programmable by the user itself instead of the manufacturer.

  1. Explain about Sensitivity List in HDLs?
Sensitivity list is the list which you notice next to PROCESS or 
ALWAYS statements in VHDL and Verilog HDL respectively. It contains the list of variables that will change the output of a project.

For example, let us assume that we are implementing an OR gate project. For this project we have two inputs (a and b) and one output (c). We know that, the output c changes only when the inputs (a and b) change. Hence the variables a and b should be placed inside the sensitivity list.

To put it in a simple way, those variables which changes the output of a project should be placed inside the sensitivity list.

  1. Why FPGAs does not come under the category of PLDs?
Because FPGAs have a different architecture when compared to their counterparts, the PLDs.

  1. What is the difference between a PAL and PLA?
In PLAs, both the input and output planes are programmable whereas in PALs only the input plane is programmable and the output plane is fixed.

  1. Why should one use Software tools such as Project Navigator or Quartus II?
Programmable devices (PLDs and FPGAs) contains switches which needs to be programmed (neither High or Low) to get our designs. Manually programming the switches is very difficult, infact nearly impossible. That is why we use software tools such as Project Navigator or Quartus II or any other similar tools. These tools produce programming files or binary files after performing VLSI design steps which are used to program the switches in the programmable devices.

  1. Complex designs should be programmed using Structural way of Modeling. Am I correct?
To a certain extent, yes. But not always, it depends on the circumstances
and designer’s abilities. For instance, let us assume that we are trying to implement a fulladder design.

One way of designing is, we know that fulladder design contains two ‘halfadders’ and one ‘or’ gate. Now you write a program for halfadder and call the corresponding entity two times in the main project and write a program for ‘or’ gate and call it once in the main program. The end result, within three steps inside the architecture we finish the project.

The other way is, what will happen if the designer doesn’t able to visualize fulladder into two ‘halfadders’ and one ‘or’ gate. On that case, he designs the full adder circuit with two ‘xor’ gates and two ‘and’ gates and one ‘or’ gate (or in any other way). To do this in structural way, he writes the program for ‘xor’ gate, ‘and’ gate, ‘or’gate and calls these programs in the main project. The end result, it takes five steps inside the architecture to finish the project. If he designs the same project in data flow method, he still needs to write five steps to finish the project and addition to that we has saved some time in writing programs for ‘xor’,’and’ and ‘or’.

Hence if the designer has the expertise to visualize a complex circuit as blocks (like halfadders in fulladder circuit) then structural way of programming will be of immense use. Or else it is better to hold on with Data flow way of modeling.

  1. What do you mean by Prototyping?
Usually when an ASIC designer wants to implement his design, he will try it out on a similar hardware first and then goes for Actual Manufacturing. This kind of duplication is known as Prototyping. Prototyping is Very important to every ASIC design engineer. 

Sunday, July 17, 2011

VLSI companies in India...

Assalaamu Alaikum,

May peace and blessings of the Almighty be upon you and your family...aamin

Here are some VLSI companies in India. If you know any other company which is not listed here, please inform me through comments section.


  1. Synopsys ---
  2. Cadence Design Systems ---
  3. Texas Instruments ---
  4. Agilent Technologies---
  5. Analog Devices ---
  6. Broadcom ---
  7. FreeScale Semiconductor ---
  8. IBM ---
  9. Infineon ---
  10. Intel ---
  11. LSI Logic ---
  12. Netapps.
  13. Philips ---
  14. Qualcomm ---  
  15. Reneases.
  16. Samsung ---
  17. STMicroelectroincs ---
  18. Alliance Semiconductor ---
  19. AMCC ---
  20. AMD ---
  21. ARM ---
  22. Atheros ---
  23. ATI ---
  24. Cypress ---
  25. Genesis Microchip ---
  26. Honeywell ---
  27. HP ---
  28. Huawei ---
  29. Intersil ---
  30. Maxim ---
  31. Tektronic ---  
  32. GE.---
  33. Lattice ---
  34. Altera ---
  35. Xilinx ---
  36. Magma Design Systems ---
  37. Mentor Graphics --- www.mentor.coma
  38. Atmel ---
  39. Actel ---
  40. Agere Systems India Pvt. Ltd --- (acquired by LSI)
  41. Aarohi Communications. 
  42. Artisan ---
  43. Athena Semiconductor --- (acquired by Broadcom)
  44. Beceem ---
  45. Cavium Networks ---
  46. Cortina ---
  47. Cosmic Circuits ---
  48. Denali ---
  49. Digibee Microsystems. 
  50. Insilica. 
  51. Ittiam ---
  52. Metta Technology. 
  53. NetDevices.
  54. Nevis Networks ---
  55. Nuelight  Semiconductor.
  56. Open Silicon ---
  57. Perftrends ---
  58. Portal Player (acquired by nvidia)
  59. Raza Microelectronics ---
  60. Sinett Semiconductors.
  61. Tejas Networks ---
  62. Telsima.
  63. Transwitch ---
  64. SiRF Technology Inc ---
  65. Vitesse ---
  66. Azanda Network Devices. 

Indian MNCs:
  1. Wipro.
  2. Sasken ---
  3. Mind Tree ---
  4. Purple Vision. 
  5. HCL.
  6. GDA Technologies ---
  7. Tata Elxsi ---

If you find this information useful, please share it with your friends. 

Thanks and Take care, 

Your brother, 
Aashiq Ahamed A

Tuesday, March 22, 2011

A simple and short introduction to Microcontrollers...

Assalaamu Alaikum (May peace and blessings of the Almighty be upon us all)

This article you are about to read was taken from "Tutorial on Microcontrollers" written by our beloved vice principal Mr.S.Oulaganathan. We love him so much for his dedication in improving students' technical strengths. This particular tutorial is very short extending upto only 12 pages and written in simple language.

All the basic things that a beginner want to know (from pin details to IDE to sample circuits) were explained in such a simple way. I can't post all the twelve pages here. Hence, those who are interested in reading further, feel free to send me a email at I will send you the soft copy of the tutorial (insha'allah, God willing). 

If you are benefitted from this tutorial, please share it with your friends...thanks


Microcontrollers are microprocessors with peripheral devices and memory embedded in a single chip. They are used in almost all modern day appliances as embedded controllers and so are produced in millions. They are available readily in our local markets at a very affordable cost.

The subject of microprocessor is introduced in colleges with 8085 architecture and programming in Assembly language. It is a good start to understand the basics of microprocessor, but this knowledge of microprocessor limited only to 8085 is grossly inadequate when they go to the industry. And also 8085 is decades old and is definitely not suitable for the current day applications.

This tutorial is to help the students to come out of their academic 8085 cocoon and learn the tricks of designing microcontroller based electronic systems during their final year project work, gain practical knowledge on hardware design and go out to the industry with confidence.

The most popular microcontroller architecture is Intel’s 8051. There are number of IC manufacturers offering microcontrollers based on 8051 architecture. ATMEL ( is one of them. Two microcontrollers 89C2051 and 89C51 from ATMEL are chosen for our use, for the following reasons,
· They have all the necessary features for use in a small to medium application,
· Software development tools are available free,
· Flash Programmer for ATMEL series microcontroller has been available in most of the colleges. (emphasis mine, edited to suit the broader audience),
· These ICs are readily available in cities (emphasis mine, edited to suit the broader audience) and costs between Rs. 50 to 70.

Microcontrollers basics:

The first step towards taking up microcontroller design is to understand the basic architecture and its features. It is highly recommended to follow the excellent text book, 
The 8051 Microcontroller and Embedded systems – Muhammad Ali Mazidi, Janice Gillispie Mazidi
Microcontroller consists of the following functional blocks, (microprocessor will have only CPU and may be some peripherals integrated into and not memories)
· Central Processing Unit (CPU)
· Flash memory (Read Only Memory)
· Random Access Memory (RAM)
· Serial communication port
· Parallel Input/Output ports
· Timer
· Interrupt controller
· Analogue to Digital Converter (ADC)
Flash memory is mostly Read Only Memory (ROM) used to store programs. The Flash capacity in microcontroller ranges from 2 Kbytes to say 16 Kbytes. It is a non-volatile memory meaning that even when power is not available to the microcontroller the contents of Flash memory are retained. The contents can be changed by erasing electrically and reprogrammed using a Flash Programmer (we will see in detail about Programmer later) This cycle of erasure and programming can be performed for a few thousand times.

RAM as every student bursts out when asked, is Random Access Memory, functionally it is a Read and Write Memory meaning that data can be written, read and re-written any number of times. Data access is at random (compared to serial memories). RAM is a volatile memory. When power goes out, data stored in it also evaporates and is not retained. RAM capacity in microcontrollers is normally kept very low to few hundreds of bytes, say128 or 256 bytes. RAM is used to store real time data, which is temporary in nature (tables, lists etc) while the processor is executing a task.

Most of the microcontrollers have the following peripheral devices built into. 

1. Parallel Input/Output port - They can be programmed as input to read data into the microcontroller from external devices or as output to output data from microcontroller for controlling them. 
2. Timer – this device is used to measure time in real time applications. A programmable counter is maintained by the microprocessor internally. By software a specific value can be loaded into the counter. Internal or external clock can be selected to clock the counter. When the counter counts down to zero an interrupt is raised to indicate the elapsed time. 
3. Serial communication controller – or simply just called UART (Universal Asynchronous Receive Transmit) is used to transfer serial data between the microcontroller and an external system, say a PC. The data is formed in a standard format with start, stop and parity bits and transferred at a fixed baudrate.
4. Interrupt controller – a set of external interrupt lines are provided to interrupt the processor and bring to attention the external event occurrence. Built in interrupt controller coordinates the interrupt process.
5. Some advanced microcontrollers have built in A to D converters also.

With the Flash Memory, RAM and other peripherals built-in the microcontroller is a single chip microcomputer and is equipped to handle any real time control application.

Overview of AT89C51-24PC Microcontroller:

It is a Dual in line (DIP) 40 pin, (P- plastic package, C- commercial operating temperature of 0 to 70 C) IC with the maximum operating frequency of 24 MHz, manufactured by ATMEL.

The operating supply voltage is +5 Volts. 

Crystal Oscillator:

For all its internal operation, microcontroller needs an external stable clock source. It has an on chip oscillator, but we need to connect a crystal across the pins XTAL1 and XTAL2. A two lead metal can crystal has to be bought (Rs.5 to 10) along with the microcontroller. Crystal has to be specified with the operating frequency. Higher the crystal frequency chosen, the microcontroller runs at a higher speed and so throughput of the processor will be higher. But we cannot exceed the maximum operating frequency of the IC. If it is a AT89C51-12PC processor, then the crystal to be chosen should be 12MHz or less. Some of the standard frequencies of crystal available are 6.141 MHz, 11.0592 MHz, 12 MHz, 24 MHz etc. 

We need to connect two small value 30 pf ceramic capacitors from each leg of crystal to ground to complete the oscillator circuit as shown in fig.1.

Fig. 1

Power ON reset:

Microcontroller has a reset pin RST. It is an input pin, when it is pulled to logical high, the processor gets reset and terminates all its activities and restarts its operation from beginning. The processor has to be reset immediately after power ON or whenever an irrecoverable error has occurred during its operation and the processor is hanging. Normally, a 10uf capacitor and 4.7Kohm resistor are connected as shown to reset the processor automatically on Power ON. When power is applied, initially the voltage across capacitor is zero and so the RST pin gets +5V. Then the voltage across capacitor rises and reaches 5 volts and so the RST pin comes to logical ground. With this arrangement the processor gets automatically reset on power ON. Additionally a reset push to operate switch across the 10uf capacitor can be added to reset the processor manually whenever required.

To read the entire tutorial, send a request to Soft copy of the tutorial will be sent (insha'allah, God willing)

Thanks and take care...

My Sincere Thanks to:
1. Prof.S.Oulaganathan

Your brother,
Aashiq Ahamed A

Thursday, January 6, 2011

Behavioural Way of Programming - Basics

May the peace and blessings of the Almighty be upon you all…

We know that Hardware Description Languages are classified into three major categories, (i) Data flow way of programming, (ii) Structural way of programming and (iii) Behavioural way of programming. Having seen glimpses of data flow and structural way of programming in the previous posts, let us go ahead with the basics of behavioural way of programming in this post. 

As the name indicates, behavioural way of programming depends on behaviour of the project rather than internal circuitry of the project. 

To explain the point, let us take the example of 2*1 Mux.

To implement a 2*1 Mux in Data flow and Structural method, one should know the internal circuitry of the project. Whereas in behavioural method, that is not required. If one knows “how the project works”, that is sufficient to implement the project. 

To explain this more clearly, Let us take the inputs and outputs of the 2*1 Mux to be a0,a1,s(selection line) and y. We know that, 2*1 Mux operates in such a way that, if s=0 then output y selects the first input (a0), else it selects the second input (a1). 

Now, if we want to implement this mux in data flow way of programming, we need to draw the internal circuit of the mux and then write the program according to the circuit as shown below, 

Fine, if the same project to be implemented in the behavioural way, one does not bothers about the internal circuitry of the project and finishes the coding just by describing the behaviour of the circuit as shown below,

Behavioural method includes a key term called “PROCESS”. Next to process we find another important feature called “Sensitivity List”. Sensitivity list is nothing but the list of variables which can change the output. In the above example, inputs are the ones which change the output. Hence a0, a1 and s were placed inside the Sensitivity list. Generally sensitivity list holds the inputs and signals. Now, process has to be understood in the following way. It tells us that, “Process the below lines whenever there is a change in the variables of the sensitivity list”.

So, one can see from the above example that, behavioural way of programming doesn’t requires the internal circuitry of the project. All it requires is, just a description or behaviour of the project. That is why it is sometimes called “BLACK BOX MODELLING”

Hope this helps you…if you find it useful please share it with your friends…

Allah knows best.

Thanks and take care,

Your brother,
Aashiq Ahamed A