問題タブ [ghdl]
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.
windows - Windows の llvm-config が clang++.exe の正しいパラメーターを発行しないのはなぜですか?
私は経験豊富な LLVM ユーザーではありませんが、Windows で Linux LLVM プロジェクトをコンパイルしようとしています。プロジェクトはGHDLです。
Windows 用のすぐに使用できる LLVM インストーラーはバンドルされていないためllvm-config
、LLVM をコンパイルしてソースからクランジする必要がありました。プロジェクトには LLVM 3.5 が必要です。
まず、CMake をダウンロードllvm-3.5.2
しclang-3.5.2
て使用し、Visual Studio 2013 プロジェクトに変換しました。次に、VS2013 を使用してコンパイルしました。
元のメイクファイルはllvm-config
. 結果の文字列は次のように渡されclang++
ます:
PowerShell を使用して呼び出しllvm-config
、結果を変数に格納しています。
結果は次のとおりです。
私はいくつかの問題に気づきました:
- 一部のパスには
/
代わりに\
-IC:\Tools\LLVM-3.5/include
- 一部のスイッチとパラメータは、
-
他のものと一緒に使用されます。/
... -IC:\Tools\LLVM-3.5/include /DWIN32 /D_WINDOWS ...
- 一部のパラメーターは複数のスペース記号で区切られています
... /W3 /MP ...
- clang++.exe は、不明な引数に関するエラーを出力します。
clang++.exe: エラー: 不明な引数: '-wd4146'
clang++.exe: エラー: 不明な引数: '-wd4180'
clang++.exe: エラー: 不明な引数: '-wd4244'
clang++.exe: エラー: 不明な引数: '- wd4267'
clang++.exe: エラー: 不明な引数: '-wd4291'
clang++.exe: エラー: 不明な引数: '-wd4345'
clang++.exe: エラー: 不明な引数: '-wd4351'
clang++.exe: エラー: 不明な引数: '-wd4355'
clang++.exe: エラー: 不明な引数: '-wd4503'
clang++.exe: エラー: 不明な引数: '-wd4624'
clang++.exe: エラー: 不明な引数: '-wd4722'
clang++.exe: エラー: 不明引数: '-wd4800'
clang++.exe: エラー:不明な引数: '-w14062'
clang++.exe: エラー: 不明な引数: '-we4238'
結果が clang++.exe 呼び出しに含まれるようになり、エラーが発生します。
だからここに私の質問があります:
llvm-config
が Windows で誤った結果を出すのはなぜですか?- どうすれば修正できますか?
- これらの
-wd***
スイッチの目的は何ですか?
unit-testing - VHDL デザインの複数のテストベンチの実行
VHDL デザインを作成するときは常に、多くのモジュールを使用する傾向があります。これらのモジュールはそれぞれ 1 つのメイン ファイルに接続され、すべてが合成されます。しかし、これらのモジュールごとに個別のテスト ベンチを作成し、グローバル プロセス用に 1 つのテスト ベンチを作成したいと考えています。これらのテストベンチをすべてリンクして連続して実行し、設計全体を 1 回の実行でテストできるようにできればよいのですが。どうすればこれを行うことができますか? 私はGHDLとアサートを使用するのが好きです。スーパーテストベンチを 1 つ作成することは可能ですか? それとも、それらを反復処理するシェルスクリプトの方が優れていますか?
vhdl - vhdl プログラムが整数をスワップしない
以下の VHDL コードは単純なスワップ プログラムです。a
しかし、入力と を交換していませんb
。コメントでトランスクリプトの値を指定しました。
statement で動作するものがありますが、a<=b
何がそれを割り当てるのを妨げているのかわかりません。
vhdl - 関連するすべてのシグナルが定義されている間、シグナルは未定義にドロップされます
すべての着信ビットを探し、受信したビットの合計が 1 であるかどうかを追跡し、時間が来たら値を参照値と比較する必要があるプロセスを作成しています。プロセスは次のとおりです。
ここで問題が発生します: プロセス感度リストで定義されているすべてのシグナルが定義されていますが、GHDL (シミュレーター) によると、parity_test が true になるたびに値が未定義に変わります:
何が間違っているのでしょうか?
ラップトップに変更したときにエラーが変更されたため、ここにあったものを削除しました。ケーススイッチに関するものです。理由はまだわかりません。parity_bit_in_type は、範囲(0 ~ 3)の汎用 Natural です。必要なステートメント (この場合は 0) を取り出してケースを削除すると、すべてが期待どおりに機能します。WebPack ISE はそれについて不平を言うようには見えないので、GHDL のバグのように感じ始めます。
GHDL のバージョン管理:
同じ動作を示す最小限の例
vhdl - テストベンチでの入力割り当てと出力値 (ghdl および gtkwave)
具体的にいきます。
シミュレーションには Ubuntu 14.04LTS、GHDL コンパイラ、および GTKWave を使用しています。
シンプルな 2 マルチプレクサーをシミュレートするための 2 つのファイルがあります: mux2.vhd と mux2_testbench.vhd
これは、mux2.vhd のコードです。
テストベンチのコード
私がやっていること:
エラーなしで端末経由でコンパイルしています: ghdl -a mux2.vhdおよびghdl -a mux2_testbench.vhd
次に、テストベンチの実行可能ファイルを作成します: ghdl -e mux2_testbench
最後に、gtkwave を使用するために必要な vcd ファイルを作成します 。ghdl -r mux2_testbench --vcd=test.vcd &
シミュレーション: gtkwave test.vcd
このコードには 2 つの問題があります。 1. 信号 e0 と e1 に異なる値を書き込んでいますが、e1 はシミュレーションで何も示しません。常に「0」です。
- 出力信号はシミュレーションで値「U」を示します。これが何を意味するのかさえわからず、Googleで明確なものを見つけることができませんでした。
仲間の皆さん、よろしくお願いします。
vhdl - VHDLで整数を16進数としてstdoutに書き込む方法は?
integer
次を使用して、10進数を標準出力に出力できます。
出力:
ただし、代わりに次のいずれかを出力する方法:
vhdl - actual は静的な名前である必要があります -- portmap のインデックス ベクトル
このエラーは、GHDL が VHDL 2008 をサポートしていないことが原因であると考えています。ff0 D にベクトル din の値を代入すると、27/28 行でエラーが発生します。ポート マップ内からベクトルにインデックスを付ける適切な方法は何ですか?
エラーを回避するために count_temp を作成しましたが、役に立たず、余分な変数を使用したくありません。ありがとう。
エラー: