vivado约束文件的语句先后问题

在创建Xilinx PCIe核的过程中,发现XDC文件中的约束顺序会影响PCIe插卡的识别。具体表现为后面的约束会覆盖前面的约束。当将特定时钟约束(sys_clk_p/n)放置在refclk_ibuf约束之前时,PCIe插卡能被正确识别。反之,则可能导致识别失败。这一现象验证了约束文件中后面的约束具有更高的优先级。
摘要由CSDN通过智能技术生成

Xilinx PCIe XDMA使用指南 | 电子创新网赛灵思社区

参考这个链接建了一个PCIe核,实际测试过程中,发现修改XDC文件里面的约束,会让PCIe插卡可能会被识别失败

之前有看到过说,XDC约束文件中,放在文件后面的约束会“覆盖掉前面的约束”,在模仿参考链接建立PCIe核的时候,体验了一把。

下图中sys_clk_p/n为来自上位机100M参考时钟,自己添加的。

refclk_ibuf为生成样例工程时候。

1.当我把绿色框框里面的内容放到后面,蓝色框框额内容放在前面,PCIe插卡不能够被主机识别。

2.当我屏蔽掉绿色框框里面的内容,PCIe插卡能够被上位机识别。

3.当我把绿色方框放在前面,蓝色方框放在后面,PCIe插卡能够被上位机识别。

1、2、3对比下来,验证了之前看到的,后面的约束会覆盖掉前面相同的约束。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vivado约束文件是一个重要的设计文件,它用于对FPGA设计进行时序约束。在Vivado中,约束文件的扩展名为“.xdc”,它包含了时钟频率、时序延迟、时钟分配以及IO管脚等信息。通过正确地编写约束文件,可以确保FPGA设计的时序满足要求,从而提高设计的可靠性和稳定性。 在编写Vivado约束文件时,可以使用Vivado自带的约束编辑器,也可以手动编写。约束文件的基本格式如下: ``` # 注释行,以“#”开头 set_property <属性名> <属性值> [<对象>] [;] ``` 其中,属性名和属性值是必须的,对象是可选的。常用的属性包括: - `PACKAGE_PIN`:指定IO管脚的引脚位置; - `IOSTANDARD`:指定IO管脚的标准; - `CLOCK_PERIOD`:指定时钟周期; - `NET`:指定信号的名称; - `TIMEGRP`:指定时序组,用于约束时序关系; - `OFFSET`:指定时序偏移量。 例如,下面的代码片段定义了一个时钟信号和一个输出信号,其中时钟频率为100MHz,输出信号延迟1个时钟周期: ``` # 设置时钟信号 set_property -dict { PACKAGE_PIN P17 IOSTANDARD LVCMOS33 } [get_ports { clk }] create_clock -period 10.000 -name clk -waveform {0.000 5.000} [get_ports { clk }] # 设置输出信号 set_property -dict { PACKAGE_PIN N1 IOSTANDARD LVCMOS33 } [get_ports { out }] set_output_delay -clock clk 10.000 [get_ports { out }] ``` 需要注意的是,约束文件中的属性名和属性值都是大小写敏感的。因此,在编写约束文件时要仔细检查每个属性的拼写和大小写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值