Showing posts with label VLSI General Knowledge. Show all posts
Showing posts with label VLSI General Knowledge. Show all posts

Jan 1, 2023

Microprocessor, Microcontroller or FPGA : Which One to Choose and Why?


FPGA, Micro-controller and Microprocessor are the most powerful tools for an embedded system Design. All three are the programmable devices. Most of the consumer electronic products are designed with them. 

In this article we will do a comparative study about all these three programmable devices  and will try to understand which one is used in which scenario. 

Let's understand what are  Microprocessor , Micro-controller and FPGA. Here we will start with Microprocessor.

I. Microprocessor :

Microprocessor is an electronic integrated circuit that works as a CPU alone. This is the basic controlling unit and works as the brain of the system. No other peripherals such as RAM, ROM,input or output slots are integrated with it. 

Microprocessors understand machine code. but they will require a higher level programming language such as "C" or "Assembly" to write the program. The “vocabulary” of instructions for any microprocessor chip is  specific to that model of chip. 



Fig 1. Microprocessor

An Intel 80386 and a Motorola 68020 uses completely different set of binary codes for equivalent functions.         

Advantages :

1. Present day processors have amazing speed and cheaper in cost. 

2. They are small and Compact in Size work with 100% accuracy provided the input is proper and accurate. 

3. Multicore processors are available in market which is incredibly faster and cheaper. 

4. Modern Processors are built with Artificial Intelligence and with latest technology. They emits less heat and energy and so no need to take any excessive measure to make it cool.

5. Processors are built with GUI (Graphical User Interface) which make them user friendly.

Disadvantages : 

1. Microprocessors are bound to makes mistakes ,if the input is  incorrect or improper. 

2. Improper electric current and supply can damage the Processor.  

3. The Single Core Processors are slow and not suitable for heavy software or applications.

4. Most of the microprocessor does not support floating point operations.

5. Microprocessors require machine level language.


II.  Microcontroller :

A micro-controller is an IC that contains a microprocessor and some peripherals like ADC, RAM, ROM, DAC to be a complete functional computer.

                                Fig 2. Micro- contoller

programming a micro controller involves, writing a program code in C, compiling the code in a Compiler, uploading the compiled version of the program to the micro controller.

Advantages :

1. Micro controllers are simple to program.

2.  They are the best for a simple and hardware specific application. That is if only limited hardware is required. 

3. Micro controllers are cost effective than FPGAs.

Disadvantages :  

1. They can perform limited tasks because of limited instruction set. 

2. A Micro-controller  can perform only the pre-loaded instructions.  

3. They performs sequential processing i.e. one instruction at a time. 

4. Hence programming using interrupts (ISR) becomes complex.  

5. Designer can utilize only the hardware available on the board. 

III. FPGA :

The third programmable device in our list is FPGA. FPGA is Field Programmable Gate Array. FPGA is an integrated circuit that can be programmed on the field to work as per the required design. A FPGA typically contains thousands of Configurable Logic Blocks (CLBs) embedded with a lot of programmable interconnects. The CLBs are made of Look-Up Tables (LUTs), Multiplexers and Flip-Flops. They are programmed to implement complex logic functions. FPGAs also contain dedicated  hard-silicon blocks for various functions such as Block RAM, DSP Blocks, External Memory Controllers, PLL and many more.


                                     Fig 3. FPGA

FPGA programming is comparatively complex than that of a Microcontroller. It requires specialized software such a Xilinx, Intel Quartus. FPGA is programmed using Verilog or VHDL and System Verilog is usually used for verification. 

FPGA programming involves below steps : 

                              Fig 4.  FPGA Programming

Advantages:

1. In FPGA the hardware itself is programmable. New hardware or logical functions can be programmed by altering the programmable blocks in the FPGA by installing a new FPGA firmware.

2. FPGA does not have a fixed instruction set.

3. They process instruction in parallel processing. This capability of FPGAs allows user to control the interrupts effectively by using Finite State Machines (FSMs).

4.Trial and error method is possible in FPGA. This allows a steep learning curve.

Disadvantages : 

1. Configuring FPGA is complex. 

2. They consume more power than a Microcontroller .

3. For a simple application, FPGA can be bulky and costly.

4. Since there is no internal oscillator, clock  has to be provided from an external source.


Microcontroller  vs. Microprocessor : 

1. Microprocessors based systems becomes bulky due to presence of peripherals whereas in a  microcontroller peripherals are in-built and   available on a single chip.

2. Cost of Microprocessor based system is on higher side compared Microcontroller based system.

3. We can connect external memory in ranges of Mbytes/Gbytes with an microprocessor when the applicaton demands high memory although the trade off is lesser speed.  The inbuilt finite memory in micro-controller improve the speed of the operations.

4. Microprocessor is not suitable of compact systems whereas  Micro-controllers are.  

5. In a microprocessor presence of external components results in higher power consumption. Therefore, it is not ideal for the devices running on stored power like batteries. Micro-controllers are suitable for such application due to less power consumption.

6. The microprocessor is useful in Personal Computers whereas Micro Controller is useful in an embedded system.

So when the application is low-computational and specific,  micro-controller is preferred.To keep the overall cost on lower side, micro-controller is better. Micro-controller is easy to debug and design. Firmware used to program a micro-controller is easy and  Open source libraries are available to program a controller. 

