Kontūrų analizė naudojant SystemC

Kontūrų analizė naudojant SystemC

„SystemC“ yra dar viena puiki priemonė aparatūros modeliavimui. Jis apima visas C ++ funkcijas, naudojamas visame pasaulyje, ir C ++ klasės biblioteką, specialiai suprojektuotą sistemos projektavimui. „SystemC“ turi nemokamą „open source“ programą ir ją galite sukompiliuoti į labai efektyvų vykdomąjį dvejetainį kodą su nemokamu „Visual Studio“ bendruomenės „C ++“ kompilatoriumi. „SystemC“ sistemoje galite modeliuoti aparatūrą didesniu abstrakcijos lygiu nei kituose HDL, taigi, kai kurioms labai sudėtingoms aparatūroms, pvz., Mikrokontroleriams, modeliuoti yra lengviau ir efektyviau naudoti nei kiti HDL, pvz., VHDL arba Verilog.

„V11“ ir vėlesnėse „TINA“ versijose taip pat galite kurti ir naudoti komponentus, modeliuojamus „SystemC“ tiek TINA, tiek „TINACloud“. Toliau pateikiami reikalavimai naudoti SystemC su TINA.


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

Filtrų charakteristikas ir C kodą suprojektuoja nemokamas įrankis
http://t-filter.engineerjs.com/

Sukurtas C kodas buvo įrašytas į fir.cpp failą.

Vykdyti analizę / Furjė analizę / Furjė spektrą…
Paspauskite mygtuką diagramos lange. Pasirodys pašto apdorojimo procesas. Dabar atkreipkite perdavimo funkciją.

Paspauskite daugiau mygtukas. Tipas Išėjimas (-ai) / įvestis (-ai) eilutėje Redaguoti. Naujos funkcijos pavadinime įveskite H. Paspauskite kurti. Paspauskite OK. Pasirinkti Peržiūrėti / atskiras kreives.
Rezultatas yra toks

Svarbiausia „SystemC“ makro dalis:

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.