問題タブ [modelsim]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
io - 特別なバイナリ形式を使用せずに VHDL/modelsim でバイナリ データを読み取る方法
背景:
イーサネット MAC 用の VHDL テスト ベンチを作成しています。テストベンチは、パッケージと結合されたエンティティ + アーキテクチャ ファイルで構成されます。テストベンチが MAC に送信するイーサネット フレームを、wireshark からエクスポートしたバイナリ ファイルから読み取りたいと考えています。
私は VHDL 2008 で書いており、Mentor Graphics Model Technology ModelSim ALTERA vcom 10.0d Compiler を使用しています。
問題:
私がこれまでに見つけた VHDL/modelsim でバイナリ データを読み取るためのすべてのソリューションは、bit_vector の 1 ビットがファイル内の複数のビットで表される特別なファイル形式を使用します。VHDL でバイナリ ファイルを 8 ビットの bit_vectors に読み込むようにしたいと考えています。
これまでに得た最も近いものは、8 ビット ASCII 文字をバイナリ表現で直接書き込むことができる文字型ファイルを使用することでした。
simulation - VHDL/ModelSim-エンティティが見つかりませんでした
VHDLファイルをシミュレートしようとしていますが、次のエラーが発生しています。
シミュレーションを試みる前に、QuartusIIとModelSimコンパイラの両方でコードを正常にコンパイルしました。コードにlab1エンティティとアーキテクチャが含まれているため(Quartus ProjectNavigatorの[DesignUnits]タブでも確認できます)、このエラーはよくわかりません。誰もがこれを引き起こしているのを知っていますか?
simulation - ModelSim - ボタン押下のシミュレーション
4 つのプッシュ ボタンを入力として使用し、3 つの 7 セグメント LED ディスプレイを出力として使用したいと考えています。2 つのプッシュ ボタンで、16 の RAM ロケーションを上下に移動する必要があります。他の 2 つは、現在表示されているメモリ位置の内容をインクリメントおよびデクリメントする必要があります。ボタンを押して、ModelSim テスト ベンチを使用してデザインをシミュレートしようとしています。これが私のコードの関連部分であると私が信じているものです:
問題は、テスト ベンチで「キー」(ボタン) を初期化しても、ModelSim がオブジェクトを「UUUU」としてリストすることです。別のファイルにある私のテストベンチのコードは次のとおりです。
誰が何が悪いのか知っていますか?
vhdl - ModelSim-ボタンの押下をシミュレートできません
4つの押しボタンを入力として使用し、3つの7セグメントLEDディスプレイを出力として使用したいと思います。2つのプッシュボタンは、16のRAMロケーションを上下に移動する必要があります。他の2つは、現在表示されているメモリ位置の内容をインクリメントおよびデクリメントする必要があります。私は次の2つのエンティティを持っています:
と
また、次のテストベンチがあり、KEYを介して押されているボタンをシミュレートしようとしています。
私のテストベンチのセットアップは次のようになります。
シミュレートするために、上記の3つのファイルすべてをコンパイルしてから、DE2_TOP_TESTをシミュレートしますが、以下のように「KEY」がまだ定義されていないという結果になります(ただし、CLOCK_50は設定したデフォルト値を取得します)。
誰もがこれを引き起こしているのを知っていますか?
vhdl - 複数のシグナルで VHDL 待機
a と b の両方が同時に値を変更するとどうなるでしょうか。たとえば、2ns です。
プロセスは 2 回トリガーされますか?
その場合、a、b にどの値を使用する必要がありますか、a イベントのプロセスを通過する場合、b 信号はその時点で変更されますか、それともプロセスが b に対して再度実行されるときに変更されますか?
また、ステートメント c <= a および b は 1ns 後です。はプロセス外ですが、アフターはどのように機能しますか? after がなければ、ただの AND 単位であり、遅延はありません。
vhdl - VHDLでunsignedに対して論理演算を実行できませんか?
で論理演算を実行する際に問題がありますunsigned
:
ここにエラーがあります:
プレフィックス演算子「not」の実行可能なエントリはありません
s_1,a,b,s_2,s_3,s_4
すべてタイプunsigned(31 downto 0)
です。
unsignedで実行できない場合にstd_logic_vector
論理演算を有効にするために、unsignedに変換するコードを見つけましたが、このコードを使用すると、unsignedのデータ型と競合し、不明になったと思います。std_logic_vector
numeric_std.all
std_logic_arith
符号なしで論理演算を実行する方法がわからず、に変換する方法もわかりませstd_logic_vector
んunsigned
。誰かが私を助けることができますか?
file - ModelSimでメモリダンプを取得する(定期的)
ModelSimで定期的にメモリダンプを取得するにはどうすればよいですか?
メモリデータをエクスポートする方法を知っています。1000 nsごとまたはxサイクルごとにメモリデータをエクスポートするコマンドを.doファイルに書き込む方法はありますか?
アップデート:
答えてくれてありがとう。私が今それをしている方法:
これは、以前にrun -allを使用したことがあり、シミュレーションがいつ停止するかわからない場合です。もちろん、VHDLテストケースには次のようなものが必要です。
シミュレーションを終了します(より良い方法については、以下の回答を参照してくださいが、これは機能します)
シミュレーションの実行時間がわかっている場合は、次の方法を使用することもできます。
「10ns実行」を置き換えることができます
または、シミュレーションの終了を示す信号を使用することもできます
およびdoファイル内:
modelsim - modelsimでIPアドレス基数を作成することは可能ですか?
とにかく、ウェーブウィンドウにIPアドレスワードを10進数のドット形式で表示させる方法はありますか?
vhdl - パッケージ内とアーキテクチャ内で同名のコンポーネントが2つ存在する場合、どちらが優先されますか?
VHDL テスト ファイル a.vhd があります。
猫 a.vhd
そのため、modelsim を実行すると、オーバーライドされたコンポーネントの警告/エラーは発生しませんでした。パッケージで宣言された同じ名前のコンポーネントよりも、アーキテクチャで宣言されているコンポーネントを常に優先しますか。LRMがそれについて何を言っているのか誰か教えてもらえますか? これを説明してください。