SystemCを使用した回路解析

SystemCを使用した回路解析

SystemCは、ハードウェアをモデリングするためのもう1つの優れたツールです。 世界中で使用されているC ++のすべての機能と、システム設計用に特別に設計されたC ++クラスライブラリが含まれています。 SystemCにはオープンソースの無料実装があり、無料のMicrosoftのVisual Studio Community C ++コンパイラを使って非常に効率的な実行可能バイナリコードにコンパイルできます。 SystemCでは、他のHDLよりも高い抽象化レベルでハードウェアをモデル化できます。そのため、マイクロコントローラなどの非常に複雑なハードウェアをモデル化する場合は、VHDLやVerilogなどの他のHDLよりも使いやすく効率的です。

TINAのv11以降のバージョンでは、System Cでモデル化されたコンポーネントをTINAとTINACloudの両方で作成して使用することもできます。 以下は、System CをTINAと共に使用するための要件です。


Low-pass filter example
Open the ExamplesSystemCsc lpf.TSC example.

フィルタの特性とCコードは以下の無料ツールで設計されています。
http://t-filter.engineerjs.com/

生成されたCコードはfir.cppファイルに配置されました。

ラン解析/フーリエ解析/フーリエスペクトル…
押す ダイアグラムウィンドウのボタンをクリックします。 ポストプロセッサが表示されます。 伝達関数を描きます。

押す もっと ボタン。 タイプ 出力/入力 ライン編集で。 新しい関数名にHと入力します。 押す 作ります。 押す OK。 選択する 曲線の表示/分割.
結果は以下の通りです。

SystemCマクロの最も重要な部分

void fir::proc() 

  double u, y; 
  if (CLK.read() == SC_LOGIC_1) { 
   sc_logic sc_val; 

  // CALC 
  x[0] = SAMPLE; y = 0; 
  for (int k=0; k < M; k++){
    y += b[k]*x[k];
  }

  // SHIFT
  for (int k=M-1; k>=1; k—)
    x[k] = x[k-1];

  // SET VALUE
  RESULT = y;
  n++;
 }


You can find this example in the Examples/Fir folder of the systemc_model.zip.