1、fpga中各个电路的工作是依靠时钟驱动,当发生建立时间Tsu和保持时间Th违规时,就需要 约束 来调整这些违规的信号。
2、违规的发生本质是:
1、建立违规:Tclk(周期)<FA(逻辑计算)+路由时间+建立时间Tsu
2、保持违规:沿敏感(上升)在保持时间采集数据,保持时间未满足,下一个数据到达。
3、约束:就是让不满足建立和保持时间的信号,符合信号与时钟沿的建立和保持关系。
4、为什么要满足建立和保持:主要是为了解决电路中的冒险、竞争。
5、冒险、竞争的影响主要是输出端的毛刺现象,会严重影响电路的稳定性和正确性。
6、什么是毛刺现象:在组合电路中由于路由和逻辑单元的门级数量不同,则需要的时间不同,那么各路不同的信号,到达输出端的时间将有先后顺序,导致输出端的结果,存在错误的时刻,然后趋于稳定。
比如:2路信号 分别是0和1,输出端相或,那么结果应该为高电平1。当0信号先到达,那么这一时刻的输出是低电平0,过2ns之后1信号到达,输出结果为高电平1,则称输出0的这一时刻现象为“毛刺现象”。
7、由于毛刺现象的发生时间周期很短,且多发于信号到来的初期,对应到时序电路中就是发生在建立时间,因此,时序电路的数据采集时间在保持时间,是稳定的。
8、因此当时序电路的建立时间和保持时间违规,就不能有效的避免冒险、竞争问题,这是时序需要约束的本质。