如何在Simulink中获得最大数字?

时间:2011-05-19 09:59:07

标签: fpga simulink xilinx

我正在构建一个模型,要求我找到一组8个信号的最大值,同时找到最大值的索引。

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

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

由于

1 个答案:

答案 0 :(得分:2)

让这一切并行完成的一种方式:

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

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

这可以通过流水线操作,因此您可以根据需要快速地将数据流入其中。但它会使用相当数量的资源。你的信号有多宽?每个比较器每位1 LUT4,2:1多路复用器每位1 LUT4。

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

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