Microprocessor requires an Operating system as in a computer.If the application is extremely complex and requires a special central control unit, microprocessors are preferred. 


FPGA  vs. Micro-controller : 

From our previous discussion its clear that consumer specific projects which require customization FPGA or Micro controller is preferred. 

Now lets do a comparison of  FPGA and Micro controller.

1. Micro controllers are programmed using an assembly or a high-level language which is converted to machine code for execution on a CPU. FPGA programming is more complex compared to micro controller programming.

2. FPGAs can execute multiple instructions at the same time i.e. in parallel form. This is a big advantage over micro-controllers, which can only execute one instruction sequentially. So FPGAs are typically much faster at processing tasks. 

3. Any digital circuit can be designed on an FPGA, provided the chip contains a sufficient number of logic blocks to emulate the design. Micro-controllers do not offer such flexibility. This is because there is no way to alter the chipset in a micro-controller to suit an application. So FPGA offers more design flexibility.

4. FPGA is costly compared to MCU.

5. FPGA is basically a single-chip solution to a application or design requirement. Micro-controllers must interface with other peripherals which might not be in-built. 

6. Most FPGA boards are powered by a 48V backplane. This high-power requirement of FPGAs make them unsuitable for several applications. Micro-controller boards usually require a 5 or 3.3-V supply for operation. SO they are the obvious choice for the design of any battery operated, portable embedded device.

7. In general, most FPGAs have several pins. Therefore, these chips are not ideal for small spaces or constrained embedded applications where the computing processor or controller must be compact. In contrast, there are many Micro-controllers with eight pins or less, which easily fit in  small devices.

If the design requires complex logic and requires high processing ability and if the cost is comparable to the performance achieved, FPGA can be used. In case of a design that requires limited hardware, and is set to perform only some specific functions, then Micro-controller is preferred. There is no specific criteria to select FPGA or Micro-controller. Each has its own pros and cons. So which one to choose depends on design requirement , cost etc.   

Find the video lecture here :





     




Courtesy : Image by Maxence Pira on unsplash

Dec 20, 2022

FPGA and ASIC : Similarities and Differences




In this article we will do a comparative study on FPGA and  ASIC.  FPGAs are  integrated circuits although they have certain distinctive features which make them different from ASICS.

Lets start our journey with definitions of FPGA and ASIC. 

I. What is FPGA?

Field Programmable Gate Array is abbreviated as FPGA.It is an integrated circuit and unlike ASIC it can be configured after fabrication as per customer need. Hence the name "Field Programmable" is used. It can work as a microprocessor, or as an encryption unit, or graphics card, or even all these.

FPGA consists of Configurable Logic Blocks (CLBs) connected with programmable interconnects(Fig 1). The Configurable Logic Blocks are primarily made of Look-Up Tables, Multiplexers and Flip-Flops. They can implement complex logic functions. Apart from Configurable Logic Blocks and routing interconnects, many FPGAs also contain dedicated hard-silicon blocks designed for various dedicated functions such as Block RAM, DSP Blocks, External Memory Controllers, PLLs, Multi-Gigabit Transceivers etc. 



Fig 1. FPGA block Diagram

Another emerging trend is inclusion of a hard-silicon processor core inside the same FPGA die itself. In such a case the processor takes care repititive, non-critical tasks and the FPGA takes care of high-speed acceleration.

II. What is ASIC?

Application Specific Integrated Circuit is abbreviated as ASIC. ASICs are intrigated circuits designed for a specific application and the chip follow or execute same function throughout its life time, there is no change or alteration.For example, the CPU inside phone or laptop is an ASIC. It is designed and fabricated to act as a CPUfor whole of its lifetime. Its logical functioning will remain unchanged as the whole gate level design is permanently fabricated with MOSFETs and metal interconnets on physical silicon wafer. In ASIC flow everything starts with specification and after all the steps the design is transferred on the Silicon as millions of MOS devices and metal interconnects between them.  

                              Fig 2. VLSI Design Flow

Now lets discuss the similarities and differences between FPGA and ASIC.

1. FPGA is Reconfigurable circuit. FPGAs can be reconfigured with a different design. In some FPGAs its possible to reconfigure a part in a particular way whereas the rest of the chip is functional. 

ASIC has Permanent circuitry. Once the application specific circuit is taped-out into silicon, it cannot be changed. The circuit will work same for its complete operating life.

2. There is one similarity between ASIC and FPGA, in both cases the designs are specified generally using hardware description languages (HDL) such as VHDL or Verilog.

3. The NRE or non-recurring engineering costs for ASICs is high due to custom design and development and costs of masks. This cost could potentially reach millions of dollars. FPGAs, on the other hand, have no NRE costs.

4. FPGA is not suited for very high-volume mass production whereas AISC is suited for very high-volume mass production. Because of mass production the end product reaches customer hand in reasonable price. For an example if you consider the kind of effort and process requires in launching a new phone in market is huge. A phone is as smart as its processor. Obviously the cost related to it also huge.Starting from design, fabrication, launching, digital promotion, hiring a star brand ambassador, the total final cost for a batch of smart phone is unimaginable for a common consumer although its within reach of a common man.  Just think for a while. Just because mass production the end product become purchasable in terms of money. 

