d触发器
时序逻辑的一般设计规则是:
在绝大多数设计中避免产生latch(锁存器)。它会让您设计的时序完蛋,并且它的隐蔽性很强,非老手不能查出。latch最大的危害在于不能过滤毛刺。这对于下一级电路是极其危险的。所以,只要能用D触发器的地方,就不用latch。
钟控D触发器其实就是D锁存器,边沿D触发器才是真正的D触发器,钟控D触发器在使能情况下输出随输入变化,边沿触发器只有在边沿跳变的情况下输出才变化。
两个锁存器可以构成一个触发器,归根到底还是dff是边沿触发的,而latch是电平触发的。锁存器的输出对输入透明的,输入是什么,输出就是什么,这就是锁存器不稳定的原因,而触发器是由两个锁存器构成的一个主从触发器,输出对输入是不透明的,必须在时钟的上升/下降沿才会将输入体现到输出,所以能够消除输入的毛刺信号。
always块可以表示时序逻辑或者组合逻辑,也可以用always块既表示电平敏感的透明锁存器又
同时表示组合逻辑。但是不推荐使用这种描述方法,因为这容易产生错误和多余的电平敏感的透明锁存器。
如果要为电平敏感的锁存器建模,使用连续赋值语句是最简单的方法。
例:
input a,b,c;
reg e,d;
always @(a or b or c) begin
e =d & a & b;
end
/* 因为d没有在敏感电平列表中,所以d变化时,
e不能立刻变化,要等到a或b或c变化时才体现出来,
这就是说实际上相当于存在一个电平敏感的透
明锁存器在起作用, 把d信号的变化锁存其中 */
应更改为
用assign赋值: assign e = d&a&b;
always @(*) begin
e =d & a & b;
end
相关阅读
module cy4(input T, input clk, input rst_n, output reg Q ); always @(posedge cl
基本概念触发器(trigger)是一种特殊类型的存储过程。它主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接
目录 事务 索引 1.创建索引 2.删除索引 3.查看索引 4.索引准则 视图 触发器 存储过程 1.创建存储过程 2.调用存储过程 3.查看存储
1、触发器说明触发器是一种在事件发生时隐式地自动执行的PL/SQL块,不能接受参数,不能被显式调用2、触发器类型根据触发器所创建的语
spring Quartz 源码分析--触发器类CronTriggerBean源
前面我们讲到了Quartz框架在项目中的实现,在Quartz中的重要API有两个重要的触发器类:CronTrigger 和SimpleTrigger 在Quartz框