|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
忠告一
6 y2 J6 ]. `0 h. x* {5 M& R& t! [. f5 [6 M
如果时序差的不多,在1NS以内,可以通过修改综合,布局布线选项来搞定,如果差的多,就得动代码。
. d3 Y# t1 }! X l
2 U9 S! h6 ]" o3 ]* b忠告二
8 n0 {4 n: @' [, i/ W( f7 X: P
4 P; v) Z5 p2 L: x5 ]- L看下时序报告,挑一个时序最紧的路径,仔细看看是什么原因导致,先看逻辑级数是多少?是哪种电路有问题,乘法器 或者还是RAM接口数据 先弄清楚哪儿的问题& y" H6 N* a9 m9 c6 B: l4 v2 X8 U D
, o1 J) Z: n2 L! N- G
忠告三
3 ?% J* K- M {# o4 `# p% h- g6 x0 r) H3 h8 @3 I) I
搞时序优化的话 插入寄存器是王道 但也要看具体情况 不一定都得插寄存器,插入寄存器效果不明显的话,先检查一下寄存器插入的位置,如果寄存器不是在关键路径的中间插入而是在某一端的话,确实不大明显( [5 h) v) h+ V0 I* n' v" I
# Q t6 G. \. a3 t忠告四% c' r& ?: A" t! u# r: g* p/ M; J- ^
+ g, Y5 P7 g2 Q& j' h把关键路径找出来,看时序报告,看是什么原因导致频率上不去,如果是组合逻辑复杂,就优化逻辑或者复制逻辑,如果是DSP延迟大,就选多级流水的,只要想搞到150,就一定可以。# q2 K, E1 k/ D! r6 @
# P% z7 G& n2 a W) U; _忠告五
$ H9 ?+ u" i6 h( b2 |; [6 ~& ~! z7 {% X+ }/ l% u7 b
看时序报告的时候,建议同时对照电路图一起看,这样最直观 @% M) G. ^+ q( I
# ~# I# N: s& i# K, Y6 {/ p l忠告六
" {" `1 R0 S4 i# T" g! Z$ b. t, M. N1 b1 m% r
对照代码,自己把关键路径涉及部分的电路图画出来,然后根据时序要求,算一下要插多少寄存器,插哪儿合适
3 O3 S1 L, X/ E1 \" T4 O. u
0 {3 i9 M Q$ r4 {% m. M! X. ^& N忠告七5 j* ^: @( v8 p; n1 A. c7 @8 `1 D
1 q1 a4 @+ N6 G
32BIT的比较器,进位链有点长,可以分段比较,分成4个8BIT的数据段去比,或者你分成两段,先比高16,插寄存器,再比低16,时序很好,如果想深入些,就自己手写一个比较器,不要调库。
% t- B/ Y8 G6 j$ ~' ?. C0 B0 {5 {2 E4 k; T
忠告八
2 V$ ?% m2 L# Y7 D- H& r$ I
, V0 A2 R( u0 I3 _: X多BIT的逻辑,时序上不去,通常都是进位链太长,通常做法就是打断进位链,建议看看计算方法或者数字算法之类的书,应该会有帮助
' Y& t6 _: D; w$ X3 D! l3 V |
|