Apr 29, 2026

Table of Contents






Here is the blog site map. Feel free to post your feedback to improve it further. 

Insta Link to follow - MY Insta Prpfile - Follow me for more updates


CONTENTS

1.Introduction : 

1.1  Career Growth in VLSI Industry

1.2  The Future of Semiconductor 

2. VLSI Topics

2.1  Semiconductor Job Portal - Intern & freshers  

2.2  Digital Design for Beginners and Professionals

2.3  Career Growth in VLSI Industry

2.4  The Future of Semiconductor 

2.6  VLSI Industry Update

2,7  List of Semiconductor Companies

2.8  Top 10 VLSI companies

2.9  VLSI Industry Updates

2.10 Engineering Basics

2.11 Open Sourced FREE CAD/EDA VLSI tools 

2.12 List of top 10 companies in Semiconductor - 2021 

2.13 The best top 20 universities for MS in Digital VLSI in USA

2.14 Solution: Verilog HDL A guide to Digital Design and Synthesis - Samir Palnitkar 

2.15 Question Answer on VLSI Semiconductor 

2.16 System on chip architecture 


 3. Digital Design:

3.1  Low Power Design Technique

3.7  UPF Example 

3.23 Type of Adders with Verilog Code

3.24 VHDL operator 

3.25 Asynchronous FIFO with Programmable Depth

3.26 Asic Implementation Design Cycle 

3.27  Comparing AMBA AHB to AXI Bus using System Modeling. 

3.28 Difference between I2C or CAN protocol ? 

3.29  Retention Cells - UPF



4. Semiconductor Interface/Bus Protocols

4.4  SPI

4.7  Microwire IP Interface 

6.18 Verilog code for Synchronous FIFO ( First In First Out  )

 6.19 SPI Controller 

6.20  CRC Generator  


10.3 Physical Aware Synthesis 

10.4 SDC file for DDR memory 


11. Integrated-Circuit Fabrication


12. AHB-AXI Protocol 


13. PCIe Protocol 


14. Solution  :Samir Palnitkar : A Guide to Digital Design and Synthesis 

15. Place holder5


16. DAA


17. Scripting/Others

17.3  GVIM Help


18. Interview Preparation

18.5 Digital Design Interview Question on PCIe express 

 

19. Academic/ Educational Projects with Micro-Architecture and Verilog code

19.4  Microwire IP  


20. Verification


21. Physical Design

21.2 Physical Design - Common Questions  

21.3 FILLER CELLS  

21.4  Clock buffers and clock interverter 


22. General Question:

22.1  Logical Question

22.2  APTITUDE Question for Interviews


22B . VLSI Quiz 

22B.1  Quiz1 : Digital Design

22B.2 Quiz2 : Digital Design

 22B.2 Quiz 3 : Digital Design

22B.2 Quiz 4 : Digital Design

22B.2 Quiz 1 : UPF

22B.2 Quiz 2 : UPF 

22B.2 Quiz 3: UPF 

22B.2 Quiz 4 : UPF 

22B.2 Quiz UPF : Level Shifter

22B.2 Quiz: UPF : Power Switch 


23. Non-VLSI Topics:

23.8 How to start a academic project 

23.9  Team Leadership Score check 

23.10 Team Leadership Question/Answer

23.11 Being productive while working from home 


24. Salary Around the Globe

24.1 Norway Salary - Average salary for Senior Software Engineer in Norway with 10+ years experience? 

24.2  Sweden Salary - An Average salary in Sweden for IT professional  


25. Job Opportunities in Norway 

25.1  Norway Salary - Average salary for Senior Software Engineer in Norway with 10+ years experience? 

25.2  Is it hard to get a job in Norway, as a foreigner?

25.3  Living cost in Norway , compared with India

 

26. Finland Opportunities in IT Sector

26.1  Moving to Finland from India , is it worth ?

27. Funny Posts ( non technical )

27.1 40+ Photos That Evoke a Lot of Curious Questions and Can’t Be Explained


CORDIC Implementation


What is CORDIC Algorithm ? 


