移位寄存器与多路复用器

时间:2014-12-17 08:23:58

标签: hardware vhdl verilog fpga

我不确定实施情况。我有一个多路复用器8输入,1输出和3选择信号。其中一个选择信号顺序获取位向量的所有值。现在我可以选择双向。

第一种方法是使用另一个多路复用器,其中输入是位向量,而选择信号是输入的计数器log2。

第二种方法是使用移位寄存器并取向量的LSB位。

FPGA中的面积最佳解决方案是什么?

1 个答案:

答案 0 :(得分:3)

让(假设启动不正确)假设FPGA仅提供普通逻辑元件和触发器,并且位向量为N位并在选择使用位时保持该值,然后两者使用的资源解决方案是:

  • 转换解决方案:
    • 用于移位的N个触发器
    • N 2-1多路复用器用于触发器加载
  • Mux解决方案:
    • (N-1)为更大的N-1多路复用器提供2-1多路复用器
    • 计数器的log2(N)触发器

因此,这会对多路复用器解决方案进行加权,因为由于N位移位寄存器需要初始加载,两者都需要几乎相同数量的2-1多路复用器,但多路复用器解决方案需要更少的触发器。

然而,FPGA很大程度上依赖于通常基于小内存的LUT,另外一个特点是这些小内存通常也可以用作移位寄存器。具有此功能的FPGA允许直接写入LUT存储器,然后进行移位,这可以在没有任何2-1多路复用器的情况下进行加载。因此,在这种情况下,用于班次解决方案的资源是:

  • 使用LUT进行换档解决方案:
    • ?装载和换档的LUT

因此,结论是确定并实现FPGA最佳解决方案的最佳方法是了解并利用特定目标FPGA的功能,然后尝试实现以确保合成工具正确映射设计