2011-05-19 1 views
2

Je construis un modèle qui me demande de trouver le maximum d'un ensemble de 8 signaux, également trouver l'indice de la valeur maximale.Comment obtenir le maximum d'un nombre dans Simulink?

Comment puis-je construire un tel modèle dans Simulink (bibliothèque Xilinx)?

Je devine le bloc de comparaison suivi d'un bloc de compteur. Mais de toute façon, je ne suis pas capable de comprendre toutes les choses ensemble.

Merci

+1

Si vous avez la boîte à outils Signal Processing Blockset installé, il y a minimum/blocs maximum dans la bibliothèque statistique qui génère l'index de la signaler avec la valeur min/max. – Praetorian

+0

Salut, je ne peux pas utiliser les blocs Simulink comme les blocs Maximum/Minimum puisque j'utilise uniquement la bibliothèque Xilinx. Le modèle sera finalement mis en USRP2 donc je ne peux pas utiliser de blocs Simulink pour mon modèle. – Kiran

Répondre

2

Une façon qui obtient tout fait en parallèle:

Vous devez construire un arbre de comparateurs et multiplexeurs:

  • Commencez avec un bloc qui prend deux valeurs et deux indices et sort l'indice et la valeur de la plus grande. Un comparateur, 2 muxes par bloc.
  • Au premier niveau de votre arbre, vous avez 4 de ces blocs d'alimentation en
    • un second niveau de 2 de ces blocs, dont les résultats alimentent
      • un bloc final qui produit vos réponses

Cela peut être pour que vous puissiez pipeliné verser des données à travers aussi vite que vous le souhaitez. Mais ça va utiliser une bonne quantité de ressources. Quelle est la largeur de vos signaux? Chaque comparateur est de 1 LUT4 par bit et un mux de 2: 1 est de 1 LUT4 par bit.

Vous pouvez également utiliser un compteur pour sélectionner successivement chacune de vos valeurs. Si elle est plus grande que la plus grande, placez la valeur dans votre "plus grand" registre et verrouillez le compteur dans un registre "plus grand index". Réinitialiser le "plus grand" registre à la plus petite valeur chaque fois que votre compteur réinitialise.

Cela prendra autant de cycles d'horloge que vous avez le signal (8 dans votre cas)

+0

Je vais essayer l'approche 2 de votre réponse, j'espère que je vais réussir. Merci pour le soutien continu. – Kiran

Questions connexes