5. FPGA is usually  less energy efficient and operates in limited operating frequency compare to ASIC in similar process nodes.

ASICs are much more power efficient than FPGAs. In ASICs Power consumption can be controlled and optimized very precisely. In advance applications ASIC solution for less leakage and high speed performance are different thus concentrationg on one at a time. Node is aslo selected as per application. ASIC fabricated using the same process node can run at much higher frequency than FPGAs since its circuit is optimized for its specific function.

6. Analog designs are not possible with FPGAs. Although FPGAs may contain specific analog hardware such as PLLs, ADC etc, they are not much flexible. ASICs can have complete analog circuitry, for example WiFi transceiver, on the same die along with microprocessor cores. This is the advantage which FPGAs lack.

7. Time to market is a great deciding factor when it comes to business viability. Time to market is much lesser in case of FPGA with respect to ASIC. FPGAs don’t require layout/masks so the overall production time is lesser. They are reprogrammed in the field as per need so there is less need to perform test and verification. 

ASIC design is more complex , custom design is often required. Due to the complexities and customization in design at every step more time requires starting from learning,designing,testing and verification. Eventually the time to market become longer.

8. ASIC is designed for one functionality so the number of gate and hence the size optimized. FPGAs are designed for multi functionality and hence usually larger in size. 

9. FPGAs are suitable for applications where the design need to be upgraded for better algorithm or better design such as Radars, Cell Phone Base Stations etc. Here, programmability is the deciding factor.

ASICs are not suited for applications where the design need upgradation frequently. 

10. FPGAs are preferred for prototyping and validating a design or concept. Even many ASICs are prototyped using FPGAs. Major processor manufacturers use FPGAs to validate their System-on-Chips (SoCs). It is easier to make sure design is working correctly as intended using FPGA prototyping.

Although ASIC is not recommended to prototype a design.Once the silicon has been taped out, almost there is no way to fix a design bug.

11. FPGA process doesn't require back-end design(Fig 3). Everything is handled by synthesis and routing tools. So designers make sure the circuit works as er RTL code and meets timing. 

                               Fig 3. FPGA Design Flow

ASIC designers need to care for everything like RTL,Synthesis, Floor planning, PnR, Layout, Timing (Fig 2) closure etc. Each step of flow is handled by different specialist team.  

Well these are the differences between ASIC and FPGA. 

Depending on requirement and priority one need to choose wisely between ASIC and FPGA. If an application need flexibility for future update or budget  is low and require low volume production, FPGA is the solution. Whereas if the apllication required high speed performance or it is power sensitive or high volume production is required, its an analog circuitry then ASIC is the solution.

FPGA field have good scope of work. If you are good at programming, RTL coding, proficient in Verilog, Vhdl, more inclined in front end can look for job in FPGA.

Find the video lecture here: 




Courtesy : Image by Vishnu Mohanan on unsplash



Nov 18, 2022

PCB Design to Physical Design

One of our YOUTUBE viewer asked us whether he can shift domain from PCB design to Physical design. In this article we will address this topic. To get the answer we will try to understand very basics of PCB design, steps related to it and how it is get done. If you have related question in mind keep reading the whole article. 


                                        Fig.1   

PCB designing and VLSI designing are entirely two different aspects. PCB designing deals with the design of board on which the IC and other individual components like diode, transistor are placed whereas in VLSI components like diode, FET are fabricated on  same semiconductor substrate to  built a functional chip. There is no logic design involved in PCB design.  Wherein VLSI design we basically design the logic which means we use number of transistors to implement a function like a microprocessor .


Fig .2

What is scope of PCB Designer :

A PCB designer is primarily designs and develops PCB using computer software programs. A commercial PCB design tool create layouts and 3D models of circuit boards and check whether the board is functional.

Software used for PCB design :

We have listed few popular tools used for PCB design -

1. ALTIUM DESIGNER (PROTEL)

2. POWER PCB (PADS),

3.  ORCAD,

4. WG, 

5. ALLEGRO (CADENCE)

6. EAGLE PCB OR EASILY APPLICABLE GRAPHICAL LAYOUT7.

7. KICAD

8. EASY ED EDITOR PCB 

9. PROTEUS DESIGN SUITE

10. SOLIDWORKS PCB

11. DIPTRACE

Free Tools For PCB Designing :

There are several good free EDA software like  PCBWeb Designer, DesignSpark PCB, ExpressPCB, gEDA, Osmond PCB, ZenitPCB, TinyCAD, and many more and  these are suitable for both DIY enthusiasts and professional PCB designers.

PCB designing is just not connecting components, there is more to it. Antenna designing, high voltage/current PCBs, PCB for CE certifications, PCBs for EMI EMC protection are quite challenging to design. PCBs can be single-sided (one copper layer), double-sided (two copper layers on both sides of one substrate layer), or multi-layer (outer and inner layers of copper, alternating with layers of substrate). Some report says the  world market for bare PCB exceeded $60.2 billion in 2014 and is estimated to reach $79 billion by 2024.

PCB design basics are very important as multiple extensive revision eventually create serious delay in completion of the project resulting in exceeding timeline and increased budget. 

