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

文章目录


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

Set Clock Groups

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

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

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

  • 第二种情况,可认为是同一个时钟域下的,并将其划分到一个group中,但是在固件设计的时候需要考虑到这一差异,设计同步机制(异步FIFO、握手机制、多周期约束)来确保不同频率数据传输无误。做异步处理之后相应的时序路径设为FalsePath可以不去STA。若不做异步需要在SDC中添加保证时序的措施(调相位,设Multicycle等)。

  • <

猜你喜欢

转载自blog.csdn.net/qq_43445577/article/details/105175433
今日推荐