Introduction to Verification

The ASIC Design Flow consists of several steps, including design specification, design entry, design synthesis, design verification, physical design, and design sign-off. Design verification (DV) typically refers to the pre-silicon effort of functional validation of the design using simulation tools.

What is digital design verification ?

Digital design verification is the process of testing and validating the correctness and functionality of a digital design or system before it is released or deployed. It is an essential step in the development process of digital systems and is crucial in ensuring that the system meets the required specifications and performance standards. The goal of digital design verification is to identify and eliminate any design errors or bugs, and to ensure that the system performs as expected under different conditions and use cases. The process involves creating a verification environment that can simulate various scenarios and test the system's behavior under different conditions.

What is the need of functional verification ?

Verilog RTL coding errors can take many forms, but here's an example: Let's say you are designing a simple counter module in Verilog that counts from 0 to a specified maximum value and then resets back to 0. Here's an example code snippet that implements this counter:

 module counter ( input clk, input rst, output reg [7:0] count ); always @(posedge clk or negedge rst) begin if (rst) begin count  

In this code, the counter module has an 8-bit output count that counts up from 0 to MAX_VALUE. However, there is an error in the code that could cause unexpected behavior. The error is in the reset logic of the module. The reset input rst is expected to be an active-low signal, but the code uses an active-high comparison to detect a reset condition. This means that the counter will reset when rst is high instead of low, which could lead to unexpected behavior and incorrect results. To fix this error, the code should use an active-low comparison (rst == 1'b0) instead:

 always @(posedge clk or negedge rst) begin if (!rst) begin // active-low reset count  

Importance of design verification

To provide a rough estimate, the industry rule of thumb is that verification can take up to 70-80% of the total design time. However, this can vary widely depending on the design complexity, verification methodology used, and the expertise and experience of the verification team.

What happens if a bug is missed ?

Missing a hardware bug in verification can be costly in terms of time, money, and reputation. Here are a few potential costs of missing a hardware bug in verification:

When can you stop verification ?

Verification is an iterative process that continues until the desired level of confidence is achieved. There is no fixed rule for when to stop verification as it depends on various factors such as project requirements, schedule, budget, and risk tolerance. However, some common criteria for stopping verification are: