雪山白凤凰

雪山白凤凰

0个粉丝

1

问答

0

专栏

0

资料

雪山白凤凰  发布于  2025-08-11 19:10:32
采纳率 0%
1个问答
323

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

   

在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,不符合预期,而且综合实现后出现了时序违例
请问有没有其它的约束语句可实现预期效果。

我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区