Step-by-Step PCB Design Guide

In VLSI very first step in Chip fabrication is specification , in PCB  design also everything starts with specification. Then comes initial drawings and through 9 steps the designer reach the final files. Lets know all these 9 steps to understand basics of PCB design. 

1. Understanding  the electrical parameters: 

Understand and  cross check electrical parameters of the system before starting a PCB design. A designer must understand few electrical parameters of the system like Maximum  Current, Voltages, Signal types, Capacitance limitations, Impedance characteristics etc.

2. Creating the schematic :

Once the basic parameters are properly studied and cross checked then schematic is done. It’s the electrical level design.

3.Creating PCB layout : 

Commercial tool like Mentor PADS®, Allegro, or Altium are used to  develop a schematic and these tools are able to show how the board will operate and where the components should be placed to get fit into the intended device.

4. Designing PCB stackup:

A stack up is the arrangement of layers of copper and insulators that make up a PCB before designing the final layout of the board. This is important to consider early on in the PCB design stage due to impedance, which refers to how much and how quickly electricity can travel down a trace. The stack up plays a role in how the mechanical engineer can design and fit the PCB into the device.

5. Defining design rules and requirements:

 Design rules are dictated by standards and acceptability criteria from the IPC , which is the industry standards for PCB and electronics manufacturing.

6. Placing components:

Components placing is done following  layout guidelines and discussing the design.  

7. Inserting drill holes:

This step is driven by the components and a connection. 

8. Routing the traces:

Once the components and drill holes are placed connection is routed.

9. Adding labels and identifiers:

Next  labels, identifiers, markings are added to the layout. 

10. Generating design/layout files:

This is the final step and these files contain all the information regarding printed circuit board. Once the layout files are generated, the  PCB is now ready for fabrication, and manufacturing and assembly.

Well these are the steps involved in PCB design.

PCB design involves placement of components , using commercial tools etc, although there is no similarity between PCB design and Physical design. 

So if you are working in PCB design domain and have few years of industry experience . Leveraging that experience in Physical Design domain is not possible. If you are really interested to change the domain first read about it. There are so much free material available in internet. Read them. We have in depth series in TechSimplified Tv on Physical Design. Watch it. Link is provided in the description box. In addition to that you can go for paid course where you will get a certificate at completion. That certificate will help you. If your company have both PCB design and Physical Design teams, talk to your manager that you want to change the domain. You might get guidance.  I have seen people changing domain from Digital to analog-mixed-signal design and I know that person did it in 2nd year of his first job. He used to spend extra 3 hours in office every single day after 6 pm and used to learn AMS. Its a real example. If you are determined enough go ahead and start your journey. Hope this article will help you. 

Video Lecture on this topic is here :







Courtesy :  Tima Miroshnichenko ; Aandrey Matveev;  Tech Kiga from pexels.com

Nov 15, 2022

Front End Vs. Back End in VLSI

                                                              

In this article we will discuss how to choose between Front End and Back End. 


The VLSI design flow can be divided into two major parts  

1. Frontend 

2. Backend

Both together, allow the creation of a functional chip from a SPEC/specification  to production. In VLSI design either we try to address an existing problem or explore some opportunity by transforming a specification into a circuit designed on Silicon. 

The frontend flow is used to transform the specification or the behavioral description into a RTL circuit description. The major steps of front end flow are 

1.  Specification: This is the first stage in the design process where we define the important parameters of the system that has to be designed into a specification.

2. High-level Design: In this stage, various details of the design architecture are defined. In this stage, details about the different functional blocks and the interface communication protocols between them, etc. are defined.

3. Low-level Design: This phase is also known as microarchitecture phase. In this phase lower level design details about each functional block implementation are designed. This can include details like modules, state machines, counters, MUXes, decoders, internal registers, etc.

4. RTL coding: In RTL coding phase, the micro design is modeled in a Hardware Description Language like Verilog/VHDL, using synthesizable constructs of the language. Synthesizable constructs are used so that the RTL model can be input to a synthesis tool to map the design to actual gate level implementation later.

5. Functional Verification: Functional Verification is the process of verifying the functional characteristics of the design by generating different input stimulus and checking for correct behavior of the design implementation.

6. Logic Synthesis: Synthesis is the process in which a synthesis tool like design compiler takes in the RTL, target technology, and constraints as inputs and maps the RTL to target technology primitives. Functional equivalence checks are also done after synthesis to check for equivalence between the input RTL model and the output gate level model.

7. Placement and Routing: Gate-level netlist from the synthesis tool is taken and imported into place and route tool in the Verilog netlist format. All the gates and flip-flops are placed, Clock tree synthesis and reset are routed. After this each block is routed, the output of the P&R tool is a GDS file, which is used by a foundry for fabricating the ASIC.

8. Gate-level Simulation: The Placement and Routing tool generates an SDF (Standard Delay File) that contains timing information of the gates. This is back annotated along with gate level netlist and some functional patterns are run to verify the design functionality. A static timing analysis tool like Primetime can also be used for performing static timing analysis checks.

