Sunday, December 5, 2010

Basics of VHDL...

Assalaamu Alaikum,

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

VHDL stands for Very high speed integrated circuit Hardware Description Language. It contains two major parts, namely

1. Entity and
2. Architecture

Entity is the external view of the project. Here one needs to describe the external features of the project such as Inputs and Outputs.

Architecture is the internal view of the project. Here one needs to describe how those inputs and outputs are  internally connected.

For example, let us consider the below example of Half-Subtractor,

Let us see how to write VHDL code for the above project,


entity half_sub is
port (a,b : in bit; diff,bor : out bit);
end half_sub;

One can understand from the above code that entity contains inputs and outputs which are external to the project.

VHDL is a case insensitive language. Entity name can be of any name but care must be taken so that the entity name (here half_sub) should not start with numerics (eg. 24halfsub) and should not be the “keywords” such as xor, and, or, nand, nor, xnor etc.,


Architecture data of halfsub is
Signal s1:bit;

diff <= a xor b;
s1 <=  not a;
bor <= s1 and b;

end data;

As it is shown above, connection details of the inputs and outputs (which we defined in the entity ) are described in the architecture. Signal is the one which connects two gates and it should be defined between “architecture” and “begin”.

Being a beginner to VHDL one should have a clear vision about the distinction of entity and architecture as it is shown above.

Hope this helps the beginners.

May the Almighty keep us in the straight path always…

Thanks and Regards,
Aashiq Ahamed A

Monday, September 13, 2010

Structural Way of Programming...

In the Name of Allah (swt), the most gracious, the most wonderful...

Assalaamu Alaikum (varah),

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

Structural Way of Programming: 

One common question amongst students is, 

1. Complex designs must be programmed using Structural way of Modeling. Is that 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.

Monday, August 30, 2010

What are IP Cores?

Assalaamu Alaikum (varah)....

May the Almighty bless you all with happiness and peace....aamin.

                              In today’s CHIP design, IP (Intellectual Property) cores play a major part. If you want me to explain them in a single sentence, then here comes the explanation..

             IP cores provide Pre-Programmed Design Elements     
                              (Something like ready made food).

It is nothing but a reusable logic unit. They can be used as building blocks for CHIP design. As the name suggests they belong to one particular party and can be licensed to another party. There are lots of vendors available nowadays who provide IP cores to VLSI design companies.

Why should I use them?

   IP cores are already designed and tested to near perfection by the vendors who supply them, hence when the clients buy them, they can use the particular IP block directly into their design. This saves the design and testing time. And obviously the product will be out soon from the company. 

Wednesday, July 28, 2010

Some Good Books on VLSI Design....

Assalaamu Alaikum (varah)....

May the Almighty bless you all with happiness and peace....aamin.

Here are some good books on VLSI design...

Platinum Standard Books

1. Principles of CMOS VLSI design – A Systems Perspective
Neil HE Weste, Kamran Eshraghian, Michael John, Sebastian Smith
Addison Wesley Publications, 2nd edition.

2. Basics of CMOS cell Design
Etienne Sicard & Sonia Bendhia
Tata McGrawHill India

3. Advanced CMOS cell Design
Etienne Sicard & Sonia Bendhia
Tata McGrawHill India

Wednesday, May 26, 2010

More on FPGAs...

Assalaamu Alaikum (varah)

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

What is an FPGA?
    Before the advent of programmable logic, custom logic circuits were built at the board level using standard components, or at the gate level in expensive application-specific (custom) integrated circuits.  

The FPGA is an integrated circuit that contains many (64 to over 10,000) identical logic cells that can be viewed as standard components.  Each logic cell can independently take on any one of  a limited set of personalities.  The individual cells are interconnected by a matrix of wires and programmable switches.  

Sunday, April 25, 2010

Basics on Programmable devices...

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

1. When did PLDs come into picture and what is the reason behind that?

         In early 1960s there was discrete logic. Systems were built from lots of individual chips with a spaghetti-like maze of wiring between them. It was difficult to modify such a system after you built it. After a week or two it was difficult to remember what each of the chips was for!

Manufacturing such a system took a lot of time because each design change required that the wiring be redone which usually meant building a new printed circuit board. The chipmakers solved this problem by placing an unconnected array of AND-OR gates in a single chip called a programmable logic device (PLD).

Friday, April 16, 2010

ASICs VS Programmable Devices - The Basics

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

Is there a difference between ASICs and Programmable devices (like FPGAs/CPLDs)? YES. There are physical differences between them but the purpose of using them is been the same. The purpose is to implement your design and having it in the form of hardware.

To explain this in a very simple way, let us take the following example.

The situation is like this,


Here comes two ways to overcome the above problem,

