马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 cuizehan 于 2011-3-28 10:42 编辑
想设计一个逻辑,输入信号经过IBUF后,一路送给OBUF输出,一路送给ILOGIC在FPGA内做处理。
IBUF i_buf( .I(i), .O(branch));
OBUF o_buf( .I(branch), .O(o));
想让从IBUF到OBUF的延时尽量小,因此把IBUF、OBUF约束在一个IO Tile里(包含两个IBUF、两个OBUF、两个ILOGIC、两个OLOGIC、两个IODELAY),希望能从IBUF出来后直接就近传给OBUF。
可实际上不是这样,信号经过的路径如下:IBUF -> IODELAY -> ILOGIC -> OLOGIC -> OBUF,下图为FPGA Editor的具体走线。
通过后仿确定,从输入引脚到输出引脚的延时为7.359ns。(一个时钟周期2.5ns)
对于从IBUF、OBUF的net加MAXDELAY约束,不管是1ns还是4ns,结果都一样,从输入引脚到输出引脚的延时仍为7.359ns,且时序报告也一样:
==============================================================================
Timing constraint:
NET"branch" MAXDELAY = 4 ns;
1 net analyzed, 0failing nets detected.
0 timing errorsdetected.
Maximum net delayis
3.282ns.
--------------------------------------------------------------------------------
Slack: 0.718 ns branch
Report: 3.282ns delay meets 4.000ns timing constraint by 0.718ns
From To Delay(ns)
W12.I Y12.O 1.409 (不明白这一行是什么意思?)
W12.I ILOGIC_X2Y115.DDLY 3.282
--------------------------------------------------------------------------------
(branch为从IBUF到OBUF的net名,W12为输入引脚,Y12为输出引脚,在一个IO Tile里,ILOGIC_X2Y115.DDLY为输入接的ILOGIC)
为什么要选择这么长的走线,不能直接从IBUF输出接OBUF吗? |