目录
(1)在组合逻辑中
其代码一般使用assign赋值,编写方式与c语言、python语言编写格式一致,不必多说。
(2)在时序逻辑中
我们是基于reg型变量进行编写代码,下面进行详细分析。
1)定义
该处所说的寄存器即为数电当中的D触发器,使用reg变量来表示。
2)波形
寄存器代码是在always块下编写的,如下图。
D触发器代码
对应的波形图
3)分析
由波形图可知,D触发器的输出比输入波形延迟一个时钟周期,总结起来就是时序逻辑寄存器的特点是“打一拍”的效果,即输出波形比输入波形延迟一个时钟周期。
4)补充
当输入信号与时钟信号值对齐时,有两种方法来判断输出波形。一是触发条件工作原理(这个是真正的原理),二是数电知识(这个是人们总结出来的方法)。在这里笔者习惯于第二种,故只解释第二种,第一种网上到处都是。
4.1 波形图
D触发器波形对齐图
4.2 详细分析
针对于第二种方法,D触发器在输入信号与时钟信号值对齐时,输出取时钟上升沿前一刻的值,即上图第一个时钟上升沿时,第一个时钟上升沿这个瞬时时刻输入时0 or 1我们不知道,但是经过前人的实验,此时我们取第一个时钟上升沿这个边沿前一刻的值,即0,如上图所示。