CDC工作总结

1. cdc大体介绍

CDC工作是进行交付代码之前必须要做的一步检查,尤其是当一个系统设计人员水平不一时,该检查不可忽略;关于进行的异步检查我就不细讲了,主要有如下问题的check;

  1. 时钟毛刺/信号毛刺问题;
  2. 同步信号聚合问题;
  3. 多bit信号同步问题;

2. cdc流程说明

cdc检查大体分为五个步骤。具体内容可查看相应的spyglass资料,需要可以私聊我;
在这里插入图片描述

1. cdc_setup

主要是进行时钟/复位/参数设定
指定constraints(SGDC file),parameters 及其他指定用于该project的定义来精准运行SpyGlass CDC检查。可以使用‘sdc2sgdc’ 命令来将 block-level SDC 转化成相应的SGDC 约束文件。运行‘cdc_setup_check’ goal能够生成constraints, 但生成的constraint一定要designer仔细review下再用。运行‘cdc_setup’后工具可以理解整个design的architecture, 解决一些block-box的问题,并自动生成‘autoclock.sgdc’及autoreset.sgdc作为 constraint的base 来使用。

2. cdc_setup_check

检查setup过程中约束的正确性和完整性。在进行下一步时一定要修掉该stage报的violation。 如确保所有flip-flop都有时钟。

3. cdc_reset_integrity

修掉时钟和复位不完整定义的问题,确保时钟和复位都被合理定义,并且确保clock/reset没有glitch和race。

4. cdc_verify

Fix block-level violations to make the block SpyGlass CDC clean要修掉所有的violations, error和warning都要review,必要时可以waive掉。 清理violation是有先后优先级顺序的。

  • ac_sync_group
  • ac_conv01/ac_conv02/ac_conv03/ac_conv04
  • ac_glitch*/clock_glitch*

5.cdc_verfy_struct

验证SOC块;

方法学可以参考SpyGlass_CDCMethodology_GuideWare2.0_UserGuide.pdf

3.基本语法说明

1.clock

clock -name top.clk -tag C1 -domain A

基本的语法如上,-name指定设计中的时钟路径;
-tag 为这个时钟设定一个名字;
-domain 时钟域;

2.reset

reset -name top.rst -value 0/1 -async | -sync

指定复位的值为0/1,并指明同步复位还是异步复位;

3.abstract_port

abstract_port -port input_a -clock VK1

指定输入port a所属的时钟域为VK1;

4.assume_path

为黑盒设置指定假定路径;

assume_path -name <bb_name> -input <input_pin_name> -output <output_pin_name>

5.quasi_static

设定某个值为固定值,不分析该值的跳变导致的异步问题;

quasi_static -name flop_name

6.set_case_analysis

设定时钟mux的sel信号,进行固定分析;

set_case_analysis -name flop -value 0/1

4.其它一些想说的

  1. cdc工作前提的约束文件比较重要,工具可以自动生成一些文件,但是需要进行相应的check后方可使用;
  2. cdc报出的问题,有可能是约束编写问题或设计人员确实有相应问题。如cdc工作人员不能确定,需要尽快找到设计人员进行确认;
  3. violation的确认需要讲究优先级;
  4. 报出的cdc问题,设计需要整体考虑同步问题;
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Flink CDC(Change Data Capture)是Flink的一个功能模块,用于从数据源(如数据库)中捕获变化,并将变化的数据以流的形式传输到Flink的DataStream中进行处理。下面是Flink CDC工作原理: 1. 数据源连接: Flink CDC首先与数据源建立连接,通常是与关系型数据库进行连接。它会监控数据库的日志或者使用特定的协议与数据库进行交互,以便实时捕获数据源中的变化。 2. 变更日志解析: 一旦与数据源建立连接,Flink CDC会解析数据源的变更日志(如MySQL的binlog),识别出插入(INSERT)、更新(UPDATE)、删除(DELETE)等操作,并提取出变更前后的数据。 3. 变更数据传输: 解析出的变更数据将被转换为Flink的DataStream,并通过网络传输到Flink集群中。这些数据以流的形式被持续地传输到Flink任务中进行处理。 4. 数据处理: 在Flink任务中,开发人员可以定义特定的数据处理逻辑,对捕获到的变更数据进行实时处理和分析。可以使用Flink提供的各种算子和函数来实现转换、聚合、过滤等操作。 5. 结果输出: 处理后的结果可以根据需要输出到不同的目标,如文件系统、消息队列、数据库等。Flink提供了各种输出连接器和Sink函数,可以将结果输出到不同的存储或服务中。 总结: Flink CDC通过与数据源建立连接,捕获数据源的变化,并将变更数据以流的形式传输到Flink任务中进行实时处理和分析。它利用数据源的变更日志或者特定的协议来实现数据捕获,然后将捕获到的数据转换为Flink的DataStream进行处理。这样可以实现对数据源变化的实时感知和实时处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汶.z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值