一、能够存储1位二值信号的基本单元电路统称为触发器(Filp-Flop)

  触发器是构成时序逻辑电路的基本逻辑部件。它有两个稳定状态:“0”和“1”。在不同的输入情况下,它可以被置0状态或1状态,当输入信号消失后,所置成的状态能够保持不变。所以触发器可以记忆1位二值的信号。根据逻辑功能的不同,触发器可以分为SR触发器、D触发器、JK触发器、T和T'触发器。按照结构形式的不同,又可分基本SR触发器、同步触发器、主从触发器和边沿触发器。

  

其状态图:

a、当触发器处在0状态,即Q = 0,若S'R' = 10或11时,触发器仍为0状态。若S'R' = 01,触发器翻转成为1状态。

b、当触发器处在1状态,即Q = 1,若S'R' = 01或11时,触发器仍为1状态。若S'R' = 10,触发器翻转成为0状态。

约束条件是S’R’不能同时为0。

代码实现:

module RS(rst_n,r,s,q,qn);
input rst_n;
input r;
input s;
output q;
output qn; reg q;
reg i;
always @(rst_n or q)
if(!rst_n)
i = ;
else if(!q)
i = ;
else
i = ; always @(rst_n or r or s)
if(!rst_n)
q = ;
else
case(i)
://置0
if(({r,s} == 'b01) || ({r,s} == 2'b11))
q = ;
else if(({r,s} == 'b10))
q = ; ://置1
if(({r,s} == 'b10) || ({r,s} == 2'b11))
q = ;
else if(({r,s} == 'b01))
q = ;
endcase assign qn = ~q; endmodule

仿真代码:

`timescale 1ns/1ns
module RS_top;
reg rst_n;
reg r;
reg s;
wire q;
wire qn; initial begin
rst_n = ;
#;
rst_n = ;
repeat()
begin
r = ;
s = ;
#; r = ;
s = ;
#; r = ;
s = ;
#; r = ;
s = ;
#; end
end
RS rs1(
.rst_n(rst_n),
.r(r),
.s(s),
.q(q),
.qn(qn)
); endmodule

仿真波形:

可以看到仿真结果是对的。

二、电平触发SR触发器,即同步SR触发器。在基本的SR与非门电路上在加了一个与非门电路。

                  

代码实现:

module RS(rst_n,clk_en,r,s,q,qn);
input clk_en;
input rst_n;
input r;
input s;
output q;
output qn; reg i;
reg q;
reg qn; always @(rst_n or q)
if(!rst_n)
i = ;
else if(!q)
i = ;
else
i = ; always @(rst_n or r or s or clk_en)
if(!rst_n) begin
q = ;
qn = ;
end
else if(clk_en)//为1时,RS输入信号有效
case(i)
://置0
if(({r,s} == 'b10) || ({r,s} == 2'b11))
begin
q = ;
qn = ;
end
else if(({r,s} == 'b01))
begin
q = ;
qn = ;
end ://置1
if(({r,s} == 'b01) || ({r,s} == 2'b11))
begin
q = ;
qn = ;
end
else if(({r,s} == 'b10))
begin
q = ;
qn = ;
end
endcase
endmodule

仿真代码:

`timescale 1ns/1ns
module RS_top;
reg rst_n;
reg clk_en;
reg r;
reg s;
wire q;
wire qn; initial begin
rst_n = ;
#;
rst_n = ;
repeat()
begin
r = ;
s = ;
#; r = ;
s = ;
#; r = ;
s = ;
#; r = ;
s = ;
#; end
end
initial begin
clk_en = ;
#;
clk_en = ;
#;
clk_en = ;
#;
clk_en = ;
#;
clk_en = ;
end RS rs1(
.rst_n(rst_n),
.clk_en(clk_en),
.r(r),
.s(s),
.q(q),
.qn(qn)
); endmodule

仿真波形:在clk_en低电平时,Q处于保持状态,只有在clk_en为高时,RS输入信号才有效。

三、同步D触发器,是在同步SR触发器上演变过来的,D一端接到S,经过非门接到R:

             

代码实现比较简单:

if(!d) begin
q = 'b0;
qn = 'b1;
end
else begin
q = 'b1;
qn = 'b0;
end

触发器(基本的SR触发器、同步触发器、D触发器)的更多相关文章

  1. SQL 触发器-如何查看当前数据库中有哪些触发器

    在查询分析器中运行: use 数据库名goselect * from sysobjects where xtype='TR' sysobjects 保存着数据库的对象,其中 xtype 为 TR 的记 ...

  2. redis作为mysql的缓存服务器(读写分离,通过mysql触发器实现数据同步)

    一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录 ...

  3. Keepass 2.x 之 同步与触发器

    同步 之前用的 Keepass 1.x, 要实现工作电脑和个人电脑上的数据库文件同步,使用的是第三方的网盘同步.但有个问题就是,个人不习惯设置同步网盘开机启动,所以有时候工作电脑上的改动还没有同步上传 ...

  4. MySql触发器实现数据同步学习

    触发器实现:(增.删.改操作事件触发数据单向同步)数据库触发器教程:https://www.cnblogs.com/phpper/p/7587031.html同步代码: DELIMITER $ DRO ...

  5. 锁存器 Latch v.s. 触发器 Flip-Flop

    转载  http://guqian110.github.io/pages/2014/09/23/latch_versus_flip_flop.html 根据 Wiki: Flip-flop (elec ...

  6. 【Java EE 学习 29 上】【PL/SQL】【存储过程】【存储函数】【触发器】

    一.PL/SQL简介 1.概念:PL/SQL语言是Oracle数据库专用的一种高级程序设计语言,是对标准SQL语言进行了过程化扩展的语言. 2.功能:既能够实现对数据库的操作,也能够通过过程化语言中的 ...

  7. 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  8. PL/SQL之--触发器

    一.简介 触发器在数据库里以独立的对象进行存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来触发运行.oracle事件指的是对数据库的表或视图进行的inse ...

  9. SQL Server 2005 中实现通用的异步触发器架构

    在SQL Server 2005中,通过新增的Service Broker可以实现异步触发器的处理功能.本文提供一种使用Service Broker实现的通用异步触发器方法. 在本方法中,通过Serv ...

随机推荐

  1. assert()函数用法

    assert是定义在头文件cassert中的宏 其作用是如果他的返回值不为真则终止程序. assert(expression); if 为假,先向stderr打印一条错误信息,再用abort终止程序 ...

  2. 一个Cmake的例子

    命令查询列表:http://www.cmake.org/cmake/help/v3.2/manual/cmake-commands.7.html # # Official dependency num ...

  3. weka对数据进行预测

    1.注意待预测数据集和训练用数据集各个属性的设置必须是一致的.即使你没有待预测数据集的Class属性的值,你也要添加这个属性,可以将该属性在各实例上的值均设成缺失值.比如你可以将欲预测的类别设为?即缺 ...

  4. js纯ajax

    var XMLHttpReq; function createXMLHttpRequest() { try { XMLHttpReq = new ActiveXObject("Msxml2. ...

  5. Cormen — The Best Friend Of a Man

    Cormen — The Best Friend Of a Man time limit per test 1 second memory limit per test 256 megabytes i ...

  6. linux的学习系列 2--文件系统

    Linux中的所有数据都被保存在文件中,所有的文件被分配到不同的目录.目录是一种类似于树的结构,称为文件系统. 当你使用Linux时,大部分时间都会和文件打交道,通过本节可以了解基本的文件操作,如创建 ...

  7. 自动打开notepad 并写入数据

    import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import java.io. ...

  8. setter getter 属性 点语法

    转载自:http://liuyafang.blog.51cto.com/8837978/1543715 什么时setter,getter, 在OC里, 为实例变量赋zhi的方法称作setter(设置器 ...

  9. FZU 1894 志愿者选拔(优化循环)

    我并没有多想,他们是用的数组模拟队列,然而我就是优化循环次数过得 #include<iostream> #include<cstdio> #include<cstring ...

  10. Windows、Linux -- 远程登录、文件传输、文件共享

    Linux  <--->  Linux 远程登录: ssh服务 ssh root@10.20.62.124 文件传输: scp服务 上传  scp /home/xxx.txt root@1 ...