|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1.布局太差导致的布线延迟太高问题3 r& q, ^- W2 I: Q$ f1 m. `
( N& b* d! B' Z \" t; C, S) f
. B. S0 `+ f7 g0 z: r6 O* Y 布线延迟太高问题一般有两种情况,1)一种是布线扇出太多导致的问题,另外再对扇出太多补充一点,扇出太多而增加buffer提高驱动能力,而普通I/O信号或片内信号进入BUFG到从BUFG输出,有大约10ns的固定时延,但是BUFG到片内所有单元的延时可以忽略为0ns。这个问题在上篇中已经给出了解决方案,也就是通过逻辑复制的方法解决。2)就是今天要说的问题,就是本身各种信号扇出并不多,逻辑时间也不是很大,但是布线延迟很大,这种问题就是布局太差的问题。
0 n. O* k7 K, h* {
: v ~5 B* h& M% u/ |
7 g# X* n1 h1 q; {0 J7 W- a 相应的解决方案有:通过ISE布局工具中调整布局的努力程度(effort level),特别努力程度(extra effort),MPPR选项,实在不行的话就尝试使用Flootplanner相对区域约束重新对设计进行布局规划。
+ l. I3 I) b8 c1 d
+ c) |; B7 b! p( q7 `5 B5 N2 R$ d M# ^9 u" t$ P
2.就是出现逻辑级数过多情况
- y9 ^4 G0 D# y0 `+ V( q4 }6 {: R; `; B7 w4 o) g
9 u9 [1 v# e* k$ R 也就是逻辑计算时间比较大,这种情况一般不属于时序问题,而属于程序编写问题,尽量不要嵌套IF ELSE语句或者CASE语句嵌套,能用CASE语句尽量不用IF ELSE语句,还有就是在使用IF 语句和CASE语句时注意防止产生不必要的锁存器。
# q1 K: n" }# U; {
3 p! w/ g0 M; V6 |
, w8 M" k& [5 P( |. Q5 `: D+ B* e
7 l8 g) D. j: m. S$ d/ _4 g# v
- e7 {4 Q5 |) ~6 e W$ I7 y5 O3 D) ~ |
|