找回密码
 注册
关于网站域名变更的通知
查看: 320|回复: 2
打印 上一主题 下一主题

FPGA几种时序问题的常见解决方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-10-25 09:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1.扇出太多引起的时许问题。' e; c) |# S% V2 x

2 `: J. t# ^9 Z8 e( l# R" y7 w9 P     信号驱动非常大,扇出很大,需要增加驱动能力,如果单纯考虑驱动能力可以尝试增加buffer来解决驱动能力,但在插入buffer的同时增加了route的延时,容易出现时序报告评分问题。' u! e6 E! g* t. l$ ~& C

0 j2 B4 ]& _2 g# h% }9 t1 z& X    解决该问题常用方法为进行驱动信号逻辑复制,即对扇出很大的信号产生逻辑进行多次复制,生成多路同频同相的信号去驱动下级逻辑电路。保证了时延同时也增大了驱动能力。但是该方法在使用过程中可以和buffer一起使用,平衡资源利用率和时延,防止资源分配不均或者时序考虑不周。/ J) P) [7 O% `* q; X! D6 h: ~) b
* A  a/ B  D+ c0 t
; c. t" O- s" [* t4 y# T

; N) N+ S) `8 H6 g* g2.对于时钟频率要求较高导致的上升沿下降沿对不同的寄存器操作的问题。6 O5 g+ k' j5 F0 l4 @( v9 I
# O- C2 P+ ^" @- {
    首先分析该问题产生原因,如果上升沿下降沿都使用,就相当于是电平触发,电平触发比时钟沿触发更容易受到干扰,所以一般不同时对一个时钟的上升沿和下降沿分别对不同的寄存器操作。0 Q4 P* y8 V! ~+ O8 I5 I2 S" z

8 B* @. h. m& {) L) O. D( u    1)将时钟通过MMC或者PLL产生180相移产生新的时钟,新的始终的上升沿就是原时钟的下降沿,从而实现都为上升沿触发。8 I6 \, j0 h& s9 t; n
( r! i7 W+ a# F0 i
    2)使用全局时钟资源中的INV实现对原时钟信号取反,然后新的时钟信号的上升沿就是原时钟的下降沿。8 `. Z3 a2 M: }$ s  T: z; i( d. K

: T7 m9 r( ?( w' x( I    另外对于其他方法要思考,比如对原时钟信号进行倍频实现上升沿下降沿均为上升沿,这个方法直接提升系统时钟速率一倍,如果不是时钟速度太高这个上升沿下降沿问题也不会出现了,故,该方法暂不考虑。还有就是对于时钟的使用一定要使用PLL或者MMC这些专门的时钟内核生成。

$ g) ?( \+ K' U0 E1 o5 Z6 V7 T

该用户从未签到

2#
发表于 2021-10-25 11:16 | 只看该作者
信号驱动非常大,扇出很大,需要增加驱动能力
9 G: H, M; ?* E  o" }# [

该用户从未签到

3#
发表于 2021-10-25 11:28 | 只看该作者
对于时钟的使用一定要使用PLL或者MMC这些专门的时钟内核生成
9 f% B9 e5 ?6 G4 d! I, }' s9 E
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-30 15:16 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表