每个SLICE中有8个触发器。这个8个触发器可分为两大类:4个只能配置为边沿敏感的D触发器(Flip-Flop)和4个即可配置为边沿敏感的D触发器又可配置为电平敏感的锁存器(Flop&Latch)。当后者被用作锁存器的时候,前者将无法使用。
当这8个触发器都用作D触发器时,他们的控制端口包括使能端CE、置位/复位端口S/R和时钟端口CLK是对应共享的,也就是就是说共用的。{CE,S/R,CLK}称为触发器的控制集。显然,在具体的设计中,控制集种类越少越好,这样可以提高触发器的利用率。那么怎样减少控制集种类呢?我的理解是:
减少时钟种类,即频率越少越好;
统一规范的设计逻辑,如复位。
S/R端口可配置为同步/异步置位或同步/异步复位,且高有效,因此可形成4种D触发器,如下表所示。
原语(Primitive) 功能描述 原语(Primitive) 功能描述FDCE 同步使能,异步复位 FDRE 同步使能,同步复位
FDPE 同步使能,异步置位 FDSE 同步使能,同步置位
在我们的常规设计中,FDCE和FDPE占了绝大多数。
说到高有效,让我想起了一个大家习以为常,但很少深究的问题:为什么一开始接触FPGA的时候,都告诉我们低电平复位?后来查了一些资料,有说从功耗、噪声可靠性方面考虑等等,但是偶然看到Xilinx和Altera两家芯片的触发器不一样!如下图所示,Xilinx的触发器是高电平复位,而Altera的触发器时低电平复位。所以这也是需要考虑的一点吗?
参考文献:《7 Series FPGAs Configurable Logic Block》(UG474)
《VIVADO从此开始》——高亚军著(强烈推荐此书!!!!本博客论述部分大多来自高老师的书)