9. Fabrication: Once the gate level simulations verify the functional correctness of the gate level design after the Placement and Routing phase, then the design is ready for manufacturing. The final GDS file (a binary database file format which is the default industry standard for data exchange of integrated circuit or IC layout artwork) is normally sent to a foundry which fabricates the silicon. Once fabricated, proper packaging is done and the chip is made ready for testing.

10. Post-silicon Validation: Once the chip is back from fabrication, it needs to be put in a real test environment and tested before it can be used widely in the market. This phase involves testing in a lab using real hardware boards and software/firmware that programs the chip. Since the speed of simulation with RTL is very slow compared to testing in the lab with real silicon, there is always a possibility to find a bug in silicon validation and hence this is very important before qualifying the design for a market.

The set of above stages are roughly divided into two halves – the first half is known as the Front End of VLSI design while the second half is referred to as Back End VLSI design.


All of the stages from Specification to Functional Verification are normally considered as part of Front end and engineers working on any of these are Front End VLSI design engineers. All stages from Logic Synthesis till Fabrication are considered as Back End and engineers working on any of these are considered as Back end VLSI design engineers.

Other Popular Job Role in VLSI:

Some job categories though have some vague distinction between front end vs back end:

1. Post Silicon validation is normally a separate phase for product readiness. Some times engineers working on this have more interactions with front end design and verification engineers.

2. Emulation, FPGA design, and PCB design are also not truly classified in this design flow.

3. Gate-level simulation is mostly done my front end VLSI design engineers even though it is post synthesis.

4. There are also separate job categories like Custom circuit design, Analog and Mixed-signal circuit designs – which could be considered separate.

Career Opportunities – Front end vs Back End:

In terms of opportunities and importance, both  Front end engineers and Back end Engineers are equally important, equally challenged.  Both will have equal opportunities in terms of building a career and opportunities to earn.

On the front end side,  an engineer could start as an  RTL design engineer or a Verification engineer and gain deeper knowledge and skills as they progress in a career.  In terms of job opportunities, there is a demand for more verification engineers compared to design engineers.

Engineers could gain deeper knowledge and expertise in the same domain.  Some engineers who have a strong interest in architecture and micro-architecture can also grow as system design architects and micro architects.

On the back end side,  engineers can start with logic synthesis, Placement, and Routing, Layout, Physical verification, static timing analysis. Most of the back end engineers would need a better understanding of process technologies,  transistors, high-speed design issues and a good grasp of tools and automation.

An engineer can choose to have a career in front end or back end based on these understanding and their specific interest and skills.  In terms of earning the opportunity, both have equal opportunities and beyond the differentiation – a lot would depend on how you learn, execute and grow.

Most Popular Job Role in Front End:

1. RTL Coding: with help of high level HDL coding (VHDL or verilog ) he designs the architecture of the chip, a basic skeleton of circuit. It is similar to design a pipeline to circulate the flow of water.

2. Synthesis: Synthesis transforms high level verilog/vhdl constructs, which don't have real physical hardware that can be wired up to do your logic, into low level logical constructs which can be literally modeled in the form of transistor logic or look-up tables or other FPGA or ASIC hardware components.

3. Verification: HDL model is then verified for Functional correctness using different Verification methodologies and refined until the HDL model is proved to be meeting the specifications.

Most Popular Job Role in Back End: 

He deals with further manufacturing and fabrication process. There he fabricates designs onto silicon dies which are then packaged into ICs.

1. Floor planning and power planing: the physical design process starts with floor planning. Where engineer actually works with the core level circuit. He decides where to place basic blocks and how to route them,what is power requirements of the circuit and how to utilities it efficiently.

2. Placement: To locate the basic components and efficiently eliminating any timing constraints.

3. Clock Tree Synthesis: As the circuit may use multiple clock sources such as PLLs, oscillators etc. so a proper synchronization must be provided.

4. Physical Verification: After completing the routing process. It is needed to inspect the process output, physical verification tools are needed to look for signoff LVS and DRC checks.

Which one has future:

Well it totally depends on what are you good at,because there are many fields in vlsi chip design in which core knowledge is required.Still for a long run, to work in back end will give a more challenging and exciting opportunity to know what is actually going on in the chip inside. Talented back end engineers are in very good demand ,For coming decade it will generate an exciting opportunity to build a good career.

Video lecture on this topic is here :


Nov 11, 2022

Changing Domain From Software/IT to VLSI

Many time we have came across a question about how to change domain from software/IT to VLSI.  In this article we will limit our discussion about and around this topic.


Getting a desired job is all about match
ing between required skill set for the post and expertise/experience of the applicant. Now VLSI/ Semiconductor industry is predominantly a domain for people having electronics background. However there is significant scope for people from computer science background also. For example RnD teams of EDA companies require ppl from computer science background. In many IP companies , CAD team is completely run by ppl from computer science background.  Moreover System team, Shipping and Delivery team require ppl with strong programming skill. If you are working in IT/ Software background for quite some time and want to join VLSI/Semiconductor industry then first thing you must do is that, try to understand where you stand with your skill set with respect to required skill set. That you can do by keeping a close eye on published job openings in different job portal or  professional networking site. Try to understand the Jd to find out  which kind of skill set is required. If you have those skill set then congrats, half of the work is done. If you lag in skill set, don't get upset,make a plan to acquire those skill set. For domain knowledge of front end or back end or to know about the basics of different steps of VLSI flow you may join some finishing school and after completion of the course you will get a certificate. Try to gather some domain knowledge. You might aim to join any RnD team of an EDA company  where you will contribute to develop an EDA tool. A little bit generic knowledge on how that tool will impact a customers work or where actually in the VLSI flow it is used will help you during the interview.

 Now lets see some example JD :

