問題タブ [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.
event-driven - SystemCの別のモジュールの複数のインスタンスとの間でイベント/通知を送受信するようにコントローラーモジュールをセットアップする方法は?
SystemC で書かれた 2 つのモジュールがあります。1 つ目は「ワーカー」、もう 1 つは「ボス」と呼ばれます。sc_main では、乱数のワーカーを動的に生成します。私は、ボスモジュールが動作を開始/終了したことをそれぞれに通知したいと考えています。同時に、ボスモジュールがそれぞれに何かをするための通知を送信するようにします。
この複数のセットアップを行う最善の方法は何ですか? 明らかに、グローバルな sc_event 変数を共有することは、現時点では機能しますが、最適なアプローチではありません。
ワーカー/ボスごとに外部割り込みを設定する必要がありますか?
すべてのワーカー (ランダムに生成された数に関係なく) が、イベントを見逃すことなく、しっかりとしたシンプルなセットアップを使用して上司と通信できるようにする方法はありますか? 上司が選択した従業員にイベントを個別に送信する方法。
マスタースレーブライブラリがあると読みました。これはトリックを行いますか、どこで見つけることができますか?
ありがとう
fpga - システム C - 一度に 1 ビットずつデータ バスを読み取る
2 つの 10x10 配列を取り、それらに対して行列乗算を実行して 10x1 出力を生成する、System C で記述された単純なブロックがあります。私が抱えている問題は、これらの 10x10 配列が実際には「double」として格納されているため、このブロックに入るデータが非常に大きく、使用している FPGA ボードのスペース使用率が目的に対して大きすぎることです。
1 クロック サイクルで 2 つの 10x10 ダブル アレイをプッシュしないように、10x10 アレイのクロック サイクルごとに 1 ビットをシリアルに読み込むにはどうすればよいですか?
このデータを送信するようにテストベンチを設定するにはどうすればよいですか?
現在、私のモジュールには次のものがあります。
私のテストベンチは次のように実行されます。
これら 2 つのコード スニペットは、行列の乗算の前にデータを設定するためだけのものです。現在のコードは、input_0 をすべて 9 を保持する 10x10 マトリックス、つまりテストベンチの double for ループの最後の値として生成します。各行が {0 1 2 3 4 5 6 7 8 9} である 10x10 配列が必要です。
ありがとう。
c++ - SystemC HLS 合成エラー
@E [SYNCHK-77] トップ関数 'method_coupling' (src/method_coupling.cpp:82) には出力がありません。考えられる原因は次のとおりです。(1) 出力パラメーターが値で渡されます。(2) 意図した出力 (パラメーターまたはグローバル変数) が書き込まれることはありません。(3) 無限ループがある。
vivado HLS を使用して SystemC ブロックを合成しようとすると、上記のエラー メッセージが表示されます。残念ながら、このエラーに関するドキュメントは見つかりません。誰かが何が起こっているのか説明してくれることを願っています。
私のモジュールは次のとおりです。
fifo (具体的には 2 つの 10x10 double 配列) にデータを読み込んでから、イネーブル信号を使用して行列乗算演算を開始します。10x10 の配列が乗算されたら、最後に完了シグナルを発生させます。
無限の while ループがあることをエラーがどのように示しているかを完全に確認できるため、while true ループの代わりに while(flag == 0) を使用しています。