【转载】为什么会有建立时间setup和保持时间hold要求
D触发器结构
要知道为什么会有setup、hold要求,首先要清楚D触发器的结构
D触发器可以由静态逻辑实现,也可以由动态逻辑实现,这里仅讨论静态CMOS D触发器的结构
构成一个D触发器最普遍方法是采用主从结构,由一个负latch(主级)和正latch(从级)串联而成,而latch可以采用传输门构成的多路开关MUX来实现,见下图
而具体的电路结构如下图
可以看到latch中的MUX是通过传输门逻辑实现的,牢记这个结构即可
为什么有建立时间要求(setup)
那为什么会有建立时间要求呢?首先明确建立时间的概念
建立时间:输入数据D在时钟上升沿之前必须有效的时间
假设上图中反相器的延时都是Thold=tclkinv−tdinv
建立时间、保持时间跟什么有关
- 触发器本身的结构、工艺
- D、CLK信号的transition
- PVT
从上面的分析可以知道,建立时间、保持时间的大小本质上跟内部反相器和传输门的延时有关,凡是会影响门延时的因素都能影响建立时间和保持时间
比方说,D、CLK信号transition的不同会导致D net和CLK net上的反相器延时不同,进而影响hold;而如果触发器本身采用LVT单元实现,那么速度更快,setup也就更小.
D触发器结构
要知道为什么会有setup、hold要求,首先要清楚D触发器的结构
D触发器可以由静态逻辑实现,也可以由动态逻辑实现,这里仅讨论静态CMOS D触发器的结构
构成一个D触发器最普遍方法是采用主从结构,由一个负latch(主级)和正latch(从级)串联而成,而latch可以采用传输门构成的多路开关MUX来实现,见下图
而具体的电路结构如下图
可以看到latch中的MUX是通过传输门逻辑实现的,牢记这个结构即可
为什么有建立时间要求(setup)
那为什么会有建立时间要求呢?首先明确建立时间的概念
建立时间:输入数据D在时钟上升沿之前必须有效的时间
假设上图中反相器的延时都是Thold=tclkinv−tdinv
建立时间、保持时间跟什么有关
- 触发器本身的结构、工艺
- D、CLK信号的transition
- PVT
从上面的分析可以知道,建立时间、保持时间的大小本质上跟内部反相器和传输门的延时有关,凡是会影响门延时的因素都能影响建立时间和保持时间
比方说,D、CLK信号transition的不同会导致D net和CLK net上的反相器延时不同,进而影响hold;而如果触发器本身采用LVT单元实现,那么速度更快,setup也就更小.