FPGA设计之时序约束(二)——划分时钟域

在FPGA设计中,正确设置时序约束至关重要。默认情况下,所有时钟被视为同步,但异步时钟需通过set_clock_groups命令进行分组。不同时钟源产生的时钟为异步时钟,而同源不同分频的时钟可视为同步。设计时需考虑异步时钟间的同步机制,如异步FIFO、握手机制。set_clock_groups -asynchronous用于标记异步不相关的时钟,-logically_exclusive和-physically_exclusive则用于逻辑或物理互斥的时钟。尽管set_clock_groups可简化时序路径管理,但不能完全替代set_false_path,因为并非所有伪路径都跨时钟域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录


本文针对Intel FPGA。
在创建好所有的时钟后,需要定义这些时钟之间的关系。

Set Clock Groups

在默认情况下,TimeQuest认为设计中所有的时钟都是同步的,并把所有的时钟都放在同一个group里。如果设计中有异步时钟,就需要用命令把异步时钟分组并定义出来。

1.一般来说,由不同时钟源(晶振)产生的,不论时钟频率是否一致,时钟之间无法保证相对相位关系,必然属于异步时钟;同源不同相时钟也是异步时钟,例如延迟链产生的派生时钟。
2.由同一个时钟源并且由同一个PLL产生的,不同分频倍频系数的不同频率的时钟,属于同步时钟,因为其相位关系是确定的。当然一个PLL产生的时钟最好是同频不同相位或者呈现倍数关系的时钟。若硬要说同一个PLL产生的一个19.9M一个6.7821M是同步时钟也不太合适,毕竟没有几个边沿能对齐。

  • 第一种情况,不同时钟源的时钟信号必然属于不同的时钟域。

  • 第二种情况,可认为是同一个时钟域下的,并将其划分到一个group中,但是在固件设计的时候需要考虑到这一差异,设计同步机制(异步FIFO、握手机制、多周期约束)来确保

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arist9612

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值