打印

请教下大侠,这个电路怎么约束,altera的sdc约束

[复制链接]
2259|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这个项目是原来做过的,用的cyclone2去做的,quartus7的开发工具,
quartus老版本的约束是基于它自己的qsf约束命令。

后来产品小升级,芯片也换成了cyclone4去,只能用quartus12去搞,
新版的工具也改为sdc约束,做出产品后,发现后端芯片采集的不正确,仔细分析后,
可以确认是数据错位,也就是fpga的建立保持时间约束不对或是没达到要求。

研究了有一段时间了,还没完全搞明白,大侠帮指点下,看下我如下的约束,有没有问题

目标是需要跑到170M左右,实际只能跑到120M左右就开始出现采集的数据有问题了。
(原来cyclone2的平台上,可以稳定跑到195M以上),时钟约束是满足的,主要是建立保持时间的约束感觉不正确
和自己的理解有出入。。。




create_clock -name "clk_A" -period 5.800ns [get_ports {clk_A}]
create_clock -name "clk_B" -period 5.800ns [get_ports {clk_B}]
create_clock -name "clk" -period 5.800ns [get_ports {clk}]

set_input_delay -clock "clk_A" -max 3.8ns [get_ports {DATA_A}]
set_input_delay -clock "clk_A" -min 0.5ns [get_ports {DATA_A}]
set_input_delay -clock "clk_B" -max 3.8ns [get_ports {DATA_B}]
set_input_delay -clock "clk_B" -min 0.5ns [get_ports {DATA_B}]

set_output_delay -clock "clk" -max 2.5ns [get_ports {DATA}]
set_output_delay -clock "clk" -min -2ns [get_ports {DATA}]

set_max_delay 1.000ns -from [get_ports {*}] -to [get_ports {*}]
set_false_path -from "clk_A" -to "clk_B"


相关帖子

沙发
thinkabout4451|  楼主 | 2016-6-14 10:34 | 只看该作者
补充下,相同的逻辑,在xilinx的spartan6上也用过,也是稳定可靠的,
特意做了下后仿真,感觉sdc约束,搞的有点云里雾里。。。和自己理解的似乎出入很大。。。

使用特权

评论回复
板凳
LAORUAN| | 2016-6-19 15:53 | 只看该作者
clk应该是generated clock。
此外,你应该明白input delay和output delay中min和max分别指的是什么,这样才能正确约束。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

426

帖子

7

粉丝