Анализ цепей с использованием SystemC

Анализ цепей с использованием SystemC

SystemC - еще один отличный инструмент для моделирования оборудования. Он включает в себя все функции C ++, используемые во всем мире, и библиотеку классов C ++, специально разработанную для проектирования систем. SystemC имеет бесплатную реализацию с открытым исходным кодом, и вы можете скомпилировать ее в очень эффективный исполняемый двоичный код с помощью также бесплатного компилятора Visual Studio Community C ++ от Microsoft. В SystemC вы можете моделировать оборудование на более высоком уровне абстракции, чем в других HDL, и поэтому для моделирования некоторых очень сложных аппаратных средств, например микроконтроллеров, его проще и эффективнее использовать, чем другие HDL, такие как VHDL или Verilog.

В v11 и более поздних версиях TINA вы также можете создавать и использовать компоненты, смоделированные в SystemC, как в TINA, так и в TINACloud. Ниже приведены требования для использования SystemC с 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.