問題タブ [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.
c++ - g++4.5.2 でコンパイルするとクラスへの参照があいまいになる
ここで少し助けが必要です: g++ 4.1 を使用してコードをビルドした場合、「クラスへの参照があいまいです」に関するエラーはありませんでした。g++4.5.2 を使用して同じコードをコンパイルする場合にのみ発生します。コード フラグメントは次のとおりです。
名前空間の構文が確かに有効であるため、なぜこれが起こるのか本当にわかりません。そのメッセージを取り除くための修正があり、これは "using tlm_utils::simple_initiator_socket;" の代わりです。「tlm_utils::simple_initiator_socket initiator_socket;」と入力するだけです。上記のクラスの本体で。ただし、唯一の変更点がコンパイラのバージョンであることを考えると、上記のコードが機能しない理由はわかりません。
c++ - C++で多次元連想配列を実装するには?
一部の SystemVerilog を SystemC/C++ に移植していますが、多次元連想配列で問題が発生しています。SV でのこの配列の宣言を検討してください。
1-D 連想配列ではマップを使用でき、2-D 配列ではネストされたマップを使用できることを知っています。同様のアプローチで多次元配列を解決できると思いますが、非常に面倒です。
だから私の質問は、
mda[x][y][z]
(1) という形式の操作が SV コードと同じ期待値を返すという意味で、上記は正しいですか?
(2)より良い、よりクリーンな方法はありますか?
systemc - 実行時に SystemC モジュールを動的にロードする
私のシミュレータ フレームワークでは、HW/SW モジュールは SystemC で実装され、ビルド済みです。シミュレートするプラットフォームを XML で記述します。シミュレータ コアは XML を解析し、使用されるモジュールと対応するライブラリ ファイル (Windows の dll など) を判断し、実行時にこれらのモジュールを動的にロードします。しかし、動的にモジュールをロードする SystemC のサンプル コードは見つかりませんでした。
SystemCでこれを行うにはどうすればよいですか?
system-verilog - 「run()」タイプの関数と SystemC を使用した SystemVerilog fork/join
メモリ コントローラーの SystemVerilog モデルを SystemC に移植しようとしてrun()
いますが、fork と join で生成された型の関数 (つまり、連続処理を行う永久ループ) を SystemC に変換する最良の方法は何か疑問に思っています。これらのrun()
関数は通常、シミュレーションの開始時に生成されます。私の混乱は、SystemC がスポーン スレッド、フォーク、ジョインをサポートしていることですが、この言語の意図はSC_THREAD
この種の機能を提供することだと思います。コメントするのに十分な両方の言語の経験がある人はいますか?
注:この質問は、技術的に正しいか間違っているかという解決策よりも、慣例に関係していると思います。おそらく、複数の方法で実行できます。
system-verilog - SystemVerilogスタイルのクロック分割とSystemCへの駆動の移植
System VerilogモデルをSystemCに移植していますが、このフェーズロックループクロック駆動方式をモデル化するための最良の方法がわかりません。SVで時計を駆動することは、SystemCがカーネルにそれを実行する方法を提供する、少し手動のプロセスであるように私には思えます。しかし、私が見ているSVモデルで手動で行われる種類のクロック分割をSystemCがどのようにサポートしているかはわかりません。
この簡略化されたSystemVerilogモデルについて考えてみます。
次に、テストベンチで:
つまり、私のSystemCに相当するテストベンチは基本的に次のようになります。
しかし今、私は基準クロックから駆動する内部クロックを適切にモデル化する方法に少し固執しています。SVコードのような手動のアプローチを試みることはできると思いますが、それはSystemCの方法とは思えません。私が持っていたもう1つのアイデアはsc_main
、例のPLLスタイルではなく、からすべてのクロックを直接駆動することですが、それが機能するかどうかを確実に言う経験はありません。SystemCでこのようなことをするための規則はありますか?
systemc - SystemC のモジュールにイベント トリガーを送信する
私がやりたいことは、あるモジュールから別のモジュールに av イベントを送信するような感じです (ボタンを押すなど)。しかし、私が検索したところ、AV イベント トリガー/通知を送信する標準的な方法が見つからなかったため、別の方法で行う必要があるようです。
私の単純なモデルは、1 つのジェネレーターと 1 つのコントローラーの 2 つのモジュールで構成されています。ジェネレーターがコントローラーの内部ブール値を true に設定できるようにしたい (センサーに登録があったことを示す)。コントローラーには、前回以降に登録があった場合に動作するスレッドがあり、ブール値を false にリセットします (5 秒間の待機中にさらに多くのセンサー登録を効果的に無視して破棄します)。
Generator から Controller に信号を送信するにはどうすればよいですか?
c++ - SystemC でシグナルが有効かどうかを確認する最良の方法は何ですか?
SystemC シミュレーションで少し問題が発生しています。これは、1 つのコンポーネントでシグナル インテグリティをチェックするのを忘れたため、シミュレーションが中断したためです。"XXXXX..."
基本的に、シグナルがや"ZZZZ..."
!のような状況は処理しません。
シグナルが有効であることを確認する方法は? "ZZZZ..."
ではなく、ではなく"XXXX..."
、次のような有効なものを意味し"000110..."
ますか? ありがとうございました
少し詳細
誰かが指摘したように、ここでは信号が数値であるかどうかを確認することについて尋ねているのかもしれません。わかりました、シグナルが有効である場合、それはもちろん数値であるとしましょう。しかし、いくつかのデバッグセッションで、"XXX..."
シグナルが一般的に -1 または負の数のように扱われることがあることを経験しました...そのため、シグナルが数値であるかどうかを確認する方法については質問しませんでした...
c - SystemC での OpenCV
私はいくつかのアプリケーションで OpenCV と SystemC の両方を使用しており、非常に満足しています。
現在、SystemC シミュレーション環境で OpenCV を使用して画像を表示する必要があるこのアプリケーションがあります。ただし、何らかの理由で、両方のパッケージは「実行時」に互換性がないようです。
- 呼び出す前に SystemC のクラスを呼び出し
cvNamedWindow
たり、呼び出したりしても問題ありません。cvShowImage
sc_start()
- ただし、
cvNamedWindow
またはcvShowImage
が で呼び出されるとsc_thread
、プログラムの実行は中止されます。スレッド 1: EXC_BAD_ACCESS (コード = 2、アドレス = 0x7c91ad70)。
フレームのクエリ ( cvQueryFrame
) には問題はありません。ウィンドウ関連の関数だけが問題を引き起こすようです。誰かがこの問題の原因を考えており、この問題の解決策または回避策があれば、それは素晴らしいことです.
PS Xcode を使用していますが、コーディング環境に問題はないと思います。
systemc - sc_signalでstd::stringを使用する場合、sc_traceを呼び出すための一致する関数がありません
systemcを使用してシミュレーションを行っていますが、次のようなエラーメッセージが表示されました。
g ++ -I / opt / Xilinx-14.2 / Vivado_HLS / 2012.2 / Linux_x86_64 / tools / systemc / include / -o testBench.exe testBench.cc -L / opt / Xilinx-14.2 / Vivado_HLS / 2012.2 / Linux_x86_64 / tools / systemc / lib -lsystemc -lm /opt/Xilinx-14.2/Vivado_HLS/2012.2/Linux_x86_64/tools/systemc/include/sysc/communication/sc_signal_ports.h:メンバー関数内void sc_core :: sc_in :: end_of_elaboration()[with T = std: :basic_string、std :: allocator>]:testBench.cc:126:ここからインスタンス化
/opt/Xilinx-14.2/Vivado_HLS/2012.2/Linux_x86_64/tools/systemc/include/sysc/communication/sc_signal_ports.h:285:エラー:sc_trace(sc_core :: sc_trace_file *&、const std :: basic_string、std :: allocator>&、std :: string&)
このエラーが何であるか、そしてそれを修正する方法について何か考えがありますか?