2

我正在构建一个模型,它需要我找到一组 8 个信号中的最大值,还要找到最大值的索引。

如何在 Simulink(Xilinx 库)中构建这样的模型?

我猜是比较块后跟一个计数器块。但不知何故,我无法将所有事情都放在一起。

谢谢

4

1 回答 1

2

一种并行完成所有工作的方法:

您需要构建一个比较器和多路复用器树:

  • 从一个接收两个值和两个索引的块开始,并传递索引和较大的值。一个比较器,每块 2 个多路复用器。
  • 在你的树的第一层,你有 4 个这样的块进入
    • 这些块中的 2 个的第二级,其结果输入
      • 最后一个块产生你的答案

这可以流水线化,因此您可以随心所欲地通过它倾倒数据。但它会使用相当数量的资源。你的信号有多宽?每个比较器每位 1 个 LUT4,2:1 多路复用器每位 1 个 LUT4。

或者,您可以使用计数器依次选择每个值。如果它大于当前最大值,则将该值锁存到“最大”寄存器中,并将计数器锁存到“最大索引”寄存器中。每次计数器重置时,将“最大”寄存器重置为最小值。

这将花费与信号一样多的时钟周期(在您的情况下为 8 个)

于 2011-05-19T12:45:35.370 回答