一:最简D触发器
D为信号 输入端,clk为时钟控制端,Q为信号输出端。这种触发器的逻辑功能是:不论触发器原来的状态如何,输入端的数据D(无论D=0,还是D=1)都将在时钟clk的上升沿被送入触发器,使得Q=D。其特征方程可描述为Qn+1=Dn。
![0fd7a301a694891891ba34482d7c80f3.png](https://i-blog.csdnimg.cn/blog_migrate/0a9fc46766c616701e38a8c74aa8576c.png)
![4cae068666cb89ccc53f7c498d8aad74.png](https://i-blog.csdnimg.cn/blog_migrate/6b9f3c009b15fede8ed16e3cb1a65849.png)
![dc6cfdde90b32f10e54321d3772328b5.png](https://i-blog.csdnimg.cn/blog_migrate/aa390fee10563282c87f221b7b9e8e6e.png)
二:带复位端的D触发器
在D触发器的实际使用过程中,有时候需要一个复位端(也称清零端)
![8449600d69f5db41cfa2ef47e1db320a.png](https://i-blog.csdnimg.cn/blog_migrate/f1a94ca444a4453fc3a471b2f366e30f.png)
电路上电时,电路的逻辑处于不定状态,复位脉冲的到来将电路初始化为Q=0的状态。随后,在时钟的控制下输出端D的数据在每个时钟上升沿被置到输出端Q。
(1)同步清零代码
![89b36f7bb9a353e0144c6f963a118369.png](https://i-blog.csdnimg.cn/blog_migrate/4c125d781ce6a22d2a8cdad267b84d10.png)
(2)异步清零代码
![3c1098d3900eb8cf2814f2da849e2c62.png](https://i-blog.csdnimg.cn/blog_migrate/6f6d6acee7fdb923ae1dcacf39f521f1.png)
同步清零和异步清零触发器的电路代码只是在always后的敏感向量表上有所不同。对于同步清零,并不是清零信号一变化电路马上就会被置0,清零信号有效后需等待时钟的有效边沿到来后电路才会有动作,因此不应把清零信号写入敏感向量表中。而异步清零时,只要清零信号有效,电路就会马上更新,输出置0,因此对于异步电路,清零信号有必要写入敏感向量表中。