2014-02-20 65 views
2

基于锁存的fifo(即电平敏感锁存器)在面积上可能比基于FF的FIFO更便宜。我正在寻找基于锁存器的FIFO设计代码或架构。到目前为止,我没有遇到任何问题。可以设计一个吗?我正在寻找一些文件或想法来开始...是否有可能设计基于锁存器的FIFO而不是FF?

回答

2

您可以使用pulse latches,它保留advantages of both latches and flip-flops,提供更高的性能和更低的功耗,但它们通常不会被常用CAD工具“完全”支持。

或者,您可以将触发器转换为两个电平敏感的master/slave latches。触发器可以通过两个反相锁存器来实现。这通常是为了使时间借用,并不一定导致更小/更快的电路。这样,您的FIFO结构与基于触发器的设计非常相似,只是每个触发器都由两个锁存器取代。

+0

根据他使用的CAD工具的不同,在RTL级使用触发器很可能会转换为布局中的主/从锁存器。所以后者可能不会节省太多的面积。 –

+1

@Zhehao Mao:不确定我是否同意。它取决于你正在使用的std单元库。触发器通常是库中的独立单元。无需CAD工具将它们转换为主/从锁存器。在内部,触发器单元可能包含主/从锁存器,但其布局通常非常优化,并且小于两个独立的独立锁存单元。 – Ari

+0

的确如此,但我的观点是,使用主/从锁存器代替触发器并不能真正满足@ newbie的最终目标,即减少面积(实际上,通过您所说的,实际上可能会增加面积)。 –

1

虽然我没有任何代码方便地显示如何,但可以使用fifos的锁存器。通常情况下,我已经将fifo看作是存储的'sram',并为其周围的fifo逻辑封装。这种结构也可以相对自然地处理不同的读/写时钟。

我不知道确切的启发,但我认为

  • 小的SRAM单元使用触发器来实现。
  • 中等sram单元使用锁存器实现。
  • 大型sram单元使用实际的ram单元来实现。

使用触发器和锁存器之间有一些交叉点,其中锁存器的控制逻辑和路由的额外开销变得值得在实际存储器中保存区域。

相关问题