芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 78|回复: 0

Xilinx有没有时序约束语句能够控制两个IO输出之间延迟为指定时间(比如5ns)

[复制链接]
  • TA的每日心情
    开心
    2023-5-4 09:12
  • 1

    主题

    1

    帖子

    16

    积分

    新手入门

    Rank: 1

    积分
    16
    发表于 4 天前 | 显示全部楼层 |阅读模式
    在Xilinx的FPGA设计中,使用的芯片型号为:XC7Z020clg400-2,vivado版本为2019.2。逻辑设计包含两根线同步输出脉冲信号,仿真可观察到两个信号完全同步。现将两个信号分别连接到芯片的IO(如J18和H18),能否在不改变原有逻辑设计情况下,通过添加XDC约束语句的方法来控制两个IO的输出延迟,使信号从FPGA芯片管脚输出的延迟相差为指定时间,比如4ns。利用示波器探测IO口可以观察到两根信号线相差指定时间间隔。要求如下几条:1、不能更改逻辑设计,只能添加XDC文件的约束语句;2、若更改了管脚约束,比如将J18和H18换为G17和G18,约束语句不能更改且保持同样的效果;3、不能影响到原有的时序甚至产生时序违例;4、综上所述,只需要在XDC文件中添加适当语句告知Vivado工具,在进行布局布线时,根据指定的延时要求自动进行调整。
    以下为尝试过的方式,pulseA和pulseB为两个同步脉冲信号。
    # 主时钟约束
    create_clock -name clk_200M -period 5.0 [get_nets -hier *clk_200M*]
    # pulseA约束(固定最小延迟)
    set_max_delay -from [get_cells -hier -filter {NAME =~ *u_Pulse/time_cnt_reg*}] -to [get_ports pulseA] 0.5
    set_min_delay -from [get_cells -hier -filter {NAME =~ *u_Pulse/time_cnt_reg*}] -to [get_ports pulseA] 0.0
    # pulseB约束(6ns±0.5ns)
    set_min_delay -from [get_cells -hier -filter {NAME =~ *u_Pulse/time_cnt_reg*}] -to [get_ports pulseB] 5.5
    set_max_delay -from [get_cells -hier -filter {NAME =~ *u_Pulse/time_cnt_reg*}] -to [get_ports pulseB] 6.5
    经过测试,示波器可以观察到两路信号相差2.4ns,不符合预期,而且综合实现后出现了时序违例
    请问有没有其它的约束语句可实现预期效果。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2025-8-16 13:55 , Processed in 0.202751 second(s), 30 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表