JD 1 : 

This sample JD is collected from a job portal. From both the desired skill and qualification section  you can get an initial idea about the job role.  For this opening the company is looking for a person with degree of   computing discipline and with relevant knowledge.This is a typical job opening for ppl with computing background and almost all product company need such ppl. 

There is another sample JD on the screen. 

JD 2:  


This is  a JD for EDA tool developer and they even looking for a person with proven industry experience of 5 yrs.So there are openings, one need to follow such openings and prepare themselves accordingly.

Now once your preparation part is done,  rewrite your resume and upload to multiple job portals. Also search for jobs on professional networking sites and apply.  

Hope this article will help you and we want to say all the best in advance.  

Video Lecture on this topic is here :






Courtesy : Vanessa Garcia, Pixabay, Pok Rie from www.pexels.com

Nov 10, 2022

Simulation vs Emulation

We are quite familiar with the terms Simulation and Emulation. Both are part of VLSI. Now the question is , how they are different?  Today we will try to understand it.

Simulation : 

A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of models. Those model represents the key characteristics or behaviors of the selected system or process. Simulation represents the evolution of the model over time. A simulator acts like a system but may not necessarily abide by all the rules of the system.

 
 Fig.1 : Flight and Car Simulators

For example, take flight simulator. It feels like we are flying an airplane, but in reality we are completely disconnected from flying the plane.

Another example is Car Simulator which is used for training. When u r in a car simulator it seems that u r riding a car although u r on a seat which moves according to the visuals u r watching on the  screen.

Simulators in VLSI :

HDL simulators are softwares that  simulate expressions written in VHDL/Verilog/SystemVerilog one of the hardware description languages to verify its correctness before implementing on Silicon. Simulation is the process of describing the behavior of the circuit using input signals, output signals and delays.Functional simulation is necessary for complex designs, because early detection of logical errors saves significant time and expense.

Now if we move to the analog circuit the similar kind of simulation is done by spice simulators through pure spice , accelerated spice or fast spice methodologies.

Commercial HDL simulators are VCS from sysopsys, NCSIM from Cadence, Modelsim from Mentor-Simens. 

For analog simulation most popular simulators are Hspice from Synopsys, Spectre from Cadence and ELDO from Mentor-Simens. 

Emulation : 

Emulation is a system that acts exactly like something else and abides by all of the rules of the system being emulated. It’s like duplicating every aspect of the original device’s behavior. It is efficiently a complete imitation of another system, from being binary compatible with the emulated systems inputs and outputs, but operating in a different environment to the environment of the original emulated system. The rules are permanently fixed, and cannot be changed . In today’s time hardware emulation has become one of the popular tools for the verification.

Emulation started in late 80s and implemented with commercial FPGAs. It became especially popular in the 1990s to verify processor and graphics designs that required long sequences of test cycles. 

In the past few years, the emulation user community has expanded exponentially as software developers has joined the group along with hardware designers and verification engineers. 

Emulators are faster and can have higher capacity than simulators. Emulation become more significant as single processor performance stopped scaling. The logic simulation processes is not suitable for parallel processing. Simulators are struggling with both the growing size and complexity of design. Hardware emulation gained popularity because of its capaility to debug both the hardware and software of complex SoC designs. Emulators are a lot more expensive than simulators. Good thing is that emulation cost per gate has steadily declined over the years. This means that they have been getting more affordable and increasingly required.

The most significant advantage of emulation over simulation is speed and its ability to operate in system environment.

Commercial emulators are ZeBu from Synopsys,   Palladium from Cadence , Veloce from Mentor. 

Simulation or Emulation : which one to choose

Now lets discuss where to use simulation and where to use emulation. HDL simulators are good for hardware debug in the early stages of the design cycle, when the design is focused at the block level. Easy to use, quick to setup and amazingly fast to compile a design. They are exceptionally flexible to debug a hardware design. They support several design iterations per day, as long as the design size is reasonable. They become problematic when number of gates increases. So simulators basically fails at system-level design verification. They are not capable of embedded software validation also.

On the other hand,  hardware emulation can find almost all design bugs. Both in the hardware or in the SoC’s embedded software. They accommodate any design size. They require a long time to setup and they are relatively slow to compile, compared to the simulator. Modern emulators support many concurrent users, including via remote access.


Find the Video Lecture on this topic here :






Courtesy : Vidal Balielo Jr and  ThisisEngineering  from www.pexels.com

Facing Interview For Fresher

After Post-COVID situation we are gradually approaching the normal life. Although many companies are following hybrid model of work-from-home and work-from-office , hiring has started. So we decided to discuss about general interview structure and essential topics a vlsi fresher must know.

 Any fresher usually face there types of screening.

1. Written Test :

In this article episode we will limit our discussion within core technical part. In written question paper you will face aptitude questions and technical questions. Technical questions will cover both electronics and programming. 

