データをソートするためのVHDLコード

I

icd

Guest
こんにちはみんな、私は4つのデータ値は、8ビットの各々をソートするためのVHDLコードを記述しようとしています。添付ファイルに示されているように私は未知の出力を取得しています。以下に私のコードです。すべてのヘルプは高く評価されています。 [コード]ライブラリのIEEE; IEEE.STD_LOGIC_1164.ALLを使用し、使用IEEE.STD_LOGIC_ARITH.ALL、使用IEEE.STD_LOGIC_UNSIGNED.ALL;エンティティsorting_blockはポート(CLK、RSTです:std_logicで; ram_in_0:'1、IN(0 downto 7); ram_in_1 :'1、(0 downto 7)では、ram_in_2:'1、(0 downto 7)では、ram_in_3:'1、(0 downto 7))で;エンドsorting_block; sorting_blockの行動アーキテクチャは型行列である'1の配列(0から3)である( 7 0 downto);信号mat_temp:マトリックス:=(他人=> "00000000");信号temp_mat:マトリックス:=(他人=> "00000000");信号温度:'1(0 downto 7):=(他人=> '0 '); temp_mat(0)を開始
 
1。 VHDLエンティティはあなたがブラックホールのようなものを設計している場合を除き、出力信号を持っていると予想されています。しかし、シミュレーションでは問題ありません。 2。あなたは明らかにバブルソートアルゴリズムを実装している。しかし、内側のループ2の反復範囲が間違っています。 3。ソート操作に関わるデータは、変数ではなく、信号でなければなりません。そうでなければ、それらは、プロセスが終了した後、一度だけ割り当てられます。ポイント2 + 3を固定することにより、設計、シミュレーションで動作するはずです。定期的なテストベンチ、1でそれを使用する。同様に考慮されるべきである。反復アプローチは、ハードウェア合成に適しているかどうか、それは、別の質問ですね。ループは、ロジック·リソースを大量に消費し、並列ハードウェアに在籍しています。しかし、それは小さな構造のために働くことになっている。大きなデータ構造については、ステート·マシンを使用して、時間内にシーケンスを参照することになります。
 
私は、我々は出力の変数を参照することはできませんので、出力を確認したいので、私は信号を使用していました。私はそれがその値を変更しますので、出力にtemp_matを割り当てるにはどのような方法を見つけることができなかったので、なぜ私は出力を持っていない!
 
私は信号を使用しているので...
残念ながら、それは動作しません。あなたは、必要なVHDL構文またはあなたが考案しようとしている架空の言語について求めている?これは本当の話だと、その変数は、シミュレータのステッピングで視聴することができません。これは、簡単にループ·評価の詳細をトレースできないことを意味します。合成されたハードウェアでは、すべてのループがないでしょう。私は鉛筆と紙が並べ替え操作を確認するための適切な手段であると思います。 PS:
私はそれがその値を変更するため、出力にtemp_matを割り当てるための何らかの方法を見つけることができなかった
と少し違う!。あなたは信号を複数回割り当てているが、それはないではないの処理が終了する前にそれの値を変更します。信号は、最後の割り当てで指定された値を受け取ります。
 

Welcome to EDABoard.com

Sponsor

Back
Top