为什么需要了解触发器?
触发器通常用于数据存储,是任何数字系统中最重要的组件之一。了解触发器将有助于了解建立和保持时序概念,这是所有数字芯片流片制造之前应该满足的两个最关键的时序要求。触发器的建立和保持时间也是IC设计工程师最常见的面试问题之一。
以下是数字IC/FPGA设计中任何时序系统的典型架构,涉及2个触发器(红色突出显示)和组合逻辑。
许多触发器一起组成了寄存器组。在微控制器芯片中,寄存器通常存储配置数据,以便用户可以更改芯片功能。
触发器原理图
以下是触发器的示意图,它广泛用于数字标准单元库和芯片综合。为了简单起见,没有复位的触发器,数据输入(D)、时钟输入(CK)和数据输出(Q)。这是一个上升沿触发的触发器。
触发器原理图由一个主latch和一个从latch组成。每个latch包括两个传输门和反相器。
传输门(TG)是一对晶体管。之所以使用TG而不是只使用一个晶体管,是因为单NMOS通过强“0”和弱“1”,而单PMOS通过强“1”和弱“0”。
第一个TG将新数据传递到主latch(CK=0),如果CK=1则将新数据(D)与主latch中存储的数据中隔离。
第二个TG将主latch中新存储的数据传递给从latch(CK=1),CK=0隔离新数据与从latch中的数据。
第三个和第四个TG是在需要时存储和驱动数据。
这些latch上的反相器主要用于数据缓冲。如下图所示,时钟路径上的两个反相器将生成时钟翻转,以控制四个传输门的时序(何时打开,何时关闭)。
触发器是如何工作的
现在,开始详细解释这个触发器是如何工作的。假设存储在触发器中的旧数据是“1”,新数据(D)是“0”。如上图所示,触发器如何将新数据存储在时钟上升沿触发器的latch中。
当时钟为“0”时,CKN=1和CKI=0。这使传输门TG1打开和TG3关闭。TG3关闭释放主latch的存储,而TG1 打开将新数据“0”传递到主latch中。另一方面,TG2是关闭的,将主latch中新存储的数据与从latch隔离开,而TG4则打开,将旧数据“1”保留在从latch中。
在时钟的上升沿(0 → 1),CKN=1→0和CKI=0→1。这将打开TG2和TG3,同时关闭TG1和TG4。这将新数据“0”存储在主latch中,同时将新数据传递给从latch。TG1 关闭将输入D与主latch隔离,以防止输入的更改影响存储在主latch中的数据。