Hazard Identification in Synchronous Design
In a complex synchronous digital circuit, which mechanism is MOST effective in mitigating the impact of both setup and hold timing violations that may arise due to clock skew between registers?
- A. Adding pipeline registers to balance path delays
- B. Using asynchronous resets at every stage
- C. Increasing the clock frequency beyond specification
- D. Employing level-sensitive latches throughout the design
- E. Disabling retiming during synthesis
Assertion-Based Verification Nuances
When using assertion-based verification for a bus protocol, what is the main advantage of temporal assertions like 'eventually' or 'always' compared to only value-based checks? Example: Checking that every bus request is eventually granted.
- A. Temporal assertions detect only combinational errors
- B. They enable property checking across multiple clock cycles
- C. They require less memory than value-based assertions
- D. Temporal assertions are evaluated only once at simulation start
- E. They automatically generate formal proofs for functional coverage
Coverage Closure in Constrained-Random Verification
During constrained-random verification of an ALU, the functional coverage reports that certain corner cases, such as multiplication with negative operands, are never hit. Which strategy is MOST effective in systematically closing this coverage gap?
- A. Increasing simulation runtime without modifying constraints
- B. Widening constraints to allow more legal stimulus variation
- C. Manually editing the coverage database to mark points as covered
- D. Commenting out coverage points that are hard to hit
- E. Reducing randomization seed width to repeat tests
Formal Verification and State Space Explosion
A formal verification tool reports 'state space explosion' when verifying a large register file with multiple read/write ports. What is the MOST effective technique to manage this complexity and successfully complete verification?
- A. Increasing simulation clock periods
- B. Performing modular verification by abstracting unused ports
- C. Disabling parameterization in the register file design
- D. Randomly pruning unreachable states from the design
- E. Reducing the register width in the HDL code
Clock Domain Crossing Bugs
If a designer uses a single D flip-flop to transfer a signal from one clock domain to another asynchronous clock domain, what is the specific risk introduced, and what is the recommended solution?
- A. The signal can be lost due to priority inversion; recommended: use a rising-edge detector
- B. The data may be metastable; recommended: employ a two-stage synchronizer
- C. The clock can glitch; recommended: use a clock buffer
- D. The logic can delay; recommended: use an asynchronous FIFO
- E. The output can tri-state; recommended: add a pull-down resistor