電子書籍の厳選無料作品が豊富!

いつもお世話になっております。
どなたかおわかりになる方教えて下さい。

verilogで9個(3×3)の8bit/個データを昇順か降順で並び替えて真ん中の5番目を抽出したいと考えています。
やっかいなのは、一度使用したの3×3の値の内6個は次回のソートで使用して、また5番目を抽出したいと考えていることです。
※下記がイメージ図です。
●●●  ○●●  ◎○●
●●●→○●●→◎○●→ ・・・
●●●  ○●●  ◎○●

●:旧データ
○:新データ
◎:次の新データ

このようなフィルターになるのですがどの様にしたらよいか教えて下さい。
9個の1回ソートなら出来るんですが、6個を再利用し、かつこの処理がSTOPをかけるまで延々と続くとなると出来ませんでした。

おわかりになる方、よろしくお願い致します。

以上

A 回答 (2件)

Verilogはまったくわかりませんので、考え方のみですが・・・



>9個の1回ソートなら出来るんですが、6個を再利用し~
ソートをした後、再利用の6個をもとに戻せないという意味でしょうか?
それなら、単純にソート前に、次回使用する6個の値を一時的に保存しておき、ソートで値を抽出後に、元に戻せば(シフトして戻すのかも)よいだけでは?

あるいは9個程度のデータなら、ソートせずに、最大値(または最小値)を探して、5番目のデータを選んでもそれほど時間は変わらないかも・・・
(これだと、ソートしないので並べ替えをしないで済みます。若干効率が悪いかも。)

ご質問の意味を外していましたら、すいません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
確かに「次回使用する6個の値を一時的に保存しておき、ソートで値を抽出後に、元に戻す」がいけそうな感じがしてきました。きっちり保存しておけばいけそうな感じがします。
ありがとうございました。

お礼日時:2008/12/16 15:13

最初の9個のレジスタの埋め方が問題ですが新データを取り込む際に同タイミングでreg11 = reg21てな感じでシフトしてははだめ

ですか?最初に9個埋めるのに3回かかってしまいますが・・・新データを3個しか取り込まないなら行けますよね?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
基本的にJYUZAさんの説明された通りシフトの感じです。
verilog記述でソートをするならどの様に記述するのか?
データを再利用する場合は?と悩んでいました。
ソートは地道に順序よく2値比較でやり、6個の再利用はキチンと保管(保存)しておき取り出して再利用かなと考えています。
年明け早々に、本回路設計で事前調査していました。
ありがとうございました。

お礼日時:2008/12/16 15:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!