CDC spyglass

SoC中会有着几百的clock domains,millions的async data crossing。

Glitch等cdc问题是netlist level simulation的主要目的。

CDC的困难点:

1)STA不会进行asynchronous的检查,只会进行synchronous的检查;

2)Path across clock domain通常会被设置为false path,不进行check;

3)CDC带来的一些问题只有在进行post-sim的时候,才会暴露出来;

在RTL level simulation中,无法发现问题。

4)CDC带有一定的lucky性质,simulation只能检查出一部分的error;

典型的CDC问题:

1)Metastability:异步相位的必然结果;

2-sync cell会导致一个clock cycle的uncertainty;

metastability可能会导致data-coherency和re-covergence的问题;

2)Reconvergence(correlation):一些reconvergence信号会带来的glitch以及sample single出错;(multi-bit uncertainty)

会导致在receiving domain中有一到两个cycle的latency或者cycle uncertainty;

可以通过gray encoding的方式来避免;

通过verify signals肯定不会在destination clock cycle进行toggle,从而waive掉这个path。

3)Data hold problem(data loss):Fast to slow clock以及data enable sequencing场景;

可以通过implement pulse extenders的方式来避免:

Spyglass对于这类fast-slow cdc crossing,会自动进行formal check,如果data不能被capture到,会报error

处理方法:

1)synchronization scehme(such as handshake,FIFO)

2)reset synchronization(reset is asynchronously asserted and synchronously de-assert)

3)bus async bridge;

4)尽量使用glitch-free的mux;

5)well managed convergence paths;

CDC中主要的问题会在register中,因为Apb/Ahb clock与fucntion clock的async。

时间: 2024-12-04 19:59:18

CDC spyglass的相关文章

Synopsys SpyGlass CDC 学习 (一)

SpyGlass工具目前包含:SpyGlass Lint, CDC, RDC, DFT ADV, Power.  是业界RTL Signoff 的重要工具. CDC(Clock Domain Crossing)的前端设计中最常见的问题, 在RTL中要恰当的处理每个异步的控制信号和数据信号, 否则就会出现亚稳态,造成严重的function false. 最好的有关亚稳态(metastability),CDC,及其对应的处理方法的资料, 就是SNUG-2008会议上排名第一的优秀论文:https:/

MFC中的DC CDC HDC由来由去理解

MFC中的DC CDC HDC由来由去理解 在此非常感谢博客主的究竟钻研,非常详细的参考资料:http://blog.csdn.net/yam_killer/article/details/7661449

Data Flow ->> CDC Control Task, CDC Source, CDC Splitter

CDC Control Task可以从控制CDC数据同步,比如初始化加载.LSN范围的管理.它可以代替另一种做法,就是通过调用一批CDC函数来完成同样的事情.从SSIS的角度来完成,事情编程简单,和另外两个空间配合起来(CDC Source,和CDC Splitter),仅需配置一些控件参数便可以完成整个数据抽取过程. CDC Source从启用了CDC的数据表中查询数据 CDC Splitter和Conditional Split组件功能相似.它生成三个数据流分支:Inserts, Updat

VC/MFC的HDC,CDC,CWindowDC,CClientDC,CPaintDC详解:

首先说一下什么是DC(设备描述表) 解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制.DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息.Win32程序在绘制 图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉. 在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindowDC这样的类 HDC是DC的句柄,API中的一个类似指针

SpyGlass v4.5.1 Linux64 1CD+Collaboration Suite 2012

IAR Embedded Workbench for AVR v6.10.2.0430 1CD Atrenta SpyGlass v4.5.1 Linux64 1CD CAD International Landworks Pro v5.90 including RealCAD v5.50 1CD IAR Embedded Workbench for Freescale Coldfire v1.23.1 1CD IAR Embedded Workbench for Freescale HCS08

在进行USB CDC类开发时,无法发送64整数倍的数据

1 前言 本文将基于STM32F4DISCOVERY板,介绍如何使用USB的CDC类进行开发,以及在开发过程中碰到发送64整数倍数据时会失败的问题分析及解决方案. 2 硬件介绍 在创建工程之前,我们首先即将使用的硬件进行必要的介绍. 如上图所示,USB电路使用PA11,PA12,全速USB OTG,当然,这里只做device,英雌只需要看上图的下面部分. 如上图,本例中将使用到1个用户按键,PA0,按下时为1电平. 另外,晶振使用的是外部HSE 8M晶振. 3 创建CubeMx工程 打开Cube

hdc cdc

CWindowDC dc(this); HDC hdc=dc.GetSafeHdc(); using namespace Gdiplus; Graphics graphics(hdc); graphics.SetSmoothingMode(SmoothingModeHighQuality); Pen newPen(Color(0,200,255),5); graphics.DrawLine(&newPen, 50, N1, x2, y2); ps:析构函数中什么也没有. RE: GetDC/Ge

Oracle Data Integrator 12c----简单CDC(Simple CDC)

Simple CDC最简单的一种 CDC.在这里,每一张 CDC 的表的变化都是独立捕获的,不需要考虑多张存在主外键引用关系的表之间的数据一致性. 1 环境准备 源表:ODI_SRC.DEPT 目标表:ODI_TAG.DEPT 配置拓扑结构见ODI Studio拓扑结构的创建与配置(Oracle) 模型反向工程见:Oracle Data Integrator 12c-模型(Model)和 数据存储(DataStore) 2导入并配置JKM 首先在项目中导入 JKM JKM Oracle Simp

CDC之Synchronizers

1 Scenarios There are two scenarios that are possible when passing signals across CDC boundaries: 1st scenario: sometimes it is not necessary to sample every value, but it is important that the sampled values are accurate. One example is the set of g