問題タブ [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.

0 投票する
1 に答える
796 参照

c++ - C++/SystemC: C++ で配列から特定の範囲の値を返す

これが私が試していることです。関数に構造体を渡しました。関数では、構造体の値を配列に格納します。戻るときに、特定の基準に基づいて配列で定義されている値のみを送信したいと考えています。たとえば、10 の配列定義があるとします。関数で、基準に基づいてその配列から 5 つの値のみを返したいとします。サンプルコードは次のとおりです。

0 投票する
2 に答える
181 参照

semaphore - SystemCのセマフォチャネルのこのコードの説明を手伝ってください

最近、systemc を勉強していて、セマフォ チャネルについて質問があります。

asic world ( http://www.asic-world.com/systemc/channels3.html )で例を見つけましたが、少し混乱しています。

この例の最初の 1ns で、最初のプロセス bus_semaphore() が機能し、「@1 ns ....」という 2 行を出力できます。同時に、セマフォの値 (bus) が 2 に変化し (bus.post())、次のクロック ポーズエッジを待ちます。

2 番目のプロセスである do_read() も 1ns で、最初の "@" 行は正常に出力できますが、次の if ステートメントの trywait() はどうでしょうか。最初のプロセスと 2 番目のプロセスは同時に実行する必要があります。 2番目のプロセスの行が印刷されます。

しかし、ページの下部に示されている答えは、bus.post() が実行された後に trywait() が実行され、2 番目の "@..." ステートメントが出力されることを意味します。bus.post() の実行後に trywait() が実行されることを確認するにはどうすればよいですか?

前もって感謝します!

0 投票する
2 に答える
2128 参照

python - Jinja2 ASCII から文字列へ

Jinja2 テンプレートに次の行がありました。

ここで、types は、テンプレートの他の場所で使用される C++ のさまざまなタイプのリストであり、出力は、モジュール シグナルを初期化する SystemC プログラムの一部です。目標は、小文字の a から始まる文字を使用して、次のような出力を取得することです。

ただし、「サポートされていないオペランド型の +: 'int' および 'str'」というエラーが発生していたため、テンプレートを次のように変更してみました。

しかし、出力はこれでした

問題は、Jinja2 テンプレート内で整数から対応する ASCII 文字に変換する方法がないことです。「chr()」を試しましたが、これは Python 関数であり、Jinja2 の関数ではなく、機能しません。これを経験したことがあり、私を助けてくれる人がいるかどうか疑問に思っていましたか?

0 投票する
0 に答える
229 参照

c++ - Mac OS X で SystemC を使用した場合の Nirgam ランタイム エラー

MacBook (Mac OS X 10.10) でオープン ソースの SystemC ベースの NoC シミュレーターであるnirgam 3.0を実行しています。nirgam ソース コードを正常にコンパイルしましたが、実行しようとすると、次のように「セグメンテーション エラー」がスローされます。

エラーを見つけるために使用しようとしlldbましたが、次のヒントが得られました。

次の事実がヒントになります。

  1. システム環境で記述した Noxim やその他のコードを含む他の SystemC ベースをコンパイルして実行できます。

  2. sc_mainlldb 情報は、SystemC ベースのモデリングの主要な機能であるに行くときにエラーが発生したことを示しています。

私の質問は:

  1. 関数EXC_BAD_ACCESSを呼び出すとはどういう意味ですか?sc_main

  2. このバグの原因に近づくために使用できる方法はありますか?

0 投票する
1 に答える
164 参照

c++ - systemC エラー: コンストラクター "BlackBox のインスタンスがありません...など

SystemC でモジュールを作成しようとしていますが、このエラーに悩まされています。

エラー:

コンストラクター "BlackBox::BlackBox with[R=1, expR =3, C=5, expC=-6, T=1, expT=-1]" のインスタンスが引数リストと一致しません

どこに問題があるのか​​わからない。次のコード行が原因のようです。

dut0 = new BlackBox<1,3, 5,-6, 1,-4> ("DUT0");//エラー

誰でもこの問題で私を助けることができますか? とても感謝しています。

私のコードは次のとおりです。




0 投票する
1 に答える
3945 参照

c++ - エラー C4716: 'operator<<': 値を返す必要があります

この演算子の適切な戻り値を取得するのに苦労しています (これは私のコードではなく、修正しようとしているだけであり、C++ で修正するほど上手ではありません) 誰でもこれを手伝ってくれますか? それはデータ型クラスですデジタル回路の高レベル設計用に定義されています。

tempエラーなしでこれを返す方法、これに対する特別なアプローチはありますか?

そこに追加すると、return os;

そこにあるsystemCライブラリとインスタンスを指す226エラーが発生しました。systemCクラスに関してストリーム演算子の宣言を行った人はいますか、またはそれがどのように行われたか知っていますか?

0 投票する
1 に答える
114 参照

systemc - Accellera SystemC 実装は to_long() を正しく実装していませんか?

次の SystemC コードを検討してください。

これは、予想どおり 6 ではなく -2 を出力します。そうする明らかな理由は、to_long() がビットベクトル 0b110 を符号付きとして解釈することです。ただし、IEEE Std 1666-2011では、セクション 7.2.9 で to_long() などの整数変換関数について言及しています。

何か誤解しているのでしょうか、それとも Accellera の SystemC 実装がこの点で標準に準拠していないのでしょうか?

0 投票する
2 に答える
131 参照

c++ - 参照を返すクラス メソッド C++/SystemC

<<ユーザー定義のデータ型を SystemC チャネル テンプレートに渡すには、これらのデータ型を、さまざまな種類の演算子も実装するクラスとして定義する必要があり=ます==

sc_fifo次のように定義する必要があります。

これを正しく行うには、route_tデータ型を次の例のように記述する必要があります。

  1. SystemC がそのような実装を必要とするのはなぜですか?
  2. operator=オブジェクト自体への参照を返す必要があるのはなぜですか? 内部メンバーを更新するだけです。
  3. struct必要な演算子を実装する内部メソッドを使用して、代わりにデータ型を a として定義できますか?
  4. なぜinlineこの文脈で使われるのですか?
  5. メソッドの宣言で期待されるように、返すことはオブジェクトへの参照を返すこととどのよう*thisに同等でしょうか?