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

Jan 15, 2023

Embedded to VLSI : Domain Change Possible?


 

One question we frequently face whether one can change domain from embedded systems to VLSI. Now lets find answer to it. 

VLSI is the domain where a chip is designed on physical Silicon. Fabricating a chip starting from a spec is the core of VLSI. Whereas Embedded systems is duo of computer hardware and software designed for specific functions for the larger systems. 

So if you are working in Embedded Systems domain and have few years of industry experience . Leveraging that experience in VLSI domain is not possible. Moreover once you have 3-4 years of experience you have reached a point where you will get attractive salary, you have developed a good understanding of the industry and by now your networking also grown for good.  

Even after all these, 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 different in-depth series in TechSimplified Tv and articles on this blog. Watch them or read them, you will have fair idea about the domain. In addition to that you can go for paid course where you will get a certificate at completion. That certificate will help you.  If you are determined enough, go ahead and start your journey. A person who has worked in embedded systems with good programming skill can find some scope in RnD teams of EDA companies. For example RnD teams of EDA companies require people from computer science/ strong programming background. In many IP companies , CAD platform is designed by C and TCLA person with strong programming skill in these languages might get a chance to work. Moreover System team, Shipping and Delivery team require people with strong programming skill. If you are working in embedded systems 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 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.  Although we would recommend don't plan such change if it is not absolutely necessary.

Want to know about  Scope and Future Trend in Embedded Systems, read here.

Watch the video lecture here:


Courtesy : Image by uk-black-tech on unsplash

Jan 13, 2023

Scope and Future Trends in Embedded Systems


Embedded means something that is attached to another thing. An embedded system can be thought of as a computer hardware system having software embedded in it. An embedded system is a microprocessor- or micro controller-based system of hardware and software.

It  is designed to perform dedicated functions within a larger mechanical or electrical system. Such  a system can be  small and independent or large and computational.

At core an embedded system consists of 3 things:

An input Device which collects input from user or environment via a sensor or a remote control. A Micro-controller i.e the the Brain or the processing unit. It instruct the output device to perform as per the logic defined inside the collected information from input device. 

An output devics which take instruction from micro-controller and perform accordingly.

Microwave, TV, Calculator, Audio Player, Digital Camera, Printer, Traffic Lights, Digital Thermometer, Set Top Box (TV), Wifi Router, Modem are some popular consumer electronics products we use da to day basis and all of them are example of embedded systems.

Embedded system is a vast domain. There are huge number of products which are field specific like products used in medical electronics sector, aerospace, automobiles, defense, toys, consumer electronics, food industry, telecommunication, Industrial machines, space, agriculture, construction all of them are example of embedded systems.

So obviously mentioned fields has huge scope of employment. All the leading brand in consumer electronics, medical equipment, automotive industry can offer employment in embedded systems.

Required Skill : 

Now let's see what are the skill required for such jobs. 

1. Programming Skill : Earlier Embedded System was mostly hardware a little software but now the scenario is exactly opposite. The most important programming language required is C. Basic to moderate knowledge of C++, LabView, Python, Rust and Assembly Language can also be helpful.

Working knowledge of interfacing micro-controllers with different sensors and peripherals, Kernel Programming, Device Drivers, Real Time Operating Systems (RTOS) are also helpful.

2. Circuit designing skills :  Understanding of circuits, Printed Circuit Boards,Power Supply Circuit Designing, sensors, microprocessors, memory, CAD and other subjects can be useful for systems engineers. 

3. Analytical skills :  Systems engineers usually works with large volumes of product data and information to design effective solutions. Knowing basic analytical models and tools can be beneficial for systems embedded engineers.

4. Communication skills : Embedded systems engineers coordinate with several experts from the production, hardware, software, management and product design departments. Collaborating with other engineers to exchange feedback and work as a team is essential for systems engineers. They may also have to maintain meticulous records and documentation of their process, which requires strong written communication skills.

5. Attention to detail : Designing software systems for embedded devices is a complex process and requires focus and attention to small details.

Some other skills are very basic and essential for accomplishing work responsibility on day to day basis, such as 

6.  Self Learning Ability : Electronics is a market driven subject and self learning ability will help someone to upgrade with time. 

7. Interest in Learning new hardware 

8.  Patience to Read Datasheets

9.  Documentation as per company norms

10. Following Software Development Life Cycle or SDLC

11. Working in a Team

12. Completing Work in Deadlines

13. Making Reports as per the Company Requirement


Popular Job Role : 

We have listed some popular job role in embedded systems domain :

1. Biomedical Engineer : Responsible for 

i. Design, development, safety testing, repair and maintenance of biomedical equipment

