Sunday 3 April 2016

Hardware Programming Language and Why do we need Them

My electronics Engineer Brothers.you can't be just a Hardware Engineer doing soldering and wiring kind of stuff .Rather you have to be good programmer too. So don't be bounded and get curious to learn Some Hardware languages too.So Let us discuss about Hardware Languages and just Know why we need them .



Currently We have Following Hardware Languages

1) Verilog -Hardware Design. 80% people prefer this language worldwide.
2) VHDL -This language is also same as Verilog.Only 20% of people prefer this
3) System Verilog -Use for Hardware Verification. it Language is a subset of Verilog like C++ is a                                       subset of C. here also in System Verilog there is a in concept updation of                                               classes and object.  
4) System C- Use for System Design i.e for System Modeling.it is a great language as it reaches to the higher level of abstraction i.e even a software. As far as i have researched with system C you can also develop a firmware and become an good embedded engineer.

What is a benifit of Hardware Programming Language over software Programming Language
Ans. In Hardware Programming Language if you are expert then you can able to do debugging without the use debugger.

Q Now you will ask what is debugging?

Ans In programming you have use Many terms like compiling ,executing , interpreting and debugging , As far as i Know in programming first interpreting takes place which is line by line.and i guess this interpreting is the step which is responsible to tell error. After that compilation takes place which read code all at once .In IDE once our code get compile we press run button which we also say it as we have actually executed the code. Now what is debugging .As it used the word bug in it which means error. So, debugging means removing of these error.


What you need to Know in order to understand the future content

RTL (Register Transfer Level Language)- In compiler you Know you have many layers like first there is a High Level Language (C,C++,Verilog,VHDL,Java,Python....etc) after this language there is a Assembly Language (which is something like MOV A,B where Aand B are register) some where here only there is a Register Transfer Language which is use to transfer data's with in register's only . this registers are responsible for creating a meomory space.these register are present in RAM in huge conncection or in inside CPU. you can access to any location through your programming by using storage class if you are using C language .i,e with using a keyword reg behind int a. like a code below you can work inside register in CPU.

  1. #include <stdio.h>
  2. #include <conio.h>
  3. //register storage class ..very fast storage class use in cpu

  4. int main()
  5.    {
  6.           
  7.    reg int i;   
  8.    
  9.    if(i--)
  10.    {
  11.           printf("%d",i);
  12.           main();
  13. }
  14.    
  15.    
  16.    
  17.    getch();
  18.    return 0;
  19.           }   


beside this register storage class, there is also auto,static ,extern .here except static storage class .All other class i.e "auto,reg,extern" intiallises the meomory at runtime

Firmware- like in computer you have operationg system like windows linux .in mobile ,camera's etc                     you need an firware. In camera firmware also has a power to improve image quality

TLM (Transaction Level Models)-

HLS (High Level Synthesis)-

IP (Intellectual Property)-  
Companies that only develop IP's and are famous
Alma Technologies   -Founded in 2001
there are many more companies also...






After reading Serveral things you will find that the main purpose of learning above languages is to generate Simulations (can be a waveform,circuits any graphical or animation kind of thing) .if simulation is a waveform then it also tells dynamics of circuit.


But Now you may be wondering that why should we learn this Simulation .The reason behind it are as follow.

1) It cheaper the cost of circuit as in simulation you deal with things like routing of circuit elements etc.

2)It helps  Engineer to increase correctness and efficiency of design before design is actually created

3)Designer can study the problem at different level of abstraction.

4) Basically simulation is also use to make student understand the dynamics of circuit better.i.e With simulation they can understand the circuit better and thus can deeply investigate the circuit by sometime stopping ,speeding ,slowing or reversing the simulation.

Now one more doubt i guess you must have How these Companies Actually Develop a Design Say SOC.

So,Let's Begin . Look at that Language Comparison Chart Now the Process starts from higher level of abstraction to lower level of abstraction . First is that requirement after that you develop an architecture after that So on ...The reason behind this Top Down Approach is that it is easy for the Human to first Understand the Design in terms of interrupt, arithmetic,CPU Unit i.e Highest level of abstraction compared to lowest level .You can say it is almost very very tedious or tend to impossible to Design Gates and transistor first .So, during development of our SOC we deal with these lowest level of abstraction with verifying it only rather than designing them.

Now you will say once a person has designed a virtual prototype of it's SOC what is the use of it?
Ans . Now The SOC you have developed is an IP  if it is unique. and Now you are an vendor with this IP . Now an IOT system development company want's a system as follow


and Now to make above "Things" system you need DSP kind of Processor (DSP SOC/IP) as it requires low power so let us for that you have selected Cadence tensilica Sensor hub ASIC and with that connect serveral others new IP's also as follow

So with that you finally make its chart like as follow


and you get your final device something like as follow


Now Still Some Knowledge is Missing . Now you will ask How exactly this Virtual Prototyping Happens.

It has Three steps
1)Architectural and Performance Analysis-


 make a blocks to analyse architure wrt fuctional and performance requirnment.you use software carbon soc designer.we hear deal with how flow interact and go in and out of meomory
2)Power Analysis
3)Early Software Development






Now to get More Clear Understanding of Above programming Languages you can look at below video




See How Devices will be without dedicated Chips ?
   How much Power Disipation will be there...
    You can't just depend on Raspberrypie to Make IoT's for Market Design






References: To Know more about System C [Click Here]

Some Interesting Blogs That you Should Read :H/W VS S/W who leads? [Click Here]


No comments:

Post a Comment