The CORDIC (COordinate Rotation DIgital Computer) algorithm is an efficient, iterative method for calculating trigonometric, hyperbolic, logarithmic, and square root functions using only additions, subtractions, and bit shifts. It is highly valued in hardware design (FPGAs, ASICs) and microcontrollers because it eliminates the need for expensive hardware multipliers.





How CORDIC Algorithm Works
  • Concept: CORDIC computes functions by rotating a 2D vector by smaller and smaller, predetermined angles (pseudo-rotations).
  • Operations: Instead of complex multiplication, it uses binary shifts (to divide by powers of 2) and adds/subtracts to rotate the vector, making it very fast.
  • Iterative Process: Through several iterations, the algorithm converges to the desired output, with accuracy improving as more iterations are performed.
  • Modes:Rotation Mode: Given an input angle, it computes the corresponding sine and cosine components.
  • Vectoring Mode: Given the
  • coordinates, it rotates the vector to the
  • -axis to calculate its magnitude and angle.
Key Features and Applications
  • Hardware Efficiency: It is ideal for digital signal processing (DSP), digital communication systems, and simple calculators.
  • Versatility: Beyond basic trigonometry, it is used for Cartesian-to-polar conversions, square roots, and complex multiplications.
  • Examples: It is implemented in ARM-based processors like the STM32G4, Intel 8087, and Hewlett Packard’s HP-35 calculator.

Jan 19, 2026

C/C++ MCQ - Check your skill set

C / C++ MCQ Quiz

C / C++ Interview MCQ Test

1. Which keyword prevents a variable from being modified?
2. Which operator is used to allocate memory dynamically in C++?
3. Which feature supports runtime polymorphism?
4. What is sizeof(char)?
5. Which container allows fast random access?
6. What is a dangling pointer?
7. Which function frees memory allocated by malloc?
8. Which keyword is used to inherit a class?
9. Which is NOT a C++ access specifier?
10. What does STL stand for?
11. Which loop executes at least once?
12. Which pointer manages memory automatically?
13. What is RAII?
14. Which keyword avoids compiler optimization?
15. What is the output of sizeof(int)?

C/CPP Interview Questions

 


✅ C & C++ Interview Question Bank (With Answers)


🔹 SECTION 1: C LANGUAGE (Core)


Q1. What is the difference between malloc() and calloc()?


Answer:


malloc calloc

Allocates memory Allocates & initializes to zero

Faster Slightly slower

Takes 1 argument Takes 2 arguments




Q2. What is a dangling pointer?


Answer:

A pointer that points to a memory location that has been freed or gone out of scope.



Q3. Difference between const int *p and int *const p?


Answer:

const int *p → value cannot be changed

int *const p → pointer cannot be changed



Q4. What is static keyword used for?


Answer:

Preserves variable value between function calls

Limits scope to file when used globally

Shares value across objects in C++



Q5. What is volatile keyword?


Answer:

Tells compiler not to optimize variable since it can change externally (used in hardware registers, ISR).



Q6. What is segmentation fault?


Answer:

Accessing invalid or unauthorized memory location.



Q7. What is structure padding?


Answer:

Extra bytes added by compiler to align data for faster access.



Q8. What is difference between stack and heap?


Answer:


Stack Heap

Automatic allocation Manual allocation

Faster Slower

Limited size Larger size




🔹 SECTION 2: POINTERS (Very Important)


Q9. What is pointer to pointer?


Answer:

A pointer that stores address of another pointer.



Q10. What is NULL pointer?


Answer:

Pointer that points to nothing (NULL or 0x0).



Q11. What is function pointer?


Answer:

A pointer that points to a function’s address.



Q12. Difference between array and pointer?


Answer:

Array name is constant

Pointer can be reassigned



🔹 SECTION 3: C++ BASICS


Q13. What is OOP?


Answer:

Programming model based on Object, Class, Encapsulation, Inheritance, Polymorphism, Abstraction.



Q14. Difference between C and C++?


Answer:

C → procedural

C++ → object oriented

C++ supports classes, inheritance, STL



Q15. What is constructor?


Answer:

Special function automatically called when object is created.



Q16. What is destructor?


Answer:

Function called automatically when object is destroyed.



Q17. Can constructor be private?


Answer:

Yes (used in Singleton pattern).



Q18. What is copy constructor?


Answer:

Initializes object using another object of same class.



Q19. What is virtual function?


Answer:

Function that supports runtime polymorphism using base class pointer.



Q20. What is virtual destructor?


Answer:

Ensures proper cleanup of derived class object.



🔹 SECTION 4: OOP CONCEPTS


Q21. What is encapsulation?


Answer:

Binding data and methods together and hiding internal details.



Q22. What is inheritance?


Answer:

Derived class inherits properties of base class.



Q23. What is polymorphism?


Answer:

Same function name behaving differently.



Q24. Difference between compile time and runtime polymorphism?


Answer:

Compile time → function overloading

Runtime → function overriding



Q25. What is abstraction?


Answer:

Showing only essential features, hiding implementation.



🔹 SECTION 5: ADVANCED C++


Q26. What is STL?


Answer:

Standard Template Library providing containers, algorithms, iterators.



Q27. Difference between vector and list?


Answer:


vector list

Contiguous memory Non-contiguous

Fast access Slow access

Slow insertion Fast insertion




Q28. What is smart pointer?


Answer:

Pointer that automatically manages memory.

Examples:

unique_ptr

shared_ptr

weak_ptr



Q29. What is RAII?


Answer:

Resource Acquisition Is Initialization — resource tied to object lifetime.



Q30. What is namespace?


Answer:

Used to avoid name conflicts.



🔹 SECTION 6: EMBEDDED / SYSTEM C & C++


Q31. Why use volatile in embedded systems?


Answer:

Variables can change due to hardware or interrupts.



Q32. What is ISR?


Answer:

Interrupt Service Routine — function executed on interrupt.



Q33. What is memory leak?


Answer:

Allocated memory not freed.



Q34. Difference between new/delete and malloc/free?


Answer:

new/delete call constructors/destructors

malloc/free do not



Q35. What is deadlock?


Answer:

Two processes waiting for each other indefinitely.



🔹 SECTION 7: COMMON TRICK QUESTIONS


Q36. Can main() be overloaded?


Answer:

No.



Q37. Can we have virtual constructor?


Answer:

No, but destructor can be virtual.



Q38. Can sizeof return zero?


Answer:

No.



Q39. Is C pass by value or reference?


Answer:

C supports only pass by value (reference via pointers).



Q40. Why sizeof(char) is always 1?


Answer:

Defined by C standard.


Huffman Decoder


Huffman decoder is used for data compression.

How the Decoder Works (Educational Steps)
  1. The Tree Search: In a Huffman tree, we start at the Root.
  2. The Binary Path:
    • If the bit is 0, we move to the Left child.
    • If the bit is 1, we move to the Right child.
  3. The Leaf Node: When we reach a "Leaf" (a node with a letter), we record that letter and jump back to the Root to start the next letter.
  4. Efficiency: Because no code is a prefix of another (Prefix Property), the decoder always knows exactly when a letter ends. 
Example for your Blog Post:
  • Map: A:0, B:10, C:110, D:111
  • Encoded String: 010110111
  • Decoding Process:
    • 0 → A
    • 10 → B
    • 110 → C
    • 111 → D
  • Result: ABCD

Decoder: Huffman Coding 📟

Jan 7, 2026

UPF : Power Switch

UPF : Power Switch details :

Power Switch in UPF (Unified Power Format) is used to control power gating—i.e., turning a power domain ON or OFF to save leakage power in low-power VLSI designs.


What is a Power Switch?

A power switch represents a set of header (PMOS) or footer (NMOS) transistors that:

Connect or disconnect a power domain

Are controlled by enable signals

Allow blocks to be shut down during idle mode


Why Power Switch is Needed

Reduce leakage power

Enable power-gated domains

Essential for mobile / low-power SoC designs


Where Power Switch is Used

Between:

VDD → Power-gated domain (header switch)

Power-gated domain → VSS (footer switch)


Key UPF Elements Involved

create_power_domain

create_supply_port

create_supply_net

create_power_switch

set_domain_supply_net


Simple UPF Power Switch Example  :

-----------------

create_power_domain PD_CORE

create_supply_port VDD

create_supply_port VSS

create_supply_net VDD

create_supply_net VSS

connect_supply_net VDD -ports VDD