The first is to prepare some food for ourselves in home and the next way is to approach some restaurants and take the readymade foods available wi them.

Here we have to notice one issue, eventhough they are two different approaches but the purpose of them is the same, i.e. satisfying your hunger.

This is what ASICs and Programmable devices teaches us, the purpose of them is been the same.

ASICs are often referred to us as tailor made ICs.

Just think of this example, you want a shirt now, again there are two ways, they are

1. Go to a tailor shop and give your measurements. The tailor will stitch the shirt for you which will exactly fit to you because the shirt is made from your instructions and

2. Go to a Showroom and pick the shirt for you. Here you are saving time when compared to the previous process (because stitching time will be more) but sometimes shirt/pant will not exactly fit into body because you may be short or tall. Then you have to do some alternations.

ASICs and Programmable devices are exactly the same like the above example. Implementing your designs in an ASIC will take more time when compared to Programmable devices because you have to design your circuits, approach a vendor (just like you approach a tailor to stitch your shirt/pant), make a chip which will replicate your design. On the other hand using Programmable devices we can save time because, to design your circuits, buy an already manufactured Programmable device, and implement your design.
If you see here, the biggest advantage ASICs have over their counterparts is that you will get exactly your design fed into an IC without any extra circuits inside it. Just like a tailor made shirt or preparing your food. You know your taste and you will prepare food according to you/your family members. Isn’t it?

On the other side, implementing your design in a Programmable device will not only have your design but also some extra circuits inside it. It will suit only for some standard customers just like ready made shirts will suit into people of standard sizes and not to all of them or eating in restaurants where you will feel the food not upto your taste..

If you ask me what I will use for my design, without any question I will go for the seamless ASIC technology.


Thanks and Take care,

May the Almighty guide us in the straight path always…Aamin.

God knows best…

Your brother,
Aashiq Ahamed A

Wednesday, April 14, 2010

The Basics - VLSI Classification...

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

Having seen about classification of ICs in the last post, let’s move ahead and categorize fig 1.1 into two major parts,

  • Core VLSI
  • Application VLSI.

The reader should be aware that this is not the way people generally practice or explain. I am doing this here for the sake of easy understanding.

Core VLSI:
This is the one which talks about making (design and fabrication) an IC from the core, i.e. starting from preparing the substrate etc...

Application VLSI:
This is the one which talks about programming or configuring a programmable chip.

Learning VLSI will be easy if we approach it in the below mentioned ways,

  1. First, Learning How an IC is been designed and fabricated.
  2. Second, How to configure a Programmable device (particularly CPLD and FPGA)

VLSI concepts will be easily understood if one tries to find out answers for the above questions. 

Hence, just set the above two points as your targets in learning VLSI concepts and try to find out the answers for above questions.

And yes, that is what we are trying to achieve in future posts (Insha Allah), i.e. trying to find out answers for above questions, how to design a IC and how to configure a programmable device.  

Insha Allah (God Willing), in the next post we will go ahead and learn the differences between ASICs and Standard Products (more specifically Programmable devices).

Thanks and Take care,

May the Almighty guide us in the straight path always…Aamin.

God knows best…

Your brother,
Aashiq Ahamed A

Monday, April 12, 2010

The Basics --- IC Classification...

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

Having seen in the last article that VLSI is the technique that deals with ICs, let’s go ahead with IC classification. 

Whatever may be the ICs that we see in the modern world, they are classified into two major categories, ASICs and Standard Products, as shown in the figure below, 

1. ASIC means Application Specific Integrated Chip. 

Name tells the story. These kinds of ICs are used only for specific applications. For example, let us take the ICs used in a particular model of a mobile phone. You can’t use that ICs in any other model or in any other manufacturer’s phone. These ICs are made only for that particular model of the mobile phone.

In other words, these ICs are application specific; you can’t use them for other applications.  

2. On the other hand, STANDARD PRODUCTS are the one which can be used for different applications. 

For example, take the 74 series ICs. The 7486 ex-or gate IC which is used to construct a Half Adder is also used is construct different circuits like fulladder, parity generator etc., It is not limited to one particular application. 

Similarly, take the FPGA, if you write the program for half adder and dump it in the FPGA, it will work as a half adder. The same FPGA will work as a full adder, parity generator etc.. if you write corresponding programs. Thus FPGAs are not limited to one particular application and they are used for different applications. 

3. The major difference between the Standard ICs and Programmable devices is that, standard ICs are used for different applications but they can not be re-programmed (can we re-program a 7486?) whereas programmable devices are used for different applications and they can be re-programmed also.   

For our easy understanding in learning VLSI, we will categorize the above figure into two parts, which we will see in the next article. Insha Allah.   

May the Almighty guide us in the right path always…aamin. 

Allah(swt) Knows best…

Your brother,
Aashiq Ahamed A

