VC SpyGlass RDC Training 06-2021
VC SpyGlass RDC Training 06-2021
VC SpyGlass RDC
Arjay Virdi
June 2021
CONFIDENTIAL INFORMATION
The following material is confidential information of Synopsys and is being
disclosed to you pursuant to a non-disclosure agreement between you or your
employer and Synopsys. The material being disclosed may only be used as
permitted under such non-disclosure agreement.
IMPORTANT NOTICE
In the event information in this presentation reflects Synopsys’ future plans,
such plans are as of the date of this presentation and are subject to
change. Synopsys is not obligated to develop the software with the features
and functionality discussed in these materials. In any event, Synopsys’
products may be offered and purchased only pursuant to an authorized quote
and purchase order or a mutually agreed upon written contract.
• Understanding RDC
• Types of asynchronous resets
• RDC design techniques
• Types of RDC checks
• RDC flow
Clock Reset
Making multiple runs per day vs overnight runs
Domain Domain
3x performance vs. competition Crossing
Crossing
QB QB
RSTB RSTB
rst1 rst2
q2 goes metastable
• non-deterministic
clk
• high-current
ckA rstB_
rstA_ Synchronous
deassertion
Power On /
System
Hard
Power
Resets Domain
Functional /
Software
Configuration
Asynchronous
No Synchronization of Incorrect Reset
Reset Assertion Reset Glitch
Reset de assertion Functionality
(RDC)
Metastability Incorrect
Metastability Metastability due to spurious Functional
RDCs State
Power
Clock Glitch Functionality
Dissipation
D Q D Q RSTB RSTB
D Q D Q
QB QB
RSTB RSTB
clk
CGC
rst1 rst2 qualifier
Reset Assertion Order
Clock Gating Method
RSTB RSTB
D Q D Q
clk
rst5
Source
Destination
Src Safe assertion Dest
flop
Constraints to describe Reset Relationships flop order
rst5 rst3
set_rdc_define_assertion_sequence –from {rst5} –to {rst3 rst4 rst1 rst2}
FF1 FF2
q1 d2 q2
D Q D Q
QB QB
Clock de-asserted
RSTB RSTB
CLK1
CLK2
Regular RDC • All flop to flop paths with different resets are
Crossings 4 potential candidates
• Restricts designer’s ability to constraint
Total Violations 4
rst1 (PoR) Y N
rst2 (Software/Func) Y Y
rst3 (Software/Func) Y Y
rst4 (PoR) Y N
SRC DST
CLK CLK
rst1 rst2
Pipeline, Math Engines, Simple Logic in between
DSP unit, Storage reset less flops
RTL
VC SpyGlass RDC
Setup RDC Setup
Clock-Reset
Setup Provide Reset Assertion Order
Ignore Paths
RDC Qualifiers
Config RDC Sync
Violation Analysis
Database
Identify Sequential RDC Paths
(.vdb) Apply Ignore Path + Assert Sequence Reports
(.csv)
RDC Synchronization
(Observability + Blocking Controls)
Report Generation
Verdi Debug
(Violation Browser, Schematic)
vc_static_shell> read_file -format verilog { List of source Design setup & read
file} –vcs { -work WORK –sv=2005 –error=noMPD} Leverage Existing DC
setup
vc_static_shell> elaborate <top level module>
SDC Commands
Synopsys Confidential Information © 2021 Synopsys, Inc. 19
Tool specific constraints (beyond SDC)
Additional constraints needed for CDC/RDC analysis
• Common SDC constraints through read_sdc
– e.g. create_clock, create_generated_clock, set_clock_groups, set_case_analysis, set_clock_sense …
etc. through read_sdc
e.g.
read_sdc top_clocks.sdc // Add Standard SDC commands
read_sdc exception.sdc // Add Standard SDC commands
source rdc_setup.tcl // Additional constraints
Cross- Probing
With RTL, Hierarchy
view of Verdi
Locators
Quickly find src and dest object
Debug data
Object name
Constraints
Reset / Clock domain data
RDC destination reg receiving Sync reset: q1 with sync reset: srst1
-----------------------------------------------------------------------------
RDC_CORRUPT_POTENTIAL (2 errors/0 waived)
-----------------------------------------------------------------------------
Tag : RDC_CORRUPT_POTENTIAL
Description : data corruption due to asynchronous reset assertion may be blocked before reaching the destination .
Violation : CDC:235
ReasonInfoList
ReasonInfo
ReasonCode : QUAL_CONVERGES_ASYNC_SRC
ReasonCodeMsg : [ERROR] Qualifier converges with another asynchronous source before gating logic
SrcObject : or1200_top/or1200_du/dmr1/Q[2:19]
DestObject : or1200_top/or1200_du/wp_latched/Q[0:9]
SrcResetInfoList
SrcResetInfo
ResetName : wb_rst
ResetObject : wb_rst
DestResetInfoList
DestResetInfo
ResetName : ‘sticky_rst'