前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >管脚约束问题导致生成bit时报错 如何在不重新Implentation情况下生成bit?

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

作者头像
猫叔Rex
发布2021-11-25 09:54:24
2620
发布2021-11-25 09:54:24
举报
文章被收录于专栏:科学计算科学计算

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

1.管脚电平未约束

image-20211018181223102

image-20211018181242070

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

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

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

代码语言:javascript
复制
open_checkpoint ./Work/eth_demo.runs/impl_1/top_routed.dcp

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

代码语言:javascript
复制
set_property IOSTANDARD LVCMOS15 [get_ports mdc]
set_property IOSTANDARD LVCMOS15 [get_ports mdio]

image-20211018182928539

设置完成后,可以在I/O Ports窗口中看到这两个管脚的电平已经改了过来

image-20211018183134130

然后再点左侧的生成bit:

image-20211018175121801

提示生成文件的位置和名字:

image-20211018175200025

在正确生成后,可以看到tcl中提示write_bitstream completed successfully:

image-20211018181921838

管脚电平修改后由于跟布局布线都没有关系,因此直接生成bit是可以的。

2.管脚位置未约束

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

  那如果这个管脚的功能我们可以先不用,就想把经过了长时间的Synthsis和Implentation后的工程生成bit文件。

  还是像上面一样,打开route.dcp文件,然后点击坐标的Report DRC

image-20211018175619699

可以看到有两个问题,一个是NSTD-1,一个是UCIO-1

image-20211018194046725

我们只需要把这两个DRC的问题设成warning,不让工具在生成bit的时候报错,也是可以生成bit的。执行tcl脚本如下:

代码语言:javascript
复制
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]
set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

然后再Generate Bitstream.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 傅里叶的猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.管脚电平未约束
  • 2.管脚位置未约束
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档