0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Top和Block实战经验以及DDR接口时序

冬至子 来源:RTL2GDS 作者:老本 Benjamin 2023-06-27 15:07 次阅读

IO约束在顶层和模块级的主要命令都是以下几个,但是实际应用的复杂程度不可同日而语,本篇会先介绍模块级IO约束实战经验,然后讲解顶层IO约束复杂性,过程中会介绍DDR接口时序。

set_input_delay
set_output_delay
set_drive
set_driving_cell
set_input_transition
set_load
...

各个命令的具体用法可以在PT中通过man了解详情,这里就不费劲重复了:

pt_shell > man set_input_delay

模块级IO约束实战

图片

上图给出了一种IN2REG路径的示意图,DUA为当前模块,外部有一个假想的虚拟寄存器在驱动CIN端口,这种情况下我们可通过以下命令来约束:

set period 8
create_clock -name CLKP -period $period [get_ports CLKP]
#创建同频率的虚拟时钟
create_clock -name vCLKP -period $period
#参考值为0.6,根据实际情况调整
set_input_delay [expr 0.6 * $period] -clock vCLKP [get_ports CIN]
#假设端口buffer为BUFX4
set_driving_cell -lib_cell BUFX4 -pin Z [get_ports CIN]

虚拟时钟的作用

使用set_input_delay时,可以指定真实时钟CLKP,也可以指定虚拟时钟vCLKP,在CTS之前是没有区别的。然而,在CTS之后,如果指定的是真实时钟,那么虚拟寄存器的时钟延迟就被忽略了。如果指定的是虚拟时钟,工具往往可以根据内部真实时钟的平均延迟来估算外部虚拟寄存器的时钟延迟,更加合理。

一般地,为了让顶层的时序更容易满足,在模块级优化的时候,都会对自己内部的IN2REG和REG2OUT路径约束更加严格,可以设置外部的延迟为60%的时钟周期,给内部的数据路径留40%的空间。不过,具体问题需要具体分析了。

需要注意,set_input_delay 可以指定-max和-min选项,分别对应setup和hold时序检查,如果只是指定其中一个选项,或者都不指定,那么工具在检查setup和hold时,会使用相同的值。

端口Buffer和set_driving_cell配合使用

在实际项目中,为了避免模块之间,或者模块和顶层之间IO接口部分出现时序问题,一般会要求在靠近IO端口的地方添加具有一定驱动能力的端口Buffer。在这种情况下,可以通过set_driving_cell来模拟端口的真实外部环境。假如没有端口Buffer,也可以通过set_input_transition大致指定输入端口的驱动能力。

总体来说,set_driving_cell会考虑到OCV的影响,input transition是查表计算出来的,而set_input_transition比较简单粗暴,在IO端口时序不那么关键的时候,也可以使用。但在顶层,一般使用后者,因为IO单元的输入电容较大,芯片外部具备驱动能力较强的器件,标准单元库中没有buffer能够驱动。

顶层IO约束实战

顶层IO约束在原理上与模块级没有本质区别,然而由于顶层需要与外部器件进行通讯,除了GPIO,还会接触到各种标准协议接口,例如UARTI2C,SPI,LVDS,DDR等等,在写SDC前需要读一读协议。更复杂的情况是,由于存在端口复用的情况,往往同一个端口具备多种时序要求,需要逐一定义。

图片

上图是一个PinMux(也称为IOMux)的示意图,在SoC设计中非常常见,特别对于IO limited的芯片来说,PinMux是很有必要的。看似复杂,其实只要各个击破就能达到目标,SDC标准制定者已经为我们考虑到了这一点,通过set_input_delay的选项-add_delay,可以对同一个端口设置多重约束,例如:

set_input_delay [expr 0.6 * $periodA] -clock CLKA [get_ports CIN] -add_delay
set_input_delay [expr 0.3 * $periodB] -clock CLKB [get_ports CIN] -add_delay

