本文节选自特权同学的图书《FPGA/CPLD边练边学——快速入门Verilog/VHDL》
书中代码请访问网盘:http://pan.baidu.com/s/1bndF0bt
接下来,我们要用这些基本的逻辑门搭个复杂点的电路。这个电路如图3.13所示,这是边沿触发的D触发器电路。该触发器的功能是实现时钟信号clk上升沿(由0变化到1)时将输入信号D的值锁存到输出信号q。
图3.13 边沿触发的D触发器电路
该D触发器的真值表如表3.1所示。由此表不难看出,这个D触发器实现了clk信号的上升沿锁存当前输入D信号值到输出信号q或~q的功能,而当clk信号为0或者保持高电平期间,D信号的取值变化不会影响当前的输出q和~q。
表3.1 D触发器真值表
D |
clk |
f3 |
f4 |
f5 |
f6 |
f1 |
f2 |
q |
~q |
0 |
0 |
0 |
1 |
1 |
1 |
- |
- |
- |
- |
1 |
0 |
1 |
1 |
1 |
0 |
- |
- |
- |
- |
↓ |
0 |
0 |
1 |
1 |
1 |
- |
- |
- |
- |
↑ |
0 |
1 |
1 |
1 |
0 |
- |
- |
- |
- |
0 |
↑ |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
↑ |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
↑ |
1 |
0 |
1 |
0 |
1 |
- |
- |
- |
- |
↓ |
1 |
1 |
0 |
1 |
1 |
- |
- |
- |
- |
0 |
↓ |
0 |
1 |
1 |
1 |
- |
- |
- |
- |
1 |
↓ |
1 |
1 |
1 |
0 |
- |
- |
- |
- |
由此可见,D触发器可用于存储比特信号,当D输入为0时,在时钟clk的上升沿,q输出也为0;当D输入为1时,在时钟clk的上升沿,q输出也为1;在其他的时刻,q输出保持不变。在实际电路中,时钟信号clk源源不断的有标准的方波输入,每个时钟信号clk的上升沿都会使得D触发器的输入D值被锁存到输出q值中。其实这个D触发器就是我们最基本的寄存器的雏形了,在时序电路中,寄存器和时钟是最基本的要素。
用户1832080 2015-3-19 14:38