一、能够存储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. C++ 中Hello World的一种写法

    /*C++ Hello World**/#include <stdio.h>#include <iostream>int main(){    printf("Hel ...

  2. 07-09 07:28:38.350: E/AndroidRuntime(1437): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.googleplay.ui.activity.MainActivity" on path: DexPathList[[zip file "/data/app/c

    一运行,加载mainActivity就报错 布局文件乱写一通,然后急着运行,报莫名其妙的错误: 07-09 07:28:38.350: E/AndroidRuntime(1437): Caused b ...

  3. 20150627分享iOS开发笔记

    util是工具的意思:Ad Hoc是特别的,临时的意思;validate是验证的意思: 打包 苹果的键盘真好使 6和6 plus真机测试报错:No architectures to compile f ...

  4. 用TLS实现安全TCP传输及配置和访问https的web服务(转)

    tls相关 大致原理 为了让两个之间实现安全传输,(我们把服务端统一叫做TcpServer,客户端统一叫做TcpClient),TcpServer在listen完了accept之后要用一个证书来声明自 ...

  5. 多说【最近访客】JS插件通用代码使用方法

    多说[最近访客]JS插件可以显示近期访问过你的博客并且已经使用向多说授权过的社交网络账号登录的用户头像,效果如下图所示. 最近访客JS插件的添加步骤如下: 1. 添加多说公用JS代码,每个页面只需添加 ...

  6. ubuntu 安装LNMP

    How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 12.04 PostedJune 13, 2012 802.8kviews ...

  7. API CLOUD 快捷键

    常用快捷键有:Ctrl+Z:撤销Ctrl+N:创建项目或文件Ctrl+Shift+F:代码格式化(这个经常用,可以美化代码,也可以通过这个检查代码是否出错)Ctrl+/ :注释和反注释Alt+/:强制 ...

  8. How to Iterate Over a Map in Java?(如何遍历Map)

    1.Iterate through the "entrySet" like so: public static void printMap(Map mp) { Iterator i ...

  9. java设计模式案例详解:工厂模式

    1.简单工厂模式 在不考虑扩展的情况下还是很好用的,其实我们写代码也很经常用到,其主要理解在于传入不同参数则构建不同对象,只有一个工厂,如需添加产品涉及到扩展需要修改比较多的东西,不符合开闭原则,如下 ...

  10. jave学习1--基础介绍

    java 技术主要分为三个部分: jave SE基础知识. 对于各个程序的开发语言都包含的基本数据类型,循环控制,数组,方法等. jave SE的面向对象部分. 所有的面向对象的概念,为最终的接口准备 ...