Friday, April 9, 2010


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

Please Note:

Before starting this post, one important thing I would like to address. In this post and future, you may come across a lot of new technical terms. All I can say is, just skip them if you can't understand and continue reading. Over the period of time when we see detailed explanation of them you will be able to understand and relate to previous posts. Insha Allah…   

Lets go ahead now...

1. What does VLSI mean?

VLSI stands for Very Large Scale Integration. As the name suggests, when a large number of transistors (say for example greater than 10,000 transistors) packed in an Integrated chip then it is said to be following VLSI technology. To be more precise, making an IC with large number of transistors is called VLSI. Today’s sophisticated Integrated Chips have millions of transistors inside them.

But I used to say, VLSI means making a Simple IC (also), because if we can’t understand how a simple IC is been made and then how come we learn about multi-million transistor design? So let us start with a simple IC, how it is been designed and made, and then focus on packing multi-million transistors.    

But VLSI has another side to it also, configuring programmable devices such as PLDs (PLAs, PALs, PROMs and CPLDs) and FPGAs are also considered to be a part of VLSI.

2. Why is it so?

As far as I am concerned there are two major reasons behind it.

a) Motive of both of them is the same (or in other words, the results they try to achieve is the same).

For example, let us assume that we need a EX-OR circuit; there are two ways of getting it. The first, get the EX-OR circuit by designing (using CMOS processes, layout etc., which we will see later) and fabricating. The resultant IC from fabrication contains EX-OR circuit.

The second, take a programmable device, describe the behavior of EX-OR circuit (by writing codes in VHDL/Verilog HDL or through schematic) and dump it in the programmable device. Now your programmable device will work as EX-OR circuit.     

Since both of them produce same result, Programmable devices are said to be part of VLSI.

b) The approach towards the Motive is almost same.

For example, when I say, write the code and dump (Configure) it in the programmable chip, that does not mean there are only two steps. In-between writing the code and dumping, there are other steps need to be followed like synthesis, placement and routing etc (which we will see later). These steps are called Design Steps. 

Similarly to make an IC on our own, we need to follow certain steps (Design Steps). These steps are almost similar to the steps that we follow in configuring programmable devices.

Since both of them follow similar steps to achieve their motive, programmable devices are said to be a part of VLSI technique.

There may be some other reasons also like prototyping etc., which we will see later, Insha allah…

3. Where does VLSI techniques used?

Just look around you. Look at the computer you are using, look at the IPOD you are using, look at the mobile phones you are using, etc etc. They all contain ICs packed with millions of Transistors. You can't imagine electronic products without VLSI techniques.  

4. Why VLSI is so important?

By this time you would have understood that. If todays's world heavily dependent on state of the art Electronic goods, then those goods heavily depend on sophisticated Multi-Million transistor ICs. Thus the importance. You can't just skip VLSI techniques and claim to be a better Electronics Engineer.

5. Is VLSI a kind of course which one needs to learn separately?

It depends on the educational institution one studied/studying. If you are from the stream of Electronics, Electrical and Instrumentation, then you already got a glimpse of it in your college days. Or if you are a student then you are learning it now. 

Most of us learned about or learning about terms like CMOS, ASICs, Lambda based rules, digital electronics, HDLs, Layout etc., which will obviously lead to VLSI. 

Having said that, VLSI tools could not be found in most of the educational institutions, primarily due to cost involved with them. In that case an outside course will help a lot. 

Let me finish by saying this, VLSI is not at all a complex thing to learn. It is so cool and fun. That is what I will try to do in future posts, ie. presenting VLSI in the easiest way possible. Insha Allah...

Do send in your comments if you face any difficulty in understanding...

God knows best...


Your brother,
Aashiq Ahamed A

Thursday, April 8, 2010

About this Blog...

In the Name of Allah (swt), the most gracious, the most wonderful...

Assalaamu Alaikum (varah),

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

Hearty Welcome,

Splinters mean bits or pieces. That is what this blog tries to give you, pieces of information about VLSI, or a glimpse of what VLSI is. Through this blog I will try (Insha Allah, God willing) to share my knowledge that I gathered in this field for the past 7 years.

This can be a good reference tool for those from Electronics, Electrical, Instrumentation and Physics background. Definitely this is not the blog which teaches everything about VLSI but rather a quick reference tool concentrating on VLSI concepts. 

Articles in this blog were collected from different websites and books, compiled in a easier way for the people to understand. Well, while I try my best to put the technical info in the most accurate way possible, it is your duty to pin point the mistakes if ever happens. 

I hope, with God's blessings, this may be a valuable tool for your understanding over VLSI concepts and wish you a pleasant ride over technology and all the very best for your future. 

Thanks and take care...

Aashiq Ahamed A