普通的电路,以及常规的逻辑门都有一个共性,那就是输出直接依赖于输入,当输入消失的时候,输入也跟着不存在了。触发器不同,当它触发的时候,输出会发生变化。但是,当输入撤销之后,输出依然能够维持。

  这就是说,触发器具有记忆能力。若干年后,当工程师想在计算机中保存一个比特时,他们想到了触发器。不过R-S触发器有两个输出,保存一个比特不需要这么多。

  解决的办法是只留下一个输出Q,而Q'废弃不用(把它的引线剪掉)。这样,被保存的比特可以从Q端观察到,或者把它取走,引到别的地方使用。通过它,可以知道当前触发器保存的是什么,是0还是1。

  

  给R-S触发器安排两个门卫——这是两个与门,这两个门卫都归同一个经理管辖,这就是控制端CP:

  通常情况下CP=0,意思是现在不想保存数据。这时不管D上是什么,S和R都是0,根据之前R-S触发器的真值表,触发器将保持原有的内容不变。当要改变触发器中保存的内容时,CP的值必须为1,要是D=1,那么S=1而R=0,于是“1”就被保存到触发器里(Q=1)。

  换句话说,CP=0时,谁也别想再进入触发器,触发器将一直维持刚才保存的比特不变。一个需要经理亲自护送才能保存比特的触发器称为D触发器。D触发器的符号:

  对于D触发器来说,控制端CP就好比是触发器公司的经理,当它出现的时候,才能表明来的人是安全的。不过CP通常是带有有效期的,它的有效期,就是CP=1的时间。当CP=1时,在它的持续时间,D触发器将会卖力工作,随时都会因为外来的比特变化而触发;一旦CP=0,就意味着过了有效期,触发器将不能保存新的比特。

  如果从t0时刻开始,D端和CP端各自出现了下图所示的脉冲,那么,在t1时刻,触发器里保存的数据是0。

  很明显,在CP=1期间,只要D端的比特改变了,触发器就会随时触发。所以,你一定要把想保存的比特放到D端,稳住,等CP从0变到1,再从1变到0之后才能成功保存。

  是否可不用观察CP的状态,我们需要一种新的触发器,它只会在CP脉冲从0变成1,或者从1变成0的瞬间才会触发,这就下面要说的边沿触发。

D触发器的更多相关文章

  1. pt-online-schema-change中update触发器的bug

    pt-online-schema-change在对表进行表结构变更时,会创建三个触发器. 如下文测试案例中的t2表,表结构如下: mysql> show create table t2\G . ...

  2. MySQL主从环境下存储过程,函数,触发器,事件的复制情况

    下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affe ...

  3. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  4. MSSQL 事务,视图,索引,存储过程,触发器

    事务 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行. 在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据 ...

  5. Mysql - 触发器/视图

    触发器在之前的项目中, 应用的着实不多, 没有办法的时候, 才会去用这个. 因为这个东西在后期并不怎么好维护, 也容易造成紊乱. 我最近的项目中, 由于数据库设计(别人设计的)原因, 导致一些最简单功 ...

  6. Oracle使用触发器和mysql中使用触发器的比较——学习笔记

    一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志, ...

  7. 我的MYSQL学习心得(十二) 触发器

    我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...

  8. Oracle数据库自动备份SQL文本:Procedure存储过程,View视图,Function函数,Trigger触发器,Sequence序列号等

    功能:备份存储过程,视图,函数触发器,Sequence序列号等准备工作:--1.创建文件夹 :'E:/OracleBackUp/ProcBack';--文本存放的路径--2.执行:create or ...

  9. MySQL触发器-条件触发器语法

    文章为作者原创,未经许可,禁止转载.    -Sun Yat-sen University 冯兴伟 实验4 触发器 )实验目的 掌握数据库触发器的设计和使用方法 )实验内容和要求 定义BEFORE触发 ...

  10. MySQL笔记---视图,存储过程, 触发器的使用入门

    大二学数据库的时候,只是隐约听到老师提起过视图啊,存储过程啊,触发器啊什么的,但只是淡淡的记住了名字,后来自己做些小项目,小程序,也没有用上过,都只是简单的建表,关联表之类的,导致我对这些东西的理解只 ...

随机推荐

  1. Linux-Nginx之sendfile与上下文切换

    今天在看nginx thread pool的时候,频繁的看到sendfile,其实以前也经常看到sendfile,只是我平时选择性的忽视而已... 先说下sendfile,明天在好好聊下nginx 线 ...

  2. How to drop a PostgreSQL database if there are active connections to it?

    1.PostgreSQL 9.1 and below: SELECT pg_terminate_backend(pg_stat_activity.procpid) FROM pg_stat_activ ...

  3. unity shader random number

    http://gamedev.stackexchange.com/questions/32681/random-number-hlsl

  4. OpenJudge计算概论-循环移动

    /*=============================================================================== 循环移动 总时间限制: 1000ms ...

  5. 运行setup.js文件

    C:\Windows\System32>wscript.exe setup.js

  6. js 实现返回上一页和刷新等页面跳转功能

    原文 出处http://www.2cto.com/kf/201111/109821.html 1. Javascript 返回上一页history.go(-1), 返回两个页面: history.go ...

  7. winrar 5.21去广告

    http://www.rarlab.com/ 把下面的数据复制到“记事本”中,用文件名“rarreg.key搜索”命名该文件,保存到winrar安装文件夹即完成注册 RAR registration ...

  8. ORA-12545:因目标主机或对象不存在,连接失败!

    错误原因是配置错误主机名 解决: 1. 搜索你自己安装的Oracle路径,找到这俩个文件 tnsnames.ora 和 listener.ora,修改这两个文件,修改HOST=自己的主机名 我的路径如 ...

  9. Angular学习(8)- directive

    <!DOCTYPE html> <html ng-app="MyApp"> <head> <title>Study 9</ti ...

  10. linux 解压,源码包

    从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包   要解压很简单 :   .tar.gz     格式解压为          tar   -zxvf   ...