当前位置: 首页 > news >正文

Spyglass CDC basic concept

1. Waive

        对于一些没有风险的vilation可以通过waive对齐进行屏蔽,除了-rule -excep -severith -file -file_lineblock -comment指定的参数值,对于其他参数它支持正则表达式 以及通配符匹配。它默认是处于通配符模式,如果想要使用正则表达式模式需要增加 “-regexp” 选项。对于waive -msg 中的会变化的message 使用通配和正则表达式是非常建议的。

  • 通配符模式
    通配符号支持 "?"  "*",其中"*"可以匹配任何长度的字符串,"?"只可以匹配任意单一一个字符,如果想使用通配符号的原始意义,需要在其前面增加”\"转移符号。
    waive -rule {xxx} -msg {reg* is not found}  #这里可以匹配regA regAA regxdw
    waive -rule {xxx} -msg {reg\* is not found } #这里是严格匹配reg*
    • 正则表达式

      在正则模式下存在11个基础字符称之元字符,具体含义如下所示。 
      *只是代表任意多个的数量,
      .表示任意一个字符
      -用在中括号中指定一个字符范围
      []表示一个字符集合([0-9A-Z]代表任何大写字母和数字字符)
      ?        表示0或1个数量,但是实际使用需要 \?才能正确发挥元字符作用,怀疑spyglass支持仅是正则表达式,不支持扩展正则表达式。
      ^               锚定符,强制从开始匹配字符串
      $锚定符,轻质匹配到结束
      |和逻辑或的意义类似,它允许在一个表达式中将两个子表达式组合
      ()用于将字符串中的匹配部分分组,但是实际使用需要 \(\)才能正确发挥元字符作用。
      \

      转移字符,它用于将元字符视为原始字符

2. clock传播

        spyglass 提供了clock_reduce_pessimism参数用于控制clock的传播。

  • mux_sel
    当使能改参数,则时钟复用器选择端口的时钟信息汇聚到输出端
  • all_potential_clocks
    它可以推断出”use_inferred_clocks“为成功推断的时钟。当spyglass识别到组合逻辑门,且其中一个输入为时钟,则会自动推断另一个输入端口也是时钟。
  •  single_input_output_bbox
    默认情况下单输入单输出黑盒的输出端口并不会被识别为时钟,只有多输入黑盒的输出端口才认为是时钟。如下图所示,如果没有使能该参数,clock_info01 规则报告newclk1是备选时钟。如果使能这个参数,clock_info01规则报告newclk2是一个备选时钟。
    在这种情况下,倘若use_inferred_clocks设置yes,Propagate_clocks规则报告newclk2已经传递到下一个时钟;如果SISO的输入是一个时钟,clock_check07规则会报告clk2已经传播到了另一个时钟域(newclk2),终止了clk2传播。究其原因是工具自动推断到newclk2是新时钟,并创建了新的domain,因此此时clk2传播到newclk2就停止了。

  •  stop_derived_at_random_logic
    stop_derived_at_random_logic参数会影响时钟的propagation,只有当时序单元输出直接或者通过clock_gate、MUX、BUffer、Inverter连接到DFF的时钟端口。此时该端口才会推断输出口是时钟。
    如下图所示,如果时序端口F1输出连接到多个DFF的时钟端口,因此此时时序单元的输 出被工具推断出是clock,并传播到后续的DFF。

    如果disable_seq_clock_prop, enable_generated_clocks使能之后,主输入时钟是无法穿越到时序单元的。如果在时序单元的输出口创建了generated_clock约束,则无论stop_derived_at_random_logic是哪个参数,该派生时钟则会继续向后传播。
    ​​​​​

     如果时钟mux没有设置case_analysis,则mux输出端口除了输入口传播的时钟,还有生成一个输入口时钟组合的新时钟。 如果通过spyglass generated_clock在时钟mux输出口创建了新时钟,则mux输出口只会存在新创建的时钟,组织了输入口时钟的传播。

http://www.dtcms.com/a/309857.html

相关文章:

  • 【案例教程】基于生命周期评价法的农田温室气体排放估算、农田CH4和N2O排放模拟、DSSAT模型农田碳库模型和土壤呼吸
  • 中央厨房选址:五维权衡术
  • Apache RocketMQ 中 Producer(生产者)的详细说明
  • 【string类常见接口】
  • Docker设置容器时间
  • LeetCode热题100——146. LRU 缓存
  • 在各种操作系统上安装 Ansible
  • Git之远程仓库
  • 《Uniapp-Vue 3-TS 实战开发》实现自定义头部导航栏
  • 基于coze studio开源框架二次定制开发教程
  • 乐创E20H1型IO从站与Ethercat转Profinet网关转换器的配置应用案例
  • SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:日志管理(四)集成Spring Security
  • 校园交友|基于SprinBoot+vue的校园交友网站(源码+数据库+文档)
  • 【前端】CSS Grid布局介绍及示例
  • ThingsKit Edge边缘计算平台是什么?
  • Android Jetpack 系列(五)Room 本地数据库实战详解
  • 8.1 简单计数题
  • RS485 总线电阻匹配技术
  • 两个服务之间的大规模数据推送
  • Gitee
  • AI 调酒师上岗!接管酒吧吧台
  • Linux---make和makefile
  • 从递归到动态规划-最低票价
  • 3. boost::asio之同步读写的客户端和服务器示例
  • 一体化伺服电机在外观检测设备中的应用与优化
  • MyBatis详解
  • 面向对象学习(一)
  • 服务器地域选择指南:深度分析北京/上海/广州节点对网站速度的影响
  • Trice移植(Start with Trice)
  • 网站建设服务器从入门到上手