Verilog基础之一、触发器实现

目录

一、触发器简介

    1.1 触发器作用

    1.2 触发器信号

    1.3 使用规范

    1.4 Vivado综合触发器

二、代码实现

三、综合结果


一、触发器简介

    1.1 触发器作用

    触发器是工程中基础的单元结构也是相当重要的组成,时序电路的实现离不开触发器。触发器是具有存储功能的器件,时钟脉冲的边沿触发状态改变。通常,触发器可分为D触发器,T触发器,JK触发器等。

    1.2 触发器信号

    触发器的输入信号分为两类:数据信号,控制信号,控制信号包括时钟信号,异步或同步置位/复位信号,时钟使能信号。

    1.3 使用规范

    在使用触发器时,根据以往的经验,有一些尽量避免的使用规范,遵循这些规范可以避免很多问题。

    a. 不要使用异步置位/复位寄存器

    b. 触发器中不要同时存在置位和复位信号

    c. 避免单独的置位/复位逻辑,尽量使用全局复位可以在更少的资源下达到想要的效果

    d.时钟使能信号,置位/复位信号使用高电平生效,如果低电平有效,则需要一个反相器,这将会降低电路性能。

    1.4 Vivado综合触发器

    Vivado会根据设计综合出触发器,综合出的触发器有4类D触发器,FDCE,FDPE,FDSE和FDRE。

FDCE:具有时钟使能和异步清零

FDPE:具有时钟使能和异步置位

FDSE:具有时钟使能和同步置位

FDRE:具有时钟使能和同步复位

    在vivado的综合报告中可以查看设计中使用的寄存器数目,但有时会出现统计的数目和实际使用的数目不一致,主要是有以下3个原因的影响

a.有一部分寄存器被吸收进入到DSP块或块状RAM中

b.存在寄存器复制

c.无输入的寄存器或者作用相同的寄存器被移除了

二、代码实现

代码中包含了四个寄存器fdce,fdpe,fdse,fdre,对应vivado所能综合的四种寄存器类型。

module FF(d,ce,clk,clr,set,out  );
input [3:0] d;
input ce;
input clk;
input clr;
input set;
output [3:0] out;
reg fdce,fdpe,fdse,fdre;
always@(posedge clk,posedge clr)
    begin
    if(clr)
        fdce<=0;
    else
        if(ce)
            fdce<=d[0];
     end
assign out[0]=fdce;
 always@(posedge clk,posedge clr)
    begin
    if(clr)
        fdpe<=1;
    else
        if(ce)
            fdpe<=d[1];
     end
assign out[1]=fdpe;
always@(posedge clk)
    begin
    if(set)
        fdse<=1;
    else
        if(ce)
            fdse<=d[2];
     end
assign out[2]=fdse;
 
always@(posedge clk)
    begin
    if(set)
        fdre<=0;
    else
        if(ce)
            fdre<=d[3];
    end
assign out[3]=fdre;       
endmodule

     

三、综合结果

上述代码综合结果如下图,四个触发器的实现类型符合预期,分别为FDCE,FDPE,FDRE,FDSE

​    

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值