另外,针对顶层输出数字端口,需要根据芯片使用的实际情况set_load,一般的GPIO端口负载电容都在pF级别。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117746
  • SoC设计
    +关注

    关注

    1

    文章

    142

    浏览量

    18667
  • 输入电容
    +关注

    关注

    1

    文章

    39

    浏览量

    9764
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27379
  • DDR接口
    +关注

    关注

    0

    文章

    5

    浏览量

    7501
收藏 人收藏

    评论

    相关推荐

    拥有20多年工程实战经验的技术总工,和你谈电机控制!

    赵工,20多年工程实战经验,现任哈尔滨汉能光电科技有限公司技术总工,此前在国营特大型工厂工作过,熟悉大多工业现场,厂内搞过小改,在铁路非标设备公司、医疗非标设备公司、国内知名刷卡设备公司、中波发射机供应商做设计工作。
    的头像 发表于 11-15 17:05 0次阅读

    pcb制造业节约用电实战经验

    pcb制造业节约用电实战经验
    发表于 08-20 20:36

    FPGA宝贵实战经验及Verilog编程规范

    `FPGA宝贵实战经验及Verilog编程规范`
    发表于 06-10 12:03

    【资料分享】ST MCU实战经验10篇,应用问题,官方解答

    ST MCU实战经验10篇,应用问题,官方解答
    发表于 03-21 15:12

    LLEGRO高速高密PCB设计实战经验

    本帖最后由 carey123 于 2014-10-24 15:49 编辑 ALLEGRO高速高密PC设计实战经验很好的资料采集
    发表于 10-24 12:02

    [实战经验] 免费全功能 STM32 TrueSTUDIO 9.0

    “Run→Debug Configurations…”或者在工具栏点击“Configure Debug”按钮,弹出以下对话框,根据下图修改选择。全文请到STM32中文官网下载:[实战经验] 免费全功能 STM32 TrueSTUDIO 9.0
    发表于 03-27 14:03

    振动传感器项目外包,有实战经验的电子工程师联系我。

    振动传感器项目外包,有实战经验的电子工程师联系我。
    发表于 12-01 12:28

    DDR2_SDRAM操作时序

    ddr2_sdram 操作时序,非常好的教程,可以充分了解DDR2
    发表于 10-28 11:07 20次下载

    开关电源维修方法和实战经验

    开关电源维修方法和实战经验开关电源维修方法和实战经验
    发表于 01-15 16:38 46次下载

    DDR_SDRAM介绍以及时序

    DDR_SDRAM介绍和时序图,DDR_SDRAM介绍和时序
    发表于 02-23 11:58 6次下载

    DDR时序设计

    最新版本的李黎明DDR时序PPT
    发表于 11-02 17:05 0次下载

    STM32 应用实战经验篇推荐阅读

    近日,ST官方技术部门又推出了3篇针对STM32应用开发的实战经验篇,分享给各位ST MCU使用者。在此我对这三篇文章内容作个简介,细节可自行去ST官方相关网站下载,文章结尾会介绍。 第一篇是介绍
    发表于 11-29 17:42 388次阅读

    ARM全国产云平台部署容器实战经验分享

    ARM全国产云平台部署容器实战经验分享
    发表于 07-18 16:11 71次下载
    ARM全国产云平台部署容器<b class='flag-5'>实战经验</b>分享

    实战经验:从5个方面来谈IC设计资料下载

    电子发烧友网为你提供实战经验:从5个方面来谈IC设计资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-14 08:41 28次下载
    <b class='flag-5'>实战经验</b>:从5个方面来谈IC设计资料下载

    嵌入式项目实战经验

    嵌入式项目实战经验分享,C/C++、Linux、STM32、51单片机、FPGA、IoT、OpenCV、数字图像处理、通信、算法!
    发表于 11-03 12:36 23次下载
    嵌入式项目<b class='flag-5'>实战经验</b>