
虽然都是用于pin的约束 tsu/th和offset不是一回事(offset是io的数据和时钟的延迟 tsu/th是芯片里的dff的数据和时钟的延迟关系 不考虑clock skew的话 应该满足offset+tsu+delay <= T) 如果是registered-in/registered-out的设计 没必要加tsu/th约束了
原则上讲hold time不需要设的 这就是工艺的一个参数 选择了器件以及环境条件以后 工具自然获取了该参数
不管哪个厂家的fpga 肯定hold violation都少于setup violation的
如果出现这种情况 一般都是时钟有问题 查一下clk是否使用了全局时钟资源 再查一下TimeQuest选项Common Clock Path Pessimism Removal是否使能
在Altera的quartusII下,添加*.sdc文件,使用TQ时序约束器来进行时序验证,具体的语法可以参照altera网站的叙述以及例子工程,当然最简单的方法是买一本altera相关设计的书来看。一个是时序约束,另一个就是逻辑锁定。时序约束是按照你的时序要求去布局布线。而逻辑锁定则是指设计者将某个模块或者某个网络指定在器件的某个位置。尽管有时序约束,但综合器也不能保证每次都能达到要求;而只有当逻辑锁定后,它能保证被锁定的模块在下一次综合不被改变。事出有因,之前加进来的一个SPI模块,一开始是正常的,后来陆续在设计中加了一些模块,综合后,居然发现SPI模块工作不正常,奇怪的是,在我备份的几个版本中,有几个正常,有几个又不正常,而在这个过程中SPI模块从未被修改过。我想一定是综合器在捣鬼,后来我在SPI正常的版本上查看chip
planner中spi的布局信息,然后将其逻辑锁定,再添加新的模块进来,结果发现,SPI果然没有受到影响。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)