ii. Ensures the equipment is working with proper functionality and quality control standards. 

Requires a bachelor’s degree and 0-2 years of direct experience in the field. 

2. Embedded Systems Architect : Responsible for 

i.   designing and implementing software of embedded devices and systems

ii.  review and design code

iii. integrate and validate new product designs

iv.  develop system software 

Proven work experience in software engineering required. 

                                 

3. Embedded Software Engineer : Responsible for   

i. development of embedded software programs. 

ii. required to collaborate and work according to client specifications and needs. 

iii. client-facing communication skills are necessary. 

iv. often needs to work as part of a larger team. 

Specialized degree in embedded software engineering is needed.

4. Embedded Systems Engineer :  Responsible for 

i. design, development, production, testing, and maintenance of embedded systems

ii. run regular tests to eliminate potential issues, provides system level support working with cross functional teams ( Mechanical, Software , Hardware, etc) . 

Systems Engineer provides Subject Matter Expert level experience in Software & Hardware Integration. Computer science or engineering degree required.

5. Firmware Engineer :   Responsible for 

i. creating software used in programmable devices. 

ii. designs and implements algorithms for firmware and create technical documents for firmware usage. 

iii.oversees firmware development process from design to creation. 

iv. manages updates and provides support. 

May be asked to alter existing software based on company needs. Firmware engineering certification required.

6. Hardware Engineer : Responsible for 

i. all aspects of the electrical system design which includes high-speed digital, power management, PCB layouts and thermal management. 

ii. collaborates with algorithm and software team.  

iii. works directly with System Architecture, Firmware, Mechanical and Electrical Engineers. 

Requires a bachelor’s degree in a related field.

7. Hardware Test Engineer : Responsible for 

i. design, implementation and testing of hardware systems 

ii. must work autonomously and have strong problem solving skill 

A bachelor's degree in computer science or a related field is mandatory.

8. Mobile App Developer : Responsible for 

i. writing software for hardware functionality on various handheld mobile devices

ii. work closely with design and development teams.  

Bachelor’s degree and extensive software development experience required.

9. Printed Circuit Board Designer : Responsible for 

i. designs and development of circuit boards

ii.  works with larger team. Typically works for software companies

iii. must have team collaboration skills and be able to work independently

Background in software engineering or multiple years of experience designing circuit boards is required.

10. R&D Engineer : Responsible for 

i. researching and creating new products and test existing products. 

ii. often works with marketing teams, executive teams, and other related teams.

R&D engineers report to project managers. Must have good leadership and communication skills. An engineering background is preferred.

11. Software Test Engineer : Responsible for 

i. developing and implementing testing methods

ii. reporting test results and recommending improvements to software programs

iii. creates Test software to test functionality of Product Code. 

Job requirements typically includes a bachelor’s degree along with excellent technical skills, communications skill and creativity.

Like any domain initial packages are not very high,  although experience of 3-4 years, you will get attractive packages. And experienced embedded system developers have extremely high demand in India. 


Is Embedded Systems a Good Career Option ?

Yes obviously. For those who has inclination and basic subjective degree like ECE, its a great match for them. 

To accelerate your preparation you can join online courses. 




Future Scope in Embedded Systems:

Online viewing is increasing and accordingly the use of the embedded system and  IoT is growing rapidly.

1. Engineer in embedded Linux : Responsible for i.developing low-level components along with significant embedded limitations 

ii.running the unit tests on them

2. Embedded IoT application developer : Responsibility includes 

 i. design and develop embedded software in C and C++ for various apps

 ii.compliance checking of new product solution

3. Cyber-security embedded developer : Responsibility includes  

i.  designing APIs to keep user data safe

ii. understanding hardware security modules, public key infrastructure transport layer security, and typical application security flaws, 

iii.testing and troubleshooting.

4. Embedded application engineer : Responsibility includes 

i.  managing the frameworks for embedded software

ii. working in open source stacks and apps 

iii.  enhancing skills in various programming languages, consisting of Embedded C and Python

5. Engineer of micro-controller firmware : Responsibility includes

i.  writing firmware for micro-controllers 

ii. using C and C++ for designing and developing embedded software 

How to enter the domain : 

In a nutshell getting a job require few factors at the right place like demand in the company and supply of eligible fresher.First entering any field  identify your interests and then get the right kind of education. If possible  enroll for courses in relative domain. Apply your knowledge to find internship. Write your resume and apply for the job. Always keep yourself updated with latest trend in technology. 

Want to know whether domain shift from Embedded systems to VLSI is possible or not , read here.

Find the video lecture here :




Courtesy :Image by Marijn Hubert from Pixabay, www.pngegg.com

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