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

芯片设计-CDC-sgdc约束原理(1)

子模块级sgdc和top层sgdc兼容问题

         模块块级sgdc文件在TOP级别不兼容,导致SOC的结果不匹配。差异在于模块级“时钟名称”定义与TOP层定义不匹配,例如各种约束中的“时钟/from_clk/to_clk”用法。时钟名称总是唯一的,并与定义它的特定引脚/端口相关联。在TOP级运行时,任何模块级定义的时钟名称都无效。
     

有两种方法可以处理此问题        

1. Use if/else as mentioned below. we need to define the designName variable in .prj or sgdc file.

setvar designName   perif_top

if {$designName == perif_top} {

qualifier -name "ABC" -from_clk "cfgClk" -to_clk "apbCoreClk"

} else {

qualifier -name "ABC" -from_clk “klamath.U_core.U_global_top.U_clk_gen.U_occ_top.\occ_inst[8].occ_U .fastClkOut” -to_clk “klamath.U_core.U_global_top.U_clk_gen.U_uart0_cfg_clk_gate.sync_U2.sclkgx4_u0.Q”

}

2. Use “clock tag” instead of clock name if constraint supports it. And match the block level tag with TOP tag.

qualifier -name "ABC" -from_clk_tag "cfgClk" -to_clk_tag "apbCoreClk"
上述两种方法都是自顶向下的方法,非常耗时,并且严重依赖于TOP级定义。理想的解决方案当然是使用hierarchical abstract文件而不是sgdc文件,因此我们不必处理这些依赖性/差异。
如果在语法中使用时钟,时钟差异也会影响constraints and waivers。


http://www.kler.cn/news/354472.html

相关文章:

  • 突破物理学的疆界:机器学习与神经网络的诺贝尔奖之旅
  • R语言医学数据分析实践-数据读写
  • 构建后端为etcd的CoreDNS的容器集群(三)、etcd功能测试
  • OpenAI多智能体框架Swarm实测—基于Qwen开源模型
  • 八种经典排序算法
  • 【Linux】【Jenkins】后端maven项目打包教程-Linux版
  • 在 Android 设备上使用 Kivy 和 OpenCV 实现调用摄像头并显示实时画面
  • Flask创建流式返回的mock脚本
  • Linux 重置 root 密码
  • Flume面试整理-Flume的基本架构
  • 限流是什么?如何限流?怎么限流?
  • 如何轻松使用pip安装Git仓库中的私有Python模块(使用pip和Git仓库发布和安装私有Python模块)
  • 解决ffmpeg通过srt文件给视频添加字幕时乱码问题
  • 【2024最新版】Win10下 Java环境变量配置----适合入门小白
  • RTThread-Nano学习二-RT-Thread启动流程
  • C会赢的!(牛客周赛 Round 58)
  • 力反馈手套如何在VR培训解决方案中为用户提供沉浸式体验?
  • c++链式调用
  • 【css-在一个元素中设置font-size和实际渲染字体大小不一致】
  • CAT(Card Application Toolkit)- LSI