2. Face-to-face/ f2f Round  :

If you clear the written paper you will be selected for multiple round of f2f interviews. In f2f mostly technical questions are asked. Here also you will face questions from core electronics part and programming part.


3. HR round :

In HR round the person on the other side of the table will try to understand you. They have seen your technical capabilities in technical interview and now want to understand you as a team player. Its important for the team and the unit you are joining. 
For HR preparation there are tons of free material in internet. Search them, read them, watch videos. Talk to your seniors.


Preparation For Technical Interview :

Now lets see what are the topics you need to know for technical interview : 

For core electronics part first comes analog electronics.

 1.  Analog electronics :

  • In analog electronics you need to know basic structure, functioning, circuit behavior i.e. characteristics of different semiconductor devices  like  diode, zener diode, BJT, MOSFET etc. Basics means structure, how current  flows, how the device works.
  • Their characteristics, Different configutration of BJT and MOSFET is equally important. Circuit configuration and I-V plot. You might have to explain it on pen and paper. 
  • OP-AMP is very important. Uses of OP-AMP is very common in interview. They might ask you todraw the ckt diagram and explain the operation of the ckt with input and output waveform. 
  •  All kinds of active and passive filters, their charcterinstics, ckt diagram, wave form are equally important.
  • The  PLL ckt is used as a clock generator in vlsi chips. Hence the PLL ckt and its operation has grave importance in VLSI chips. So you must be  through in knowledge of design of a PLL upto the tansistor level and you must understand its operation from the transistor perpective.

2. Digital electronics: 

  • Starting from Number Systems, Boolean algebra, Logic gates, Combinational circuits and Sequential circuits, MUX, Decoder  , latch, Flip flops,  State Machines, all types of memories ADC and DAC and logic families like  ECL,TTL etc are important. Memory includes RAM,  ROM, SRAM, DRAM, EPROM, Non-volatile memory, Cache memory etc. You cannot afford to skip any topic from digital electronics. So be thorough in your preparation. In any of the topic you might need to draw the diagram and explain.
  • In semiconductor memories, you must focus on the circuit operation, how a purely analog circuit helps to preserve an array of digital beats.You must also understand similarities and dissimilarities among RAM, ROM, EPROM,Non Volatile memories etc.
  • In non-volatile memories you must also focus on the architectural difference between NAND, AND, NOR arrangements of NVM. You must also know why these arrangements are compared to the NAND and NOR architectures.

3.  VLSI fabrication process

  • Crystal growth , Wafer preparation , Oxidation , Diffusion , Ion implantation , Lithography, Epitaxy , Etching, Poly-silicon, Dielectric film deposition, Metalization, Yield and reliability these are the steps which are used to fabricate a chip. Hence you need to cover all these topics. 
  • Learn to draw stick diagram of couple of popular circuits you find in your text book. These stick diagrams are very important if you are interviewed for opening in physical design or layout design team.

4. Overview of VLSI design flow :

Learn the sequential steps of VLSI design flow. Since you are a fresher deep knowledge is not expected however fundamentals must be thoroughly covered .You must know significance of each and every step. Your understanding must be very clear about how a step is connected to its previous and next steps. Try to know the name of some commercial tools used for each step.

5. CMOS circuits and logic design:

In this section questions are asked related to NMOS and PMOS operation and CMOS inverter, Noise margin and CMOS operation . Understand the circuit and  prepare to explain it with input and output waveform. You must also go thorough in the designs of NAND, NOR, AND etc the basic logic gates using the CMOS transistor circuit. Those who are interesting in digital designing may venture out in a bit of more complex digital circuit  like MUX, DECODER, ENCODER using the CMOS transsistor architechture.

For each interview , while you are preparing,  if you have  job role and required skill set study it carefully. Follow your own gut feeling in addition to the help provided in the video :

6. Programming Skill : 

From Programming or coding part you need to know

  • C/C++ and data structure.
  • Scripting language like -PERL, Python,  TCL, Shell scripting
  • PERL, Pytthon, TCL and Shell are most frequently used in VLSI flow. So try to learn all of them. Parsing, flow automation,  report generation, data extracting all are done by scripting languages. While working with EDA tools , TCL is most important. All the tool command written in TCL. You can write wrapper in TCL to run a tool. 
  • Basic Linux command- basic linux command you need to know for day to day work.

Detailed and in-depth series on PERL, TCL, BASH scripting and LINUX are available on our YOUTUBE channel. 

Series on PERL  : 


Series on TCL  : 


Series on BASH : 

Well these are the topics you need to know for your interview. Once a company hire you, usually , they will train you for specific domain. Most companies have well structured training module. So keep learning, and keep enjoying the process. 








Courtesty : www.canva.com; Anna Tarazevich, Andrea Piacquadio, Edmond Dantès, Picjumbocom, Anna Shvets, Cottonbro Studio from www.pexels.com

First Stepping Stone for VLSI


You must have heard the famous quote" A journey of a thousands miles begins with a singe step". That is so  true. This article is about that very first step. Its about that phase when a student has joined an engineering college and wants to know about VLSI. How would he start? How would he proceed? Lets try to find the answers.


1. Start with what you have:


