在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8502|回复: 7

[求助] vivado约束文件到底是干什么的?通俗点讲

[复制链接]
发表于 2017-6-10 10:48:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
altera中没有什么约束文件,只需要分配好引脚就可以了。但是在vivado中,需要进行各种约束,内容一大缸,看的头疼。约束中会有引脚的分配,这个可以理解,毕竟最终要硬件实现。可是问题来了,我撒了一眼时钟的约束,娘啊,真复杂,老实说,没看懂。总感觉是在搞激励,还能规定时钟周期,占空比。假如是在搞激励,那么还要仿真文件干什么?
我的问题就是这个约束文件到底有什么用,哪位高手能给讲一件,不要太技术,通俗点讲,生动形象,最好拟人。先行谢过。
发表于 2017-6-10 10:57:47 | 显示全部楼层
altera中也有约束文件啊
FPGA编译器布局布线其实就是个优化函数,输入的时序约束和物理约束就是约束条件
物理约束是告诉编译器IO必须连在那个位置,时序约束就是告诉里面用到的时钟的属性,不加时钟约束时,编译器会有自己的默认约束,Xilinx好像是50MHz,低速设计下没有时序问题,但是高于50MHz的设计就有可能出现功能异常所以此时要告诉编译器工程里用到的时钟是什么样的,还有一些其他的时序约束,都是再告诉编译器我们的需求,要不它就会按照他自己的想法去干活了
 楼主| 发表于 2017-6-10 15:51:35 | 显示全部楼层
首先谢谢您的回答,让我很受启发。
假如fpga外部接了一个晶振,这个晶振提供了一定频率的时钟,假如是100M,而且占空比也是一定的,接在fpga的clk输入引脚。假如我不加说明这个引脚的时序约束,编译器还会默认人家是50M吗?这是不现实的,人家本来就是100M呀?我猜时序约束就是个解释说明的作用,甚至有验证的滋味,假如解释说明时,与硬件本身发生冲突(例如本来给的是100M的时钟,约束时硬是约束成50M),那么编译时,系统就会报错,告诉我们设计错了,起到这么一个作用。这就是我的想法,不知道对不对。希望您能给出意见和批评。
发表于 2017-6-10 16:32:22 | 显示全部楼层
回复 3# qiurijian

输入100MHz时钟,但是约束为50MHz,编译器会按照是50MHz去布局布线,如果时序余量比较大,恰好能满足100MHz时钟要求,功能也会正常的,如果时序余量只够跑80MHz,那么功能就可能会出错
如果是从验证角度去看时序约束,加上时序约束如果出现时序错误,就说明在当前时序约束下,根据你的设计编译器不能完成正确的布局布线,你的设计不能正常运行在当前的时钟频率下,从而要修改设计
 楼主| 发表于 2017-6-10 16:46:02 | 显示全部楼层
因此约束文件的功能不仅是描述解释验证的功能,还能进行有条件的配置功能,例如把100M时钟调成50M来使用,但是不能把50M的调成200M的来使用,调成100M倒有可能(瞎说的,可忽略,利用上下沿调成100M)。
非常有帮助,再次谢谢您的回答。
发表于 2017-6-12 09:16:23 | 显示全部楼层
Quartus当然有约束
发表于 2017-6-14 17:20:55 | 显示全部楼层
约束文件的左右可以理解为你告诉工具一些它自己分析不出来的信息。比如:工程上有几个port,工具分析不出来那个port该连哪个引脚,那么你需要告诉工具port与FPGA引脚的对应关系;再比如你外接了一个时钟,工具不知道你接的时钟是什么样的,所以你需要告诉工具这个时钟的信息(包括时钟频率,时钟占空比,时钟抖动等);如果你在RTL里生成了新的时钟,工具也无法分析出新生成的时钟的信息,就需要你告诉他;另外一些异步时钟不需要做timing分析也需要你告诉工具。类似于这些工具无法自己分析出来的信息就需要你告诉它,这就是约束
 楼主| 发表于 2017-6-14 20:33:31 | 显示全部楼层
谢谢您的回答。高屋建瓴之余又说的非常具体,容易理解,一点也不抽象。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-5 18:18 , Processed in 0.028619 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表