Verilog基础之一、触发器实现

文章介绍了触发器的基础知识,包括作用、信号类型和使用规范,并重点讲解了Vivado综合出的四种D触发器类型。通过示例代码展示了如何在Vivado中实现这些触发器,并讨论了综合结果可能存在的不一致情况及其原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、触发器简介

    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

​    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA芯中的小蚂蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值