触发器(基本的SR触发器、同步触发器、D触发器)
一、能够存储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触发器)的更多相关文章
- SQL 触发器-如何查看当前数据库中有哪些触发器
在查询分析器中运行: use 数据库名goselect * from sysobjects where xtype='TR' sysobjects 保存着数据库的对象,其中 xtype 为 TR 的记 ...
- redis作为mysql的缓存服务器(读写分离,通过mysql触发器实现数据同步)
一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录 ...
- Keepass 2.x 之 同步与触发器
同步 之前用的 Keepass 1.x, 要实现工作电脑和个人电脑上的数据库文件同步,使用的是第三方的网盘同步.但有个问题就是,个人不习惯设置同步网盘开机启动,所以有时候工作电脑上的改动还没有同步上传 ...
- MySql触发器实现数据同步学习
触发器实现:(增.删.改操作事件触发数据单向同步)数据库触发器教程:https://www.cnblogs.com/phpper/p/7587031.html同步代码: DELIMITER $ DRO ...
- 锁存器 Latch v.s. 触发器 Flip-Flop
转载 http://guqian110.github.io/pages/2014/09/23/latch_versus_flip_flop.html 根据 Wiki: Flip-flop (elec ...
- 【Java EE 学习 29 上】【PL/SQL】【存储过程】【存储函数】【触发器】
一.PL/SQL简介 1.概念:PL/SQL语言是Oracle数据库专用的一种高级程序设计语言,是对标准SQL语言进行了过程化扩展的语言. 2.功能:既能够实现对数据库的操作,也能够通过过程化语言中的 ...
- 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)
1 引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...
- PL/SQL之--触发器
一.简介 触发器在数据库里以独立的对象进行存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是由一个事件来触发运行.oracle事件指的是对数据库的表或视图进行的inse ...
- SQL Server 2005 中实现通用的异步触发器架构
在SQL Server 2005中,通过新增的Service Broker可以实现异步触发器的处理功能.本文提供一种使用Service Broker实现的通用异步触发器方法. 在本方法中,通过Serv ...
随机推荐
- nodejs全局安装与本地安装区别
本地安装 1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modul ...
- Stsadm 导入导出子站点
SharePoint通过stsadm备份和还原子网站(不是网站集) 大家都知道SharePoint的stsadm命令提供了很多便捷甚至是唯一的操作方法! 这里列出的所有命令:http://www. ...
- Python之路:爬虫之urllib库的基本使用和高级使用
关于爬虫自己一直在看,所以时间太慢,这才第二更,有等不及的小伙伴可以慢慢的品尝了,在看下面的之前,建议先把上一章看一下.以下是关于python的Urllib的基础和高级用法. 1.如何扒下一个网站,用 ...
- insertRule()与addRule()创建规则
要向现有的样式表中添加新规则,需要使用insertRule()方法.这个方法接受两个参数:规则文本和表示在那里插入规则的索引.下面是一个例子: sheet.insertRule("body ...
- 后台处理excel下载输出流
前台 <ul class="navtop-right"> <li > <a href="/portal/trip/importExec&qu ...
- fszipx.exe
来源:http://www.funduc.com/fszipx.htm 是个免费软件,用于把.zip转化为.exe自解压文件. COPY /B "C:\Tools\FsZipX\FsZipX ...
- auto ash v1
startdate=$1enddate=$2#reporttype=$3#reportformat='text'oraclehome=`echo $ORACLE_HOME` dbid=`sqlplus ...
- js框架——angular.js
这是一个前端用的框架,使用简单.详细介绍这里就不写了,主要介绍其语法和作用—— 1. 声明一个angular 如果想要使用一个angular代码,则需要在[想要使用angular的范围内写上ng-ap ...
- HDU2199,HDU2899,HDU1969,HDU2141--(简单二分)
二分是一种很有效的减少时间开销的策略, 我觉得单列出二分专题有些不太合理, 二分应该作为一中优化方法来考虑 这几道题都是简单的使用了二分方法优化, 二分虽然看似很简单, 但一不注意就会犯错. 在写二分 ...
- hdu-1978_How many ways dfs+记忆化搜索
How many ways Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total ...