Analysera kretsar med SystemC

Analysera kretsar med SystemC

SystemC är ett annat bra verktyg för modellering av hårdvara. Den innehåller alla funktioner i C ++, som används över hela världen, och ett C ++ klassbibliotek speciellt utformat för systemdesign. SystemC har en öppen källkodsfri implementering och du kan kompilera den till en mycket effektiv körbar binär kod med den gratis Microsoft Visual Studio Community C ++-kompilatorn. I SystemC kan du modellera hårdvara på en högre abstraktionsnivå än i andra HDL och för att modellera en del mycket komplexa hårdvaror, t.ex. mikrokontroller, är det lättare och mer effektivt att använda än andra HDL-apparater som VHDL eller Verilog.

I v11 och senare versioner av TINA kan du även skapa och använda komponenter modellerade i SystemC både i TINA och TINACloud. Följande är kraven för att använda SystemC med TINA.


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

Filteregenskaperna och C-koden är utformade av det fria verktyget vid
http://t-filter.engineerjs.com/

Den genererade C-koden placerades i fir.cpp-filen.

Kör analys / Fourier Analys / Fourier Spectrum ...
Tryck knappen i diagramfönstret. Postprocessorn kommer att visas. Dra nu överföringsfunktionen.

Tryck Mer knapp. Typ Utgång (ar) / ingång (ar) i raden Redigera. Skriv H i det nya funktionsnamnet. Tryck Skapa. Tryck OK. Välj Visa / separata kurvor.
Resultatet är följande

Den viktigaste delen av SystemC-makro:

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.