[vivado]FPGA管脚约束问题导致生成bit时报错 如何在不重新Implentation情况下生成bit?


在FPGA开发中,我们经常遇到因为管脚忘记约束,导致最后生成bit的时候报错

一、 管脚电平未约束

在这里插入图片描述
在这里插入图片描述
      像上面这个图中,由于在约束中忘记指定mdc和mdio的电平,再经过了长时间的综合和实现后,最后的Generate Bitstream报错了。

      这种情况下,如何才能不重新Implementation的情况下生成bit呢?

      打开实现后的routed.dcp文件:

open_checkpoint./Work/eth_demo.runs/impl_1/top_routed.dcp

然后通过下面指令设置这两个管脚的电平:

set_property IOSTANDARD LVCMOS15 [get_ports mdc]
set_property IOSTANDARD LVCMOS15 [get_ports mdio]

在这里插入图片描述
设置完成后,可以在I/O Ports窗口中看到这两个管脚的电平已经改了过来
在这里插入图片描述然后再点左侧的生成bit:
在这里插入图片描述
提示生成文件的位置和名字:
在这里插入图片描述
在正确生成后,可以看到tcl中提示write_bitstream completed successfully:
在这里插入图片描述
管脚电平修改后由于跟布局布线都没有关系,因此直接生成bit是可以的。

二、管脚位置未约束

      如果是管脚位置未约束,那我们就不能在dcp中修改位置然后直接生成bit了,因为位置变了,布局布线也需要改变。如果这个管脚的功能的需要的,那我们只能重新Implementation,如果这个管脚功能是不需要的,

      那如果这个管脚的功能我们可以先不用,就想把经过了长时间的Synthsis和Implentation后的工程生成bit文件。还是像上面一样,打开route.dcp文件,然后点击坐标的Report DRC
在这里插入图片描述
可以看到有两个问题,一个是NSTD-1,一个是UCIO-1
在这里插入图片描述
我们只需要把这两个DRC的问题设成warning,不让工具在生成bit的时候报错,也是可以生成bit的。执行tcl脚本如下:

set_property SEVERITY {Warning} [get_drc_checks UCIO-1]
set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

然后再Generate Bitstream.

三、参考资料

  1. FPGA管脚约束问题导致生成bit时报错 如何在不重新Implentation情况下生成bit?
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值