精华内容
下载资源
问答
  • 本文着重介绍锁相环在变流领域中的多相同步触发器中的应用。具体介绍了一个实际的六拍同步触女 器的设计方法, 这个方法也适用于十二相或更多相数的同步触发器
  • 一、能够存储1位二值信号的基本单元电路统称为触发器(Filp-Flop)  触发器是构成时序逻辑电路的基本逻辑部件。它有两个稳定状态:“0”和“1”。在不同的输入情况下,它可以被置0状态或1状态,当输入信号消失后,...

    一、能够存储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 = 0;
    else if(!q)
        i = 0;
    else
        i = 1;
        
    always @(rst_n or r or s)
    if(!rst_n)
        q = 0;
    else
        case(i)
        0://置0
        if(({r,s} == 2'b01) || ({r,s} == 2'b11))
            q = 0;
        else if(({r,s} == 2'b10))
            q = 1;
        
        1://置1
        if(({r,s} == 2'b10) || ({r,s} == 2'b11))
            q = 1;
        else if(({r,s} == 2'b01))
            q = 0;
        endcase
        
    assign qn = ~q;
    
    endmodule
    View Code

    仿真代码:

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

    仿真波形:

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

    二、电平触发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 = 0;
    else if(!q)
        i = 0;
    else
        i = 1;
        
    always @(rst_n or r or s or clk_en)
    if(!rst_n) begin
        q = 0;
        qn = 1;
    end
    else if(clk_en)//为1时,RS输入信号有效
        case(i)
        0://置0
        if(({r,s} == 2'b10) || ({r,s} == 2'b11))
        begin
            q = 0;
            qn = 1;
        end
        else if(({r,s} == 2'b01))
        begin
            q = 1;
            qn = 0;
        end
        
        1://置1
        if(({r,s} == 2'b01) || ({r,s} == 2'b11))
        begin
            q = 1;
            qn = 0;
        end
        else if(({r,s} == 2'b10))
        begin
            q = 0;
            qn = 1;
        end
        endcase
    endmodule
    View Code

    仿真代码:

    `timescale 1ns/1ns
    module RS_top;
    reg rst_n;
    reg clk_en;
    reg r;
    reg s;
    wire q;
    wire qn;
    
    initial begin
        rst_n = 0;
        #10;
        rst_n = 1;
        repeat(500) 
        begin
            r = 0;
            s = 1;
            #20;
            
            r = 1;
            s = 1;
            #20;
            
            r = 1;
            s = 0;
            #20;
            
            r = 1;
            s = 1;
            #20;
    
        end
    end
    initial begin
        clk_en = 0;
        #50;
        clk_en = 1;
        #500;
        clk_en = 0;
        #100;
        clk_en = 1;
        #500;
        clk_en = 0;
    end
    
    RS rs1(
            .rst_n(rst_n),
            .clk_en(clk_en),
            .r(r),
            .s(s),
            .q(q),
            .qn(qn)
            );
            
    endmodule
    View Code

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

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

                 

    代码实现比较简单:

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

     

    转载于:https://www.cnblogs.com/wen2376/p/3268327.html

    展开全文
  • 电平触发器:假设高电平有效,则是,在高电平时输入才对输出有控制作用; 脉冲触发器:一般有两个触发器,一个时钟信号去控制这两个触发器。注意,在这里引进了主从触发器的概念。在一个周期时钟信号中,假设...同步...
    • 电平触发器:假设高电平有效,则是,在高电平时输入才对输出有控制作用;
    • 脉冲触发器:一般有两个触发器,一个时钟信号去控制这两个触发器。注意,在这里引进了主从触发器的概念。在一个周期时钟信号中,假设前半周期是高电平,后半周期是低电平。在高电平时主触发器的输入有效,来控制主触发器的输出,从触发器输入无效。低电平时,主触发器输入无效,从触发器输入有效,这时从触发器的输入是上半周期中主触发器的输出;
    • 同步触发器:多个触发器是否受一个时钟控制,又称为时钟控制的电平触发器;
    • 边沿触发器:时钟信号在上升沿或下降沿时,输入有效。
    展开全文
  • 创建触发器 /*同步插入触发器*/ DROP TRIGGER IF EXISTS ENOTICE.tg_sync_insert; DELIMITER | CREATE TRIGGER ENOTICE.tg_sync_insert AFTER INSERT ON ENOTICE.VIO_USERINFO FOR EACH ROW BEGIN INSERT INTO ...

    1、

    DELIMITER |

    CREATE TRIGGER table1_insert

    BEFORE INSERT

    ON table1

    FOR EACH ROW

    BEGIN

    declare v_t1 date;

    if new.s1 is not null and new.d1 >= '2010-01-01' then

    if new.d1 < date(new.c1) then

    select t1 into v_t1 from table2 where s1 = new.s1;

    if new.d1 < v_t1 and new.c1 > concat(v_t1, ' 15:00:00') then

    set new.isvalid = 0;

    end if;

    end if;

    end if;

    END;

    2、

    DELIMITER |

    CREATE TRIGGER table1_update

    BEFORE UPDATE

    ON table1

    FOR EACH ROW

    BEGIN

    declare v_t1 date;

    if new.s1 is not null and new.d1 != old.d1 and new.d1 >= '2010-01-01' then

    if old.isvalid != 1 then

    if new.d1 >= date(new.c1) then

    set new.isvalid = 1;

    end if;

    else

    if new.d1 < date(new.c1) then

    select t1 into v_t1 from table2 where s1 = new.s1;

    if new.d1 < v_t1 and new.c1 > concat(v_t1, ' 15:00:00') then

    set new.isvalid = 0;

    end if;

    end if;

    end if;

    end if;

    END;

    3、

    DROP TRIGGER `test`.`test_insert`//

    CREATE TRIGGER `test`.`test_insert` BEFORE INSERT ON `test`.`test`

    FOR EACH ROW BEGIN

    declare v_t1 date;

    if new.s1 is not null and new.d1 >= '2010-01-01' then

    if new.d1 < date(new.c1) then

    select t1 into v_t1 from test2 where s1 = new.s1;

    if new.d1 < v_t1 and new.c1 > concat(v_t1, ' 15:00:00') then

    set new.isvalid = 0;

    end if;

    end if;

    end if;

    END

    //

    创建两个表

    create database if not exists ENOTICE;

    CREATE TABLE ENOTICE.VIO_USERINFO(

    ID INT AUTO_INCREMENT NOT NULLcomment '自动编号',

    DLM VARCHAR(20) NOT NULL UNIQUEcomment '登录名',

    DLMM VARCHAR(20) NOT NULLcomment '密码',

    PRIMARY KEY (ID)

    )ENGINE=INNODB DEFAULT CHARSET=GBK;

    create database if not exists supersms;

    create table supersms.sms_user(

    id int not null auto_increment comment '自动编号',

    login_name varchar(200) not null UNIQUE comment '登录名',

    password varchar(200) comment '密码',

    primary key(`id`)

    )ENGINE=InnoDB DEFAULT CHARSET=gbk;

    创建触发器

    /*同步插入触发器*/

    DROP TRIGGER IF EXISTS ENOTICE.tg_sync_insert;

    DELIMITER |

    CREATE TRIGGER ENOTICE.tg_sync_insert

    AFTER INSERT

    ON ENOTICE.VIO_USERINFO

    FOR EACH ROW

    BEGIN

    INSERT INTO supersms.sms_user(login_name,password) values (NEW.DLM,NEW.DLMM) ;

    END;

    |

    DELIMITER ;

    /*同步删除触发器*/

    DROP TRIGGER IF EXISTS ENOTICE.tg_sync_delete;

    DELIMITER |

    CREATE TRIGGER ENOTICE.tg_sync_delete

    AFTER DELETE

    ON ENOTICE.VIO_USERINFO

    FOR EACH ROW

    BEGIN

    DELETE FROM supersms.sms_user WHERE login_name=OLD.DLM;

    END;

    |

    DELIMITER ;

    /*同步更新触发器*/

    DROP TRIGGER IF EXISTS ENOTICE.tg_sync_update;

    DELIMITER |

    CREATE TRIGGER ENOTICE.tg_sync_update

    AFTER UPDATE

    ON ENOTICE.VIO_USERINFO

    FOR EACH ROW

    BEGIN

    UPDATE supersms.sms_user SET login_name=NEW.DLM,password=NEW.DLMM WHERE login_name=OLD.DLM;

    END;

    |

    DELIMITER ;

    插入测试

    mysql> select * from supersms.sms_user;

    Empty set (0.00 sec)

    mysql> select * from vio_userinfo;

    Empty set (0.00 sec)

    mysql> insert into vio_userinfo(DLM,DLMM,SITEID,YHLX) values

    -> ('a','a',2,'1'),

    -> ('b','b',3,'1');

    Query OK, 2 rows affected (0.02 sec)

    Records: 2  Duplicates: 0  Warnings: 0

    mysql> select * from supersms.sms_user;

    +----+------------+----------+

    | id | login_name | password |

    +----+------------+----------+

    |  9 | a          | a        |

    | 10 | b          | b        |

    +----+------------+----------+

    2 rows in set (0.00 sec)

    mysql> select * from vio_userinfo;

    +----+-----+------+

    | ID | DLM | DLMM |

    +----+-----+------+

    | 14 | a   | a    |

    | 15 | b   | b    |

    +----+-----+------+

    2 rows in set (0.00 sec)

    更新测试

    mysql> update vio_userinfo set dlm='c' where dlm='a';

    Query OK, 1 row affected (0.03 sec)

    Rows matched: 1  Changed: 1  Warnings: 0

    mysql> select * from supersms.sms_user;

    +----+------------+----------+

    | id | login_name | password |

    +----+------------+----------+

    |  9 | c          | a        |

    | 10 | b          | b        |

    +----+------------+----------+

    2 rows in set (0.00 sec)

    mysql> select * from vio_userinfo;

    +----+-----+------+

    | ID | DLM | DLMM |

    +----+-----+------+

    | 14 | c   | a    |

    | 15 | b   | b    |

    +----+-----+------+

    2 rows in set (0.00 sec)

    删除测试

    mysql> delete from vio_userinfo where id=15;

    Query OK, 1 row affected (0.02 sec)

    mysql> select * from supersms.sms_user;

    +----+------------+----------+

    | id | login_name | password |

    +----+------------+----------+

    |  9 | c          | a        |

    +----+------------+----------+

    1 row in set (0.00 sec)

    mysql> select * from vio_userinfo;

    +----+-----+------+

    | ID | DLM | DLMM |

    +----+-----+------+

    | 14 | c   | a    |

    +----+-----+------+

    1 row in set (0.00 sec)

    展开全文
  • 2.2 更新test1 的user_tb 时,同步更新test2 user_tb -- -新建update触发器 trigger DELIMITER $ create trigger tr_update after update on user_tb for each row begin update test2.user_tb set name= new.name,...

    1)准备

    分别创建数据库test1 test2  以及user_tb 表并初始化一些测试数据

    create database test1;

    create table  test1.user_tb(

    uuid  varchar(32) primary key  not null ,

    name  varchar(11) ,

    password varchar(32)

    );

    create database test2;

    create table  test2.user_tb(

    uuid  varchar(32) primary key  not null ,

    name  varchar(11) ,

    password varchar(32)

    );

    2)现在test1 test2 有了结构相同的两张表

    2.1  向test1 插入数据时,同步到test2

    -- --新建插入触发器 insert_tg

    use test1;

    DELIMITER $

    create trigger tr_insert

    after insert on user_tb

    for each row

    begin

    INSERT INTO test2.user_tb(uuid,name,password) VALUES(new.uuid,new.name,new.password);

    end$

    DELIMITER ;

    2.2 更新test1 的user_tb 时,同步更新test2 user_tb

    -- -新建update触发器 trigger

    DELIMITER $

    create trigger tr_update

    after update on user_tb

    for each row

    begin

    update  test2.user_tb set name= new.name,password=new.password where uuid=new.uuid;

    end$

    DELIMITER ;

    2.3 删除

    -- 新建删除的触发器 tr_delete

    DELIMITER $

    create trigger tr_delete

    after delete on user_tb

    for each row

    begin

    delete from  test2.user_tb  where uuid=old.uuid;

    end$

    DELIMITER ;

    2.4 删除触发器

    drop trigger insert_tg$;

    最后附上mysql  触发器的通用格式

    DELIMITER $

    create trigger trigger_name

    after /before  insert/update/delete  on DB1.tableName

    for each row   #这句话在mysql是固定的

    begin

    sql 语句(可以使用IF ELSE END IF来控制逻辑)

    end$

    DELIMITER ;

    展开全文
  • 这篇文章主要介绍了MySQL触发器运用于迁移和同步数据的实例教程,分别是SQL Server数据迁移至MySQL以及同步备份数据表记录的两个例子,需要的朋友可以参考下1.迁移数据进行数据库移植,SQL Server=>MySQL。SQL ...
  • 了解TTL集成基本触发器与RS同步触发器的电路组成特点及其工作原理并绘制出对应波形图。
  • 了解TTL集成基本触发器与RS同步触发器的电路组成特点及其工作原理并绘制出对应波形图。
  • Statement-basedWith statement-based replication, triggers executed on the master also execute on the slave.statement-based的binlog模式下主库执行的dml语句触发了trigger并不会有新的对应trigger的DML语句在...
  • DELIMITER $$ USE `first`$$ DROP TRIGGER /*!50032 IF EXISTS */ `ziduan`$$ CREATE  /*!50017 DEFINER = 'root'@'localhost' */  TRIGGER `ziduan` AFTER INSERT ON `miss` ... FOR EACH ROW B
  • 一个表底下2个字段的同步触发器怎么写? A表的两个字段,每次新增内容,字段user都会有输入内容,字段name_a是空白没有内容输入,现在需要name_a同步字段user,触发器这么写。 [img=...
  • create database Bgouse Bgocreate table man(a int, b int, c int, d int)go--create database Agouse Agocreate table man(a int, b int, c int)create trigger tr_man_delete on manfor deleteas delete tmpB
  • synchronous(同步时钟) 时钟上升沿到来后,会产生的 FSMs:有限状态机 在同步时钟中一般用状态机来进行控制 ——structural view(FFs separate from combinational logic) ——behavioral view(synthesis of ...
  • By:沉沦mysql5.5 对触发器,函数,存储引擎,事件进行主从复制情况.一、MySQL主从复制有三种模式.1.binlog_format = row : 日志中会记录成每一行数据被修改的形式(记录页面),然后在 slave 端再对相同的数据进行修改。2...
  • 数字电子技术和模拟电子技术中的 时序电路触发器 基本RS触发器 同步RS触发器 主从RS触发器 JK触发器 主从D触发器 总结
  • 同步D触发器时序原理

    2020-10-18 14:45:54
    为了避免同步RS触发器的输入信号同时为1,可以在S和R之间接一个“非门”,信号只从S端输入,并将S端改称为数据输入端D,如图15-8所示。这种单输入的触发器称为同步D触发器,也称D锁存器。
  • 同步触发器

    千次阅读 2008-10-04 21:54:00
    触发器综述之三 同步触发器 同步触发器的功能是根据对表的操作,去同步更改另一个表,这类触发器是应用最多的,也是经常出问题的。《保持两表数据一致的触发器事例》 是之前贴的一个例子,说明了这类触发器...
  • 文章目录B 同步(电平)触发器B.a 同步 RS触发器B.b 同步 D触发器B.c 同步 JK触发器B.d 同步 T和T’触发器B.e 同步(电平)触发器特点 总结 B 同步(电平)触发器 ...同步触发器又称为“钟控触发器”,即时钟控 制的
  • 触发器

    千次阅读 2011-07-21 11:05:44
    触发器按电路结构不同:可分为基本RS触发器,同步触发器,主从触发器,维持阻塞触发器,边沿触发器按控制方式不同可分为:RS触发器,T触发器,D触发器,JK触发器基本触发器,应具有下述特点:⑴有两个稳定状态和两个互补的输出...
  • 同步RS触发器实验电路multisim源文件,multisim10及以上版本可以正常打开仿真,是教材上的电路,可以直接仿真,方便大家学习。
  • 触发器同步

    2016-09-06 16:21:22
    --如要创建触发器  create   trigger   t_test  on   test  for   insert , update , delete   as   --加上下面两句,否则会提示新事务不能登记到指定事务处理器 set   ...
  • sqlserver同步机制——触发器同步 --注册远程服务器 exec sp_addlinkedserver '别名','','SQLOLEDB','服务器名或者IP' exec sp_addlinkedsrvlogin '别名','fals...
  • 主从触发器:由两个同步触发器级联而成,分别为主触发器和从触发器。特点是,两个同步触发器工作在CP的不同时段,因此,输入状态的变化不会直接影响主从触发器的输出。但是主从JK触发器存在一次翻转现象。触发器...
  • VHDL实现同步D触发器

    千次阅读 2019-12-30 22:00:36
    异步D触发器 library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity shiyan is port (d,clk,rst:instd_logic; q: out std_logic); end shiyan; architecture Behavioral of shiyan is begin process (rst,clk) begin ...
  • 【赵强老师】利用数据库触发器实现数据的同步 触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件...
  • 触发器_触发器第二弹

    2021-01-12 11:05:05
    触发器第二弹触发器04.08 果不其然我又来喽!嘿嘿嘿(这次还带着丑陋的排版和背景emmmmm...数电课程主要涉及了基本RS触发器、同步触发器、主从型触发器以及边沿触发器四种类型,每种类型有分不同地小类型,比较难分析...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,948
精华内容 1,179
关键字:

同步触发器