connect_supply_net VSS -ports VSS


create_power_switch PSW_CORE \

  -domain PD_CORE \

  -input_supply_port {VDD VDD} \

  -output_supply_port {VDD_SW VDD} \

  -control_port {PS_EN} \

  -on_state {ON PS_EN}

-----------------

Meaning:

PSW_CORE → Power switch name

VDD → VDD_SW → Switched power

PS_EN → Enable signal

When PS_EN = 1 → Power ON

When PS_EN = 0 → Power OFF



Header vs Footer Switch


Type Transistor Position Common Use

Header PMOS Between VDD & block Low noise

Footer NMOS Between block & GND Area efficient




Power Switch with Isolation & Retention (Typical Flow)

1. Power switch OFF

2. Isolation enabled

3. State retained (if needed)

4. Power switch ON

5. De-isolation



Real-World SoC Usage

CPU core sleep mode

GPU power islands

Peripheral shutdown blocks



Timing-Safe Power-Up Sequence (UPF)


This sequence avoids X-propagation, crowbar current, and timing violations during wake-up.

🔌 Power-Up Order (Recommended)


1️⃣ Keep Isolation ON

Prevents unknown values from propagating

Outputs are clamped to a known value (0 or 1)


set_isolation ISO_CORE -domain PD_CORE -clamp_value 0


2️⃣ Enable Power Switch (Ramp-Up)

Gradual power ramp avoids IR-drop & inrush current

Controlled by PS_EN

PS_EN = 1


⏱ Wait until VDD reaches stable level

3️⃣ Wait for Power Good (PG)

Power must be stable before logic wakes up

Implemented via analog or digital PG signal

wait (PWR_GOOD == 1);

4️⃣ Restore Retention Registers

Restores saved state

Done before clocks are released

set_retention_control RET_CORE -restore_signal RET_RESTORE

5️⃣ Release Reset

Reset ensures known startup state

Must occur after power + retention restore

RESET_N = 1;

6️⃣ Enable Clock

Clock last to avoid spurious switching

Prevents metastability

CLK_EN = 1;

7️⃣ Disable Isolation

Domain now fully functional


set_isolation_control ISO_CORE -isolation_signal ISO_EN -deassert


📌 Golden Rule (Interview Favorite)

Isolation ON → Power ON → Power Good → Retention Restore → Reset Release → Clock ON → Isolation OFF

⚠️ What Happens If Sequence Is Wrong?

Mistake Result

Isolation OFF before power X-propagation

Clock ON before power Short-circuit current

Reset before power good Unknown state

No PG wait Timing failures

UPF Interview Questions & Answers

Q1. What is a power switch in UPF?

Ans: A power switch models header/footer transistors used to connect or disconnect power to a domain for leakage reduction.

Q2. Why is isolation required during power-up?

Ans: To prevent unknown (X) values from propagating from powered-off domains into active logic.

Q3. What is Power-Good (PG) signal?

Ans: A signal indicating that the supply voltage has reached a stable, safe operating level.

Q4. Difference between isolation and retention?

Isolation Retention

Protects outputs Preserves internal state

Mandatory Optional

Active when power OFF Active before power OFF

Q5. Why clocks are enabled last?

Ans: To prevent spurious switching and timing violations during unstable power.

Q6. What is inrush current and how do you avoid it?

Ans: Sudden current surge during power-up; avoided using staggered power switches or ramp-controlled enable.

Q7. Header vs Footer power switch?

Header Footer

PMOS NMOS

Low noise Area efficient

Near VDD Near GND

Q8. What happens if isolation is forgotten in UPF?

Ans: Functional simulation may pass, but gate-level simulation shows X-propagation and silicon failure.

Q9. Can a power-gated domain be clocked?

Ans:  No. Clock must be gated OFF before power OFF and enabled only after power-up stabilization.

Q10. What checks ensure timing-safe power-up?

Ans:

Power-aware STA

UPF consistency checks

PG signal timing validation

Isolation/retention sequencing verification

“A timing-safe power-up ensures isolation first, stable power next, state restore, then clocks—never the other way around.”

UPF : Details on Level Shifter

UPF Quiz : On Power Switch 

UPF Quiz : Level Shifter