0% found this document useful (0 votes)
7 views15 pages

Advanced_VLSI_Randomization_Functional_Coverage

Uploaded by

snehachic48
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views15 pages

Advanced_VLSI_Randomization_Functional_Coverage

Uploaded by

snehachic48
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

RAJARAJESWARI COLLEGE OF ENGINEERING

Department Name: Electronics and Communication Engineering


Subject: Advanced VLSI
Subject Code: 21EC71

Seminar Topic: Randomization and Functional Coverage

Submitted By: Rajesh R D


USN: 1RR21EC064
Subject Coordinator: Dr S M Vijaya
Introduction: What to Randomize?
• - Definition: Randomization involves
generating data and scenarios for testing.
• - Importance: Helps uncover edge cases in
VLSI testing.
• - Examples:
• • Randomizing test data (e.g., addresses,
data values).
• • Randomizing sequence of operations.
Advantages of Randomization
• - Increases flexibility in test generation.
• - Enhances coverage of edge cases.
• - Reduces manual effort in writing test cases.
Randomization in System Verilog
• - System Verilog supports randomization for
test automation.
• - Key Features:
• • rand and randc properties.
• • Constraints for valid scenarios.
• - Example: Class-based randomization.
Randomization Syntax Example
• class RandomExample;
• rand int addr;
• constraint valid_addr { addr > 0 && addr <
256; }
• endclass

• RandomExample obj = new();


• obj.randomize();
Constraint Examples
• - Soft Constraint: Allows flexibility in
randomization.
• - Hard Constraint: Enforces strict rules.

• Example:
• constraint soft_example { addr % 4 == 0; }
Random Number Functions
• - Built-in functions for generating random
numbers:
• • $urandom: Uniform distribution.
• • $urandom_range(min, max): Generate
within a range.
• - Example:
• int random_val = $urandom_range(0, 255);
Applications of Random Functions
• - Generating test cases for edge conditions.
• - Simulating diverse hardware scenarios.
• - Stress-testing designs under random
conditions.
Functional Coverage
• - Definition: Measures how much functionality
is tested.
• - Types:
• • Code Coverage.
• • Functional Coverage.
• • Toggle Coverage.
Coverage Groups in System Verilog
• Example:
• covergroup cg;
• coverpoint addr;
• bins addr_bins[] = {[0:255]};
• endgroup

• cg cg_inst = new();
• cg_inst.sample();
Coverage Strategies
• - Cross-coverage: Combine two or more
coverpoints.
• - Data Sampling: Analyze specific conditions or
events.
Analyzing Coverage Data
• - Tools: Coverage analyzers and simulators.
• - Goals:
• • Identify untested scenarios.
• • Improve overall test effectiveness.
Challenges in Randomization and
Coverage
• - Debugging constraint violations.
• - Balancing flexibility with validity.
• - Achieving 100% coverage.
Real-World Applications
• - Used in VLSI verification for ASIC and FPGA
designs.
• - Improves reliability of complex systems.
Conclusion
• - Randomization and Functional Coverage are
vital for robust VLSI verification.
• - They enhance testing efficiency and ensure
design reliability.

You might also like