Well the vast sea of VLSI/EDA consists of droplets of semiconductor. So very basic is with you. Your text book. Understand semiconductor. Its physics. How it works. Then basic devices. Diode,Transistor, MOSFET all you need to know. All the devices that you read in your text book are fabricated in real chip. So if you know them, well then great! You have taken very first step successfully.


2. Understand the mapping:


What you read in text book and what a  VLSI engineer does in industry are absolutely related although it seems both are disjoint. Try to understand the mapping for broader picture! If base is strong the structure will stand there for years. 


3. Understand the requirements :


You must understand the requirements of the industry. Requirements means technical and non-technical both. Understanding electronics is the technical requirement and we will discuss this in detail . The non technical requirements are Problem solving mindset, thinking out of the box , learning attitude, working in a group mindset, corporate work pressure handling.


i. Problem solving mindset : Problem solving attitude is the most desirable quality for this industry. Every morning when you reach your desk expect some new bug is there, some tool has failed and your manager expect an answer from you before lunch. If you enjoy this problem solving situation under pressure  on almost daily basis then you r fit for this industry. 


ii. Thinking out of the box : Not all problems are known. Many time out of the box thinking will lead you to desired result. So try to think differently.


iii. Learning attitude : VLSI is a very dynamic domain. You always need to learn new things. If that is OK with you great!


iv.
 Working in a group mindset : Tape out is a group effort. Don’t ask for personal fame. 
The different VLSI teams work together and exchange ideas for any known or unknown design challenge leading to a seamless  chip design flow.

v. Corporate Work Pressure Handling : Corporate job has good reward, challenge and dense work pressure. Ask yourself whether you are truly interested to handle this work pressure for few decades.



Self talk is necessary. Ask these questions yourself because its always should be look before you leap.

4. Start your technical preparation: 


You are interested in core electronics and understand the prerequisite of joining VLSI domain. So lets move to technical requirement.   You need to know   CMOS Fundamentals,  EDA tools,  Verilog/VHDL, Scripting language,  Semiconductor fabrication process, Static Timing analysis, Linux/Unix 


i. CMOS Fundamentals : Your CMOS fundamentals must be very clear. Any standard book will help you. Online materials are also available.


ii. EDA tools : Commercial tools are super expensive , you cannot afford to have them. Free and open source tools are there to help you out. Such tools are very popular among VLSI freshers. Which tool is used for which purpose you need to know. We have already covered this topic in a video. 

iii. Verilog/VHDL : Any hardware description language like Verilog/VHDL you need to know. We have created course on verilog and we have exemplified with two different free VLSI tools namely VIVADO and ECARUS VERILOG. For both windows and linux operating systems.


iv.  Scripting language : Scripting language like TCL, PERL, BASH, Python  is required in day-to-day  work. Both for back end and front end jobs. There are lots of material available online. In our  channel we have already have complete course for TCL, PERL, BASH .


Series in PERL : 

Series in TCL : 

Series in BASH : 

One more thing to be mentioned here. All the full length courses are free of cost and as per industry standard which we take care.

v. Semiconductor fabrication process : Semiconductor fabrication process is part of your syllabus. Read it thoroughly and carefully.

vi. Static Timing analysis : STA or Static Timing Analyses is the most important topic to write the gigahertz to tera hertz speed improvement of upcoming  processors. We have covered the theory and hands on practical sessions using open timer VLSI tool. This tool is free of cost and the download and installation is demonstrated in single video. 

Video Lecture in STA is here : 

 

vii. Linux/Unix : In the world of VLSi you cannot proceed or progress without learning UNIX/LINUX. Basic UNIX commands are required. Materials are available online. We have a detailed series also. From installation of UBUNTU in your exiting windows operating systems up to the command line usage through practical sessions are covered. 

Series in LINUX : 


5. Gather Domain Knowledge:

Gather domain knowledge. There are so many ways to do so. 

i. Free materials: You can find lots of free materials online. Read them.

ii. NPTEL content : NPTEL contents are really very good. During our tenure in industry we used to watch them for better understanding of fundamentals.

iii. Tech simplified TV : We have quite a good collection of topics covered both in YouTube channel and in blog. Watch them. Many in depth series are there. Watch them, read them. They are absolutely free. Individual topics are covered in QnA or FAQ series. Those who are supercharged for VLSI career , we have recently introduced another series called RnD. Watch it.

iv. Online courses: There are so many online paid courses. If you can afford , join them.

v. Project/Internship : Industrial project or internship will give you a glimpse of real corporate world. This experience will help you to get jobs later. How to find the internship, we have a QnA video. Link is provided in the description.

vi. Webinars : Attend free webinars that are conducted by the expert or professors. You will learn a lot from the webinar because they will share their experience.

vii. Start to look into different job profiles. That will give you good idea abut positions and there requirements.

VLSI/EDA is a vast and dynamic domain. If you have decided to pursue career in this domain be prepared for  learning new things on almost daily basis. We have tried to give a pointer about many ways of gathering knowledge. Which one you choose, depends on your inclination, convenience and time in hand. Always remember " You don’t have to be great to start but you have to start to be great".

So take the first step. Preparation, persistence and perspiration will take you to your desired domain, job or company.