問題タブ [systemc]
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.
virtual-machine - 仮想マシン内で実行されている SystemC、タイミングの問題、または結果の破損?
仮想マシン内のゲスト OS で SystemC ベースのシミュレーションを実行しても問題ありませんか? シミュレーション時間はこれによって影響を受けますか? SystemC の時間はシミュレートされており、実際にはハードウェア タイマーに関連付けられていないことはわかっています。
また、4 コア (物理マシンには 8 コア) で構成された仮想マシンで SystemC シミュレーションの数十のインスタンスを実行すると、結果に影響しますか?
systemc - より高速なソフトウェア モジュール (仮想プロトタイプ) が必要ですか?
この質問は、ソフトウェア モデリング (Virtual Prototyping) に関するものです。
より高速な仮想プロトタイプが必要な理由がよくわかりません。RTL モジュールと比較して、必要な機能を短時間でシミュレートするモジュールを意味します。
正確なサイクルのソフトウェア モジュールが必要であることは理解できますが、より高速なモジュールは必要ありません。
この方向に光はありますか?ありがとう!
java-native-interface - JNI 呼び出しが SystemC sc_core::sc_start() 呼び出し内で機能しない
SystemC 内で JNI を使用する場合、自分では説明できない非常に奇妙な問題に直面します。
私の使用環境に関するいくつかの情報: 私は現在、openjdk-6 と openjdk-7 がインストールされた 12.04 ubuntu で開発しています。この問題は両方の jdk で再現されます。
この主な方法を持つ:
SystemCWrapper の次の実装:
次のコンソール出力が得られます (Java プログラムは、呼び出された場合に「Hello Java!」のみを出力します)。
SystemC メソッドsc_core::sc_start();
は、各 JNI 呼び出しが Java に「パススルー」されないことを行っているようです。
私はいくつかの調整を試みましたが、現在のスレッドをjvmにアタッチしても何も変わりません(スレッドIDが同じままであることがわかるように)。
助言がありますか?さらに情報が必要な場合はお知らせください。
python - VLAB シミュレーション中に画面にイメージを表示する
VLAB で SystemC シミュレーション デモのスクリプトを作成しています。
デモの実行時に行うことの 1 つとして、画面に画像を表示するにはどうすればよいですか?
ウィンドウを開いて wx を使用して画像を表示しようとしましたが、wxApp を作成する必要があり、デモのスレッドがブロックされました。
編集:
この質問は、「Python で画像を表示するにはどうすればよいですか?」というよくある質問とほとんど同じです。VLAB インタープリターは Python であるためです。ただし、VLAB をサード パーティのライブラリに向ける必要のないソリューションを探しています。
multithreading - SystemC: チャネルとポート値の更新
SystemC プロジェクトに取り組んでいるときに、シグナルとポートについて混乱した考えを持っている可能性があることに気付きました。私はこのようなものを持っているとしましょう:
このモジュールを実行してみましたが、奇妙なことに気付きました (少なくとも、私にとっては奇妙です): 刺激が値 (81) を書き込むとき、wait(SC_ZERO_TIME)
メモリ スレッドがその を見つけたdatain
後enable
、address_enable
値は既に更新されています。これは私が期待していたことです。メモリ スレッドで別のサイクルを実行し、値をメモリ セルポートにenable_es
コピーするために、スティミュラスが値を変更するときにも同じことが起こります。私が理解していないのは、メモリモジュールがそのポートに書き込み、while ループの最初のステートメントに戻った後、スティミュラスモジュールがまだ古い値を持っている理由です。data_cell
dataout
dataout
wait()
dataout_s
チャネル (0) であり、メモリ モジュールによってコピーされたばかりの新しい値 (81) ではありません。次に、メモリ ループの別のサイクルを実行すると (たとえば、スティミュラス チャネルの値を変更するなど)、最終的にデータ出力チャネルが更新されます。
つまり、スティミュラス チャネルに書き込みを行ってからメモリ スレッドに切り替えると、メモリは更新された値を検出するように見えます。しかし、メモリ スレッドがそのポートに書き込みを行った後でスティミュラス スレッドに切り替えた場合、スレッドはそのチャネル (メモリ ポートにバインドされている) で古い値を引き続き認識します。
c++ - さまざまなプロセスで Boost 単体テストを実行する
SystemC プログラムで単体テストを実行したいと考えています。アイデアは、各スイートに複数のテストを含む複数のテスト スイートを用意することです。テストごとに SystemC フレームワークをリセットする必要があります (たとえば、 を呼び出すことによってsc_simcontext::reset()
) が、明らかにすぐには修正されないバグがあるため、実際には不可能です。したがって、私は回避策を考え出すことにしました。
各テストを異なるプロセスで実行すると、すべてが正常に機能することがわかりました。次のコード スニペットは、私がそれを機能させるために使用したスキームの概要を示しています。
次に、Boost Unit Test を使用してそのようなテスト スキームを実装したいと思います。
unit_test_main
Boost Unit Test ライブラリの内部を調べていると、すべてのテストの実行をトリガーする関数のように見えることがわかりました。しかし、各テストを別のプロセスで実行するために、Boost Unit Test と対話する非侵入型の方法を考案できませんでした。
各テストを異なるプロセスで実行するための簡単なソリューションを知っている人はいますか?
macos - ターミナル mac OS X で SystemC を使用およびインストールする方法は?
ターミナル mac OS X でSystemCを使用およびインストールする方法は?
論理詩人アプリを試してみたのですが、os x 10.10 を使っているので動きません。
ターミナルでSystemCをコンパイルして実行する方法を知りたいです。
ターミナルで SystemC の詳細を見つけることができませんでした。
ありがとうございました
systemc - SC_THREAD は、機密リストによってトリガーされません
SystemC で単純な NAND モジュールを開発しています。仕様では4nsの遅延が必要なので、SC_THREAD
次のように「待機」ステートメントとを含むプロセスで記述しようとしました。
シミュレートするために、次のように、NAND の刺激を出力する別のモジュールを作成しました。
これら 2 つのモジュールを説明すると、最上位のモジュール (ある場所sc_main
) は次のようになります。
コードはエラーなしでコンパイルおよびシミュレートされ.vcd
ましたが、gtkwave でファイルを視覚化すると、出力 (F) が 1 でスタックし、シミュレーションの最初の遅延のみが表示されます。
コードにエラーがあるかどうかをテストするために、「待機」ステートメントを削除してファイルに変更SC_THREAD
し、再度シミュレートしました。正しい結果が得られましたが、もちろん遅延はありませんでした。SC_METHOD
nand.h
私は何を間違っていますか?