触发器(基本的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 ...
随机推荐
- hdu 1166 敌兵布阵(线段树详解)
Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任 ...
- 模拟摇奖:从1-36中随机抽出8个不重复的数字(math)
public class Yaojiang { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] a=new int[8 ...
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;方法意思
这个方法是用来设置你的TableView中每一行显示的内容和格式的. indexPath 用来指示当前单元格,它的row方法可以获得这个单元格的行号,section方法可以获得这个单元格所处的区域号 ...
- win10快捷键大全
win10快捷键大全大家可以来了解一下,今天小编带来了win10常用快捷键,很多朋友喜欢使用快捷键来操作电脑,那么Windows10系统有哪些新的快捷键呢• 贴靠窗口:Win +左/右> Win ...
- DLT(Diagnostic Log and Trace)嵌入式系统程序运行记录
http://blog.csdn.net/yanlinembed/article/details/49837975 DLT的使用有属于Application范畴与Context范畴.在使用DLT时,需 ...
- Qt Quick 简单教程
上一篇<Qt Quick 之 Hello World 图文详解>我们已经分别在电脑和 Android 手机上运行了第一个 Qt Quick 示例—— HelloQtQuickApp ,这篇 ...
- 笨方法学python--第一个程序
该章主要知识点有: 1 print 打印,有双引号,单引号 2 分析报错信息,积累经验 3 # -*- coding:utf-8 -*-,可以输出汉字 4 井号,# ,注释, 英文名 octothor ...
- asp之servervariables全部显示
<%Response.Write("<p>")%><%for each i in request.servervariables%> <% ...
- HDU 5652 India and China Origins 二分优化+BFS剪枝
题目大意:给你一个地图0代表可以通过1代表不可以通过.只要能从第一行走到最后一行,那么中国与印度是可以联通的.现在给你q个点,每年风沙会按顺序侵蚀这个点,使改点不可通过.问几年后中国与印度不连通.若一 ...
- linux的学习系列 4---文件权限和访问模式
为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...