Digital Electronics Interview Questions
Logic gates, flip-flops, counters, and digital circuit design
1 What are the basic logic gates and their truth tables?
Easy
What are the basic logic gates and their truth tables?
The basic logic gates are AND (output 1 only when all inputs are 1), OR (output 1 when any input is 1), NOT (inverter, outputs complement of input), NAND (AND followed by NOT), NOR (OR followed by NOT), XOR (output 1 when inputs are different), and XNOR (output 1 when inputs are same). NAND and NOR are universal gates as any logic function can be implemented using only NAND or only NOR gates.
2 Why are NAND and NOR gates called universal gates?
Easy
Why are NAND and NOR gates called universal gates?
NAND and NOR are universal gates because any Boolean function can be implemented using only NAND gates or only NOR gates. Using NAND: NOT is NAND with tied inputs, AND is NAND followed by NOT (another NAND), OR is NAND of inverted inputs. Similarly for NOR gates. This property makes them fundamental in IC design as manufacturing can be simplified by using only one gate type.
3 What are the fundamental laws of Boolean algebra?
Easy
What are the fundamental laws of Boolean algebra?
Fundamental Boolean algebra laws include: Identity (A+0=A, A*1=A), Null (A+1=1, A*0=0), Idempotent (A+A=A, A*A=A), Complement (A+A'=1, A*A'=0), Commutative (A+B=B+A), Associative ((A+B)+C=A+(B+C)), Distributive (A*(B+C)=A*B+A*C), Absorption (A+A*B=A), and De Morgan's theorems ((A*B)'=A'+B', (A+B)'=A'*B'). These laws are essential for simplifying Boolean expressions and optimizing digital circuits.
4 What is the difference between a latch and a flip-flop?
Easy
What is the difference between a latch and a flip-flop?
A latch is a level-sensitive device that is transparent when the enable signal is active, passing input changes directly to output. A flip-flop is edge-triggered, capturing input values only at the clock edge (rising or falling). Latches are simpler but can cause timing issues in synchronous systems due to transparency. Flip-flops provide more predictable timing behavior and are preferred in synchronous digital design for proper sequential circuit operation.
5 What are the different types of flip-flops?
Easy
What are the different types of flip-flops?
Main flip-flop types are: SR (Set-Reset) with S=R=1 being invalid state, JK (eliminates invalid state, J=K=1 toggles output), D (Data) which outputs whatever was at D input on clock edge, and T (Toggle) which toggles output when T=1. D flip-flops are most common in modern design due to simplicity. JK and T can be constructed from D flip-flops. Each type can be positive or negative edge-triggered, and may include asynchronous set/reset inputs.
Get IIT Jammu PG Certification
Master these concepts with 175+ hours of industry projects and hands-on training.
6 What is a combinational circuit and give examples?
Easy
What is a combinational circuit and give examples?
A combinational circuit is a digital circuit whose output depends only on the current inputs, with no memory or feedback. The same input combination always produces the same output. Examples include: Adders (half adder, full adder, ripple carry adder), Subtractors, Multiplexers (select one of many inputs), Demultiplexers (route input to one of many outputs), Encoders, Decoders, Comparators, and Arithmetic Logic Units (ALU). Design uses Boolean expressions or truth tables.
7 What is a sequential circuit and how does it differ from combinational?
Easy
What is a sequential circuit and how does it differ from combinational?
A sequential circuit has memory elements (flip-flops or latches) and its output depends on both current inputs and previous state (history). Unlike combinational circuits, sequential circuits can produce different outputs for the same input depending on current state. Examples include counters, shift registers, state machines, and memory units. Sequential circuits can be synchronous (clocked) or asynchronous, with synchronous design being preferred for predictable timing behavior.
8 What is the difference between a half adder and a full adder?
Easy
What is the difference between a half adder and a full adder?
A half adder adds two single bits producing a sum and carry output (Sum = A XOR B, Carry = A AND B). It cannot handle carry input from previous stage. A full adder adds three bits (two inputs plus carry-in) producing sum and carry-out (Sum = A XOR B XOR Cin, Cout = AB + Cin(A XOR B)). Full adders are cascaded to create multi-bit ripple carry adders, where each carry-out connects to the next carry-in.
9 What is a multiplexer and how does it work?
Easy
What is a multiplexer and how does it work?
A multiplexer (MUX) is a combinational circuit that selects one of multiple input signals and forwards it to a single output based on select lines. A 2:1 MUX has 2 inputs, 1 select line, and 1 output; a 4:1 MUX has 4 inputs and 2 select lines. For n select lines, there are 2^n possible inputs. Multiplexers are used in data routing, time-division multiplexing, and can implement any Boolean function by connecting inputs to 0 or 1 appropriately.
10 What are decoders and encoders in digital circuits?
Easy
What are decoders and encoders in digital circuits?
A decoder converts n input lines to 2^n output lines, activating exactly one output for each input combination. Common examples are 2-to-4, 3-to-8 decoders used in memory address decoding and seven-segment displays. An encoder performs the reverse operation, converting 2^n input lines to n output lines. Priority encoders handle multiple active inputs by encoding the highest priority one. Both are essential in data conversion and address decoding applications.
11 What is a Karnaugh map and how is it used for logic simplification?
Easy
What is a Karnaugh map and how is it used for logic simplification?
A Karnaugh map (K-map) is a graphical method for simplifying Boolean expressions. It arranges truth table values in a grid where adjacent cells differ by only one variable (Gray code ordering). Groups of adjacent 1s (or 0s for POS) that are powers of 2 in size are circled, and each group yields a simplified product term. K-maps are practical for 2-4 variables, with 5-6 variable maps being more complex. For larger functions, Quine-McCluskey or computer algorithms are used.
12 What is the difference between synchronous and asynchronous counters?
Easy
What is the difference between synchronous and asynchronous counters?
In asynchronous (ripple) counters, each flip-flop is clocked by the output of the previous stage, causing propagation delay that accumulates. In synchronous counters, all flip-flops are clocked simultaneously by the same clock signal, with combinational logic determining next states. Synchronous counters are faster (no ripple delay), easier to design for complex sequences, and have predictable timing. Asynchronous counters are simpler but limited to lower frequencies due to accumulated delay.
13 What are the different types of shift registers?
Easy
What are the different types of shift registers?
Shift registers are classified by input/output configuration: SISO (Serial-In Serial-Out) for data delay lines, SIPO (Serial-In Parallel-Out) for serial-to-parallel conversion, PISO (Parallel-In Serial-Out) for parallel-to-serial conversion, and PIPO (Parallel-In Parallel-Out) for temporary storage. Shift registers can shift left, right, or be bidirectional. Applications include data conversion, data storage, delay generation, and as building blocks for pseudo-random sequence generators.
14 How does a BCD to seven-segment decoder work?
Easy
How does a BCD to seven-segment decoder work?
A BCD to seven-segment decoder converts 4-bit Binary Coded Decimal input (0-9) to outputs that drive the seven segments (a-g) of a display. Each segment is controlled by a Boolean function of the BCD inputs. For example, segment 'a' is ON for digits 0,2,3,5,6,7,8,9. The 7447 (common anode) and 7448 (common cathode) are standard ICs. Invalid BCD inputs (10-15) either blank the display or show unique patterns depending on the decoder design.
15 What is propagation delay in digital circuits and why is it important?
Easy
What is propagation delay in digital circuits and why is it important?
Propagation delay is the time taken for a change at the input to appear at the output of a logic gate or circuit. It includes tpLH (low-to-high) and tpHL (high-to-low) delays, which may differ. Propagation delay is crucial because it limits maximum operating frequency (faster clocks than gate delays cause setup/hold violations), affects power consumption (shorter delays often mean higher power), and accumulates in cascaded logic determining critical path. Modern high-speed design requires careful analysis of propagation delays.
3,000+ Engineers Placed at Top Companies
Join Bosch, Tata Motors, L&T, Mahindra and 500+ hiring partners.
16 What are setup time and hold time, and what happens when they are violated?
Medium
What are setup time and hold time, and what happens when they are violated?
Setup time (tsu) is the minimum time data must be stable before the clock edge; hold time (th) is the minimum time data must remain stable after the clock edge. Setup violation occurs when data changes too close to clock edge, causing metastability where the flip-flop output may settle to an unpredictable value or oscillate. Hold violation occurs when data changes too soon after clock edge, causing the flip-flop to capture wrong data. Both violations cause unreliable circuit operation and must be avoided through proper timing design.
17 What is the difference between Mealy and Moore state machines?
Medium
What is the difference between Mealy and Moore state machines?
In a Moore machine, outputs depend only on the current state, so outputs change synchronously with state transitions and are stable throughout the state. In a Mealy machine, outputs depend on both current state and inputs, allowing outputs to change asynchronously within a state when inputs change. Moore machines typically require more states but have simpler output logic and more predictable timing. Mealy machines can respond faster to inputs with fewer states but may have glitchy outputs requiring output registers.
18 How does a carry lookahead adder improve performance over ripple carry adder?
Medium
How does a carry lookahead adder improve performance over ripple carry adder?
Ripple carry adder has delay proportional to bit width (n) as carry propagates through each stage. Carry Lookahead Adder (CLA) uses generate (G = AB) and propagate (P = A XOR B) signals to compute all carries in parallel. Carry equations: C1 = G0 + P0*C0, C2 = G1 + P1*G0 + P1*P0*C0, etc. This reduces delay to O(log n) at the cost of more complex logic. Practical implementations use hierarchical CLA with 4-bit blocks, achieving good balance between speed and complexity.
19 What are the steps to design a finite state machine?
Medium
What are the steps to design a finite state machine?
FSM design steps: 1) Understand problem and identify inputs/outputs, 2) Draw state diagram showing states, transitions, and outputs, 3) Create state table listing next state and output for each current state and input combination, 4) Choose state encoding (binary, one-hot, Gray code), 5) Derive next-state logic and output logic equations using K-maps or Boolean algebra, 6) Implement using flip-flops and combinational logic. Verification includes checking all state transitions, ensuring no unreachable states, and proper reset behavior.
20 What are clock domain crossing issues and basic synchronization techniques?
Medium
What are clock domain crossing issues and basic synchronization techniques?
Clock domain crossing (CDC) occurs when a signal passes between circuits clocked by different clocks, risking metastability if the signal changes near the receiving clock edge. Basic synchronization uses two or more flip-flops in series (synchronizer) to allow metastability to resolve. This adds latency but reduces failure probability exponentially with each stage. For multi-bit signals, simple synchronizers cause data incoherency; solutions include Gray code encoding for counters, handshake protocols, or asynchronous FIFOs for bulk data transfer.
21 Compare one-hot and binary state encoding for FSMs.
Medium
Compare one-hot and binary state encoding for FSMs.
Binary encoding uses minimum flip-flops (log2(n) for n states) but requires more complex next-state logic with longer combinational paths. One-hot encoding uses one flip-flop per state (n flip-flops for n states) with simpler next-state logic (only checking one bit per transition), resulting in faster operation but more flip-flops. One-hot is preferred in FPGAs (abundant flip-flops, premium on routing) while binary is common in ASICs (flip-flops are expensive). Gray encoding minimizes transitions, useful for low-power or CDC applications.
22 What are hazards in digital circuits and how do you eliminate them?
Medium
What are hazards in digital circuits and how do you eliminate them?
Hazards are unwanted transient output glitches caused by unequal propagation delays through different paths. Static hazards occur when output should remain constant but briefly glitches; dynamic hazards cause multiple transitions during a single expected transition. Static-1 hazard prevention: include consensus term covering adjacent 1s in K-map that aren't in same group. Static-0 hazard: similar for POS implementation. Hazard-free design adds redundant terms or uses hazard-free coding styles. Synchronous design inherently tolerates hazards by sampling stable signals at clock edges.
23 What is the difference between a ring counter and Johnson counter?
Medium
What is the difference between a ring counter and Johnson counter?
A ring counter circulates a single 1 (or 0) through a shift register; for n flip-flops, it has n states and counts from 0 to n-1. A Johnson counter (twisted ring) connects the complement of the last flip-flop output to the first input, creating 2n states for n flip-flops. Johnson counters are more efficient but require decoding logic. Ring counters have simpler decoding (one flip-flop per state) but are less efficient. Both are self-correcting in proper designs and provide glitch-free outputs.
24 What are the main components and operations of an Arithmetic Logic Unit (ALU)?
Medium
What are the main components and operations of an Arithmetic Logic Unit (ALU)?
An ALU performs arithmetic (addition, subtraction, increment, decrement) and logic (AND, OR, XOR, NOT, shift) operations on binary data. Key components include: Arithmetic unit (adder/subtractor with carry handling), Logic unit (parallel logic gates for bitwise operations), Multiplexer (selects between arithmetic and logic results based on opcode), and Status flags (carry, zero, negative, overflow). The operation is selected by control signals. Modern ALUs may include barrel shifters, multipliers, and support for SIMD operations.
25 How do you design a modulo-N counter using standard flip-flops?
Medium
How do you design a modulo-N counter using standard flip-flops?
A modulo-N counter counts from 0 to N-1, then resets to 0. Design methods: 1) Truncated sequence: use enough flip-flops for N states and add reset logic when count reaches N-1. For mod-6: 3 flip-flops with reset when Q2Q1Q0 = 101. 2) Preset method: load specific value when terminal count reached. 3) State machine approach: design next-state logic for exact sequence. Considerations include glitch-free reset, synchronous vs asynchronous reset, and handling of invalid states for robustness.
Harshal
Fiat Chrysler
Abhishek
TATA ELXSI
Srinithin
Xitadel
Ranjith
Core Automotive
Gaurav
Automotive Company
Bino
Design Firm
Aseem
EV Company
Puneet
Automotive Company
Vishal
EV Startup
More Success Stories
26 What are tri-state buffers and why are they used?
Medium
What are tri-state buffers and why are they used?
Tri-state buffers have three output states: logic 0, logic 1, and high-impedance (Hi-Z). When enabled, they pass the input to output; when disabled, the output is electrically disconnected (Hi-Z). They allow multiple devices to share a common bus without conflict by enabling only one driver at a time. Applications include data buses, bidirectional ports, and memory interfaces. Design must ensure no two tri-state outputs drive simultaneously (bus contention) which can damage components and cause unpredictable logic levels.
27 What is Gray code and why is it important in digital systems?
Medium
What is Gray code and why is it important in digital systems?
Gray code is a binary code where adjacent values differ by only one bit. This property eliminates multi-bit transition errors in position encoders (no ambiguous intermediate states), reduces errors in asynchronous clock domain crossing (single-bit changes are safely synchronized), and minimizes switching noise. Conversion: Binary to Gray: G[n]=B[n], G[i]=B[i+1] XOR B[i]. Gray to Binary: B[n]=G[n], B[i]=B[i+1] XOR G[i]. Applications include rotary encoders, ADC design, and FIFO pointer synchronization.
28 What are the differences between ROM, PLA, and PAL?
Medium
What are the differences between ROM, PLA, and PAL?
These are programmable logic devices: ROM (Read-Only Memory) has fixed AND array (full decoder) and programmable OR array, implementing any function but inefficient for sparse truth tables. PLA (Programmable Logic Array) has both programmable AND and OR arrays, most flexible but complex and slow. PAL (Programmable Array Logic) has programmable AND array and fixed OR array, simpler than PLA with faster operation. Modern equivalents are CPLDs and FPGAs. Selection depends on function complexity, speed requirements, and available device resources.
29 How are demultiplexers used in memory address decoding?
Medium
How are demultiplexers used in memory address decoding?
A demultiplexer routes one input to one of many outputs based on select lines. In memory address decoding, upper address bits feed demux select inputs, and outputs enable individual memory chips. For example, with 4 memory chips of 16KB each, a 2-to-4 demux uses address bits A15-A14 to select one chip (CE signal), while A13-A0 address locations within the selected chip. This creates 64KB contiguous memory space. Demux-based decoding is simple but may create glitches during address transitions.
30 What is clock gating and how does it reduce power consumption?
Medium
What is clock gating and how does it reduce power consumption?
Clock gating stops the clock to inactive circuit blocks, eliminating dynamic power consumption (P = alpha * C * V^2 * f) in those blocks. A gating cell (typically integrated clock gating cell with latch) controls whether clock pulses reach the flip-flops. When the enable signal is low, the clock is blocked. Benefits include significant power reduction (30-50% typical), but design must ensure glitch-free gating to avoid clock glitches. Implementation requires careful timing analysis and proper enable signal generation.
31 What are the common methods for implementing binary multiplication?
Medium
What are the common methods for implementing binary multiplication?
Binary multiplication methods include: Array multiplier (straightforward AND-and-add structure, regular layout but large area and long delay), Wallace tree (reduces partial products in parallel using carry-save adders, faster but irregular structure), Booth encoding (reduces number of partial products by recoding multiplier, handling signed multiplication efficiently), and Booth-Wallace combination (high-performance multipliers). Trade-offs involve area, speed, power, and design complexity. Modern processors use variants of Booth-encoded Wallace tree multipliers.
32 How does a Linear Feedback Shift Register (LFSR) generate pseudo-random sequences?
Medium
How does a Linear Feedback Shift Register (LFSR) generate pseudo-random sequences?
An LFSR is a shift register with feedback from XOR of selected taps to the input. With proper tap selection (primitive polynomial), an n-bit LFSR generates maximum-length sequence of 2^n - 1 unique states before repeating (excludes all-zeros). The sequence appears random statistically but is deterministic. Applications include: pseudo-random number generation, built-in self-test (BIST), CRC calculation, data scrambling, and spread-spectrum communications. Fibonacci and Galois LFSR configurations exist with identical sequences but different internal states.
33 How does a priority encoder work and what are its applications?
Medium
How does a priority encoder work and what are its applications?
A priority encoder produces a binary output representing the position of the highest-priority active input. If multiple inputs are active, only the highest-priority one is encoded. For 8-to-3 priority encoder: if input 7 is high, output is 111 regardless of other inputs. Typically includes a valid output indicating at least one input is active. Applications include: interrupt priority handling (encoding highest-priority interrupt request), keyboard encoding, and resource arbitration in buses and systems.
34 What is a barrel shifter and how is it implemented?
Medium
What is a barrel shifter and how is it implemented?
A barrel shifter performs multi-bit shifts in a single clock cycle, unlike iterative shifters that shift one bit per cycle. Implementation uses layers of multiplexers: for n-bit data, log2(n) mux stages shift by powers of 2. Each stage either passes data through or shifts by its power value based on shift amount bits. For 8-bit shifter: first stage shifts 0 or 1, second 0 or 2, third 0 or 4. Barrel shifters support logical/arithmetic shifts and rotations, essential in ALUs and DSP applications for fast bit manipulation.
35 How do parity generators and checkers work for error detection?
Medium
How do parity generators and checkers work for error detection?
Parity is a simple error detection scheme. A parity generator computes parity bit by XORing all data bits; even parity makes total 1s even, odd parity makes it odd. Parity checker XORs received data plus parity bit; output should be 0 for even parity or 1 for odd parity if no errors. Parity detects single-bit errors but cannot detect even numbers of errors or identify error location. For better protection, codes like Hamming (single-error correction) or CRC (burst error detection) are used.
36 How do you design an asynchronous FIFO for clock domain crossing?
Hard
How do you design an asynchronous FIFO for clock domain crossing?
Asynchronous FIFO design requires: Dual-port RAM accessed by write (clk_wr) and read (clk_rd) domains independently, Gray-coded write and read pointers (single-bit changes for safe synchronization), Pointer synchronization using 2-stage synchronizers to opposite clock domain, and Full/empty flag generation comparing synchronized pointers. Full condition: write pointer equals synchronized read pointer after increment. Empty condition: read pointer equals synchronized write pointer. Gray code ensures no multi-bit transitions during synchronization. FIFO depth must be power of 2 for proper Gray code rollover. Design must handle potential metastability in synchronizers.
37 What is scan chain design for testability and how is it implemented?
Hard
What is scan chain design for testability and how is it implemented?
Scan design converts flip-flops to scan flip-flops with multiplexed inputs: normal mode uses functional data, scan mode uses serial shift path. During testing: 1) Shift in test pattern through scan chain, 2) Apply one clock in functional mode, 3) Shift out responses for comparison. Implementation considerations: Scan chain length (affects test time), number of chains (parallel patterns), scan enable timing (must not create hold violations), and compression techniques (reduce IO pins needed). Scan insertion is automatic in modern synthesis tools. ATPG tools generate test patterns achieving high fault coverage (>95% typically required).
38 How do you analyze metastability and calculate Mean Time Between Failures (MTBF)?
Hard
How do you analyze metastability and calculate Mean Time Between Failures (MTBF)?
Metastability MTBF = 1/(f_clk * f_data * T0 * e^(-tr/tau)), where f_clk is clock frequency, f_data is asynchronous data rate, T0 is metastability window, tr is resolution time available (clock period minus setup time of next stage), and tau is flip-flop time constant. Adding synchronizer stages multiplies MTBF exponentially. Design target: MTBF >> system lifetime (typically 100+ years). Analysis requires: flip-flop characterization data (T0, tau from vendor or simulation), timing constraints, and data rate specifications. High-speed designs may need specialized low-metastability flip-flops.
39 Explain the fundamentals of static timing analysis for digital circuits.
Hard
Explain the fundamentals of static timing analysis for digital circuits.
STA verifies timing without simulation by analyzing all paths. Key concepts: Setup check ensures data arrives before clock edge: Data_arrival < Clock_arrival + T_period - T_setup. Hold check ensures data stable after clock edge: Data_arrival > Clock_arrival + T_hold. Critical path is longest combinational delay determining maximum frequency. Analysis includes: clock network delays, clock uncertainty (jitter, skew), multi-cycle paths, false paths, and operating conditions (PVT corners). STA tools report slack (positive = met, negative = violated), worst negative slack (WNS), and total negative slack (TNS) for design qualification.
40 What are the key techniques for low-power digital design?
Hard
What are the key techniques for low-power digital design?
Low-power techniques address dynamic power (P = alpha*C*V^2*f) and static/leakage power. Dynamic: Clock gating (eliminate switching in idle blocks), Operand isolation (gate data to unused units), Multi-Vdd (lower voltage for non-critical paths), and DVFS (dynamic voltage and frequency scaling). Leakage: Multi-Vt (high-Vt for non-critical paths), Power gating (switch off unused blocks), and State retention power gating. Architecture level: Minimize switching activity, efficient coding, memory optimization. Verification requires power-aware simulation tracking switching activity and leakage states.
41 What is formal verification and how does it complement simulation?
Hard
What is formal verification and how does it complement simulation?
Formal verification mathematically proves or disproves properties without simulation. Techniques include: Model checking (exhaustively verify properties against state space), Equivalence checking (prove two designs functionally identical), and Theorem proving (mathematical proofs for complex properties). Advantages: exhaustive coverage, finds corner cases, verifies RTL-to-gate equivalence. Limitations: state space explosion for large designs, property specification challenges, and may not find all bugs if properties incomplete. Modern methodology combines formal for control-intensive blocks and specific properties with simulation for data-intensive and system-level verification.
42 How do you design and optimize synchronizers for high-speed systems?
Hard
How do you design and optimize synchronizers for high-speed systems?
High-speed synchronizer design considers: Flip-flop selection (low metastability FFs with small tau), Number of stages (more stages = longer MTBF but more latency), Timing constraints (maximize resolution time by tight synchronizer placement), and Clock relationships (for related clocks, use different strategies than fully asynchronous). Optimization techniques: Use synchronizer-specific cells from library, constrain placement to minimize routing delay between stages, consider fast-path constraints to prevent optimization from reducing resolution time, and verify MTBF meets requirements at all PVT corners. For multi-bit signals, use proper CDC structures (FIFO, handshake) rather than parallel synchronizers.
43 What are the principles and trade-offs in designing pipelined digital systems?
Hard
What are the principles and trade-offs in designing pipelined digital systems?
Pipelining inserts registers to divide combinational logic into stages, increasing throughput at cost of latency. Design principles: Balance stage delays (unbalanced stages limit frequency to slowest), minimize pipeline overhead (register setup/hold, clock-to-Q), and handle data dependencies (forwarding, stalling, speculation). Trade-offs: More stages = higher frequency but more latency, area, and power; diminishing returns as overhead dominates. Control hazards require branch prediction or pipeline flushing. Data hazards need forwarding paths. Retiming tools can automatically optimize pipeline register placement. Throughput = frequency, latency = stages x period.
44 How do you design memory Built-In Self-Test (BIST)?
Hard
How do you design memory Built-In Self-Test (BIST)?
Memory BIST tests embedded memories using on-chip test logic. Components: Pattern generator (creates address/data patterns like march algorithms), Address generator (provides memory addresses in required sequence), Response analyzer (compares read data with expected), and BIST controller (sequences test operations). Common algorithms: March C- (11n operations, detects coupling faults), MATS+ (simple, detects stuck-at), checkerboard (detects pattern-sensitive faults). Implementation considerations: Area overhead (typically 3-5%), test time, fault coverage, and diagnosis capability. At-speed testing requires careful clock domain management between BIST and functional clocks.
45 What are the challenges and solutions in multi-clock domain design?
Hard
What are the challenges and solutions in multi-clock domain design?
Multi-clock challenges: CDC verification (ensure proper synchronization on all crossing signals), timing closure (each domain may have different frequency/constraints), reset synchronization (async reset must be synchronized to each domain), and clock generation (PLLs, dividers, muxing). Solutions: Systematic CDC analysis using tools like Spyglass CDC, proper synchronizer insertion (2FF for single-bit, FIFO/handshake for multi-bit), Gray coding for counters crossing domains, and careful reset tree design. Verification requires CDC-aware simulation, formal CDC checks, and post-layout STA with realistic clock uncertainties.
46 How does Hamming code work for single-error correction?
Hard
How does Hamming code work for single-error correction?
Hamming code adds parity bits at power-of-2 positions (1, 2, 4, 8...) to enable single-error correction. Each parity bit covers specific data bits: P1 covers positions with LSB=1 in binary, P2 covers positions with bit 1=1, etc. For (7,4) Hamming: 4 data bits + 3 parity bits. On reception, syndrome is computed by recalculating parities; non-zero syndrome indicates error position in binary. SEC-DED (single-error-correct, double-error-detect) adds overall parity bit. Implementation uses XOR trees for parity calculation. Hamming distance of 3 (or 4 for SEC-DED) enables correction capability.
47 How do you design a glitch-free clock multiplexer?
Hard
How do you design a glitch-free clock multiplexer?
Direct clock muxing causes glitches when switching between asynchronous clocks. Glitch-free design uses feedback to ensure clean transitions: Select change is synchronized to falling edge of current clock, output clock is gated off, then select is synchronized to new clock's falling edge before enabling. Implementation: Two synchronizers (one per clock), AND gates to gate each clock, OR gate to combine. Sequence ensures no clock is gating on when another might transition. Additional considerations: handle clock stopping, ensure minimum pulse width, and verify timing through simulation and STA. Some libraries provide dedicated glitch-free clock mux cells.
48 What techniques are used for designing high-speed counters?
Hard
What techniques are used for designing high-speed counters?
High-speed counter techniques: Prescaling (use fast prescaler followed by slower counter), pipelining (register intermediate carries), parallel counting (multiple smaller counters combined), and Gray code (eliminates multi-bit transitions, simplifies synchronization). For GHz operation: minimize combinational logic in carry path, use fast ripple for LSBs with lookahead for MSBs, and optimize flip-flop selection. Synchronous counters with carry lookahead achieve better speed than ripple but require more logic. Implementation must consider clock distribution, hold time margins, and power consumption at high frequencies.
49 How do you design a power-optimized state machine?
Hard
How do you design a power-optimized state machine?
Power-optimized FSM techniques: Encoding selection (Gray encoding minimizes bit transitions between adjacent states), clock gating (disable clock when state is stable and no inputs change), state assignment (assign frequently visited states to minimize transitions), and power gating for rarely used states. Analysis requires: state transition probability estimation, encoding evaluation for switching activity, and power simulation. Advanced techniques: decompose FSM into active/idle portions, use one-hot for glitch reduction in FPGA, and optimize reset state location. Trade-offs exist between encoding for power, area, and timing.
50 What are the principles of asynchronous (clockless) circuit design?
Hard
What are the principles of asynchronous (clockless) circuit design?
Asynchronous circuits use handshaking instead of global clock. Styles include: Bundled data (data with matched-delay request/acknowledge), Dual-rail (encode both data and completion), and QDI (quasi-delay-insensitive, robust to delays). Advantages: No clock distribution, average-case performance, low EMI, natural for interfacing with asynchronous world. Challenges: Complex design/verification methodology, hazard elimination, limited tool support, and difficult testing. Key concepts: Muller C-element (outputs 1 when all inputs 1, 0 when all 0, holds otherwise), completion detection, and handshake protocols (4-phase, 2-phase). Used in low-power and high-security applications.