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

Spyglass:跨时钟域同步(同步单元)

相关阅读

Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm=1001.2014.3001.5482


简介

        同步单元方案可以用于控制/数据信号跨时钟域同步,该方案使用约束或参数将目标时钟域中单元指定为同步单元,如图1所示。

图1 同步单元方案

        图2是Ac_sync01规则提供的Spreadsheet,其中展示了跨时钟域相关细节。 

图2 Ac_sync01规则提供的Spreadsheet

相关参数或约束

sync_cell约束

        使用SGDC约束中的sync_cell命令可以指定某个模块为同步单元,还可以限制源/目标时钟(域)及其频率。需要注意的是,该规则只适用于控制信号跨时钟域而对数据信号跨时钟域无效,下面给出了一个例子。

// test.sgdc
sync_cell -name "sync" -from_clk "cdc_example.clk_a" -to_clk "cdc_example.clk_b"

synchronize_cells参数

        使用synchronize_cells参数可以设置某个模块为同步单元。需要注意的是,该规则只适用于控制信号跨时钟域而对数据信号跨时钟域无效,下面给出了一个例子。

// test.prj
set_parameter synchronize_cells sync

synchronize_data_cells参数

        使用synchronize_data_cells参数可以设置某个模块为同步单元。需要注意的是,该规则只适用于数据信号跨时钟域而对控制信号跨时钟域无效,下面给出了一个例子。

// test.prj
set_parameter synchronize_data_cells sync

allow_combo_logic参数

        默认情况下,Spyglass允许通过组合逻辑跨时钟域,将allow_combo_logic参数设置为no可以禁止这种情况,下面给出了一个例子。 

// test.prj
set_parameter allow_combo_logic no

        图3展示了这种情况下通过组合逻辑跨时钟域时出现Ac_unsync01错误(实际上,即使allow_combo_logic参数设置yes,也只是不出现Ac_unsync01错误,但Ac_glitch03错误会出现,即Spyglass识别到毛刺)。 

图3 组合逻辑跨时钟域错误

        最后顺带一提,该跨时钟域方案支持源对象为触发器或黑盒,目标对象为模块或黑盒,如果是前者,则要求该模块中跨时钟域信号的每一位都到达触发器(或者该模块本省就是来自单元库的触发器)。

相关文章:

  • 编程日志5.6
  • 一文掌握六个空转数据库
  • MySQL——九、锁
  • 十个免费试用的云数据库
  • 在 Windows 中配置使用 WSL 来运行 Linux 环境,主要有以下步骤:
  • 【测试开发知识储备】之Jacoco(Java Code Coverage)
  • LeetCode100.7 接雨水
  • 代码随想录算法训练营第60期第三十六天打卡
  • 【​​HTTPS基础概念与原理​】对称加密与非对称加密在HTTPS中的协作
  • 掌握Docker:从运行到挂载的全面指南
  • Openshift节点Disk pressure
  • mybatis plus (sqlserver) 根据条件来获取id最大的,或者是新增的最新的一条记录(同条件可能会有多条出现)
  • Java—— 可变参数、集合工具类、集合嵌套、不可变集合
  • [数据结构]6. 队列-Queue
  • C++学习细节回顾(汇总二)
  • 【交互 / 差分约束】
  • AD 规则的使能及优先级的设置
  • 机密虚拟机的威胁模型
  • Java 与 Go 语言对比
  • 【 Java开发枚举值规范】
  • 外交部:国际社会广泛理解和支持中方不同意台参加世卫大会的决定
  • 法治日报整版聚焦:儿童能否成为短视频主角?该如何监管?
  • 著名连环画家庞邦本逝世
  • 智能手表眼镜等存泄密隐患,国安部提醒:严禁在涉密场所使用
  • 英国首相斯塔默住所起火,警方紧急调查情况
  • 民生谣言误导认知,多方联动守护清朗——中国互联网联合辟谣平台2025年4月辟谣榜综述