Академический Документы
Профессиональный Документы
Культура Документы
Generated
Clock
• Waveform Glitch
Verification Are timing
Constraint • Alignment endpoints
Mapping Verification glitch safe? CDC
• Clock reconvergence
Clock Propagation • False paths in clock propagation network
Unintended path
Intended path
Back
False Paths in Clock Propagation Network
Back
Incorrect Logically Exclusive Clock Group
Back
Conflicting Case Analysis
set_case_analysis 0 U1/S
set_case_analysis 0 U2/S
Back
Generated Clock Waveform Verification
1 2 3 4 5 6 7 8 9
clk
specified
genclk
actual
genclk Back
Generated Clock Alignment Verification
mclk
mclkby2
mclkby4
4 cycles
mclkby8 of mclk
2 cycles
of mclk
Back
False-Path Verification
All paths constrained by a false-path are verified
Clock-to-Clock FPs are verified as part of constraint lint
Only paths between synchronous clocks are verified
Path passes verification if any of the following is true:
Startpoint is static
Endpoint is synchronizer cell
Condition required to propagate a transition from startpoint to
endpoint can never be true
Assertion generated for FP that fails formal verification
FPs that are specified for “timing don’t care” reasons should
not be verified
Back
False-Path Supported by Design Logic
Back
False-Path Assertion
module u_top_fp15_1 (input bit clk, input logic from_reg, input logic
to_reg, input bit v1);
property e_fp15_1;
@(posedge clk) `FT_DISABLE (`FT_TRANSITIONS_AND_NOT_UNKNOWN(from_reg))
|=> (`FT_PPC_IS_FALSE_IN_PREV_CYCLE(path_propagation_condition)
|| (!(`FT_TRANSITIONS_AND_NOT_UNKNOWN(to_reg))));
endproperty
Back
Multi-Cycle Path Verification
All paths constrained by a multi-cycle path are verified
Only paths between synchronous clocks are verified
Path passes verification if any of the following is true:
Startpoint is static
Endpoint is allowed to go metastable and startpoint value is held
stable for multiple cycles
Condition required to propagate a transition from startpoint to
endpoint is not true when the startpoint transitions
Assertion generated for MCP that fails formal verification
MCPs that are specified for “timing don’t care” reasons
should not be verified
Back
Multi-Cycle Path Supported by Design Logic
Back
Multi-Cycle Path Assertion
module u_top_mcp9_4 (input bit clk, input logic from_reg, input logic
to_reg_1, input logic to_reg_2, input bit [1:0] v60, input bit [3:0] v62,
input bit [1:0] v66);
wire path_propagation_condition_1 =
( (v60[1:0] == 2'b11) && (v62[3:0] == 4'b0011) );
wire path_propagation_condition_2 =
( (v62[3:0] == 4'b0011) && (v66[1:0] == 2'b00) );
property e_mcp9_4_1;
@(posedge clk) `FT_DISABLE
(`FT_TRANSITIONS_AND_NOT_UNKNOWN(from_reg)) |=> (
((`FT_PPC_IS_FALSE_IN_PREV_CYCLE(path_propagation_condition_2) ||
(!(`FT_TRANSITIONS_AND_NOT_UNKNOWN(to_reg_2)))) &&
(`FT_PPC_IS_FALSE_IN_PREV_CYCLE(path_propagation_condition_1) ||
(!(`FT_TRANSITIONS_AND_NOT_UNKNOWN(to_reg_1))))));
endproperty
@(posedge clk)
(($rose(poken10_1p8) && `FT_IS_LO(pok10_1p8) && $fell(pok10_out_1p8)) ||
($fell(poken10_1p8) && `FT_IS_LO(pok10_1p8) && $rose(pok10_out_1p8)))
|->
(!(`FT_IS_HI(reset_tamper_extended.q) && `FT_IS_LO(U240.y) &&
`FT_IS_LO(U34.y) && `FT_IS_HI(U244.y) && `FT_IS_HI(u245.y) )); Back
Back
RDC Verification