使用SystemC分析电路

使用SystemC分析电路

SystemC是另一个用于建模硬件的强大工具。 它包括C ++的所有功能,在世界各地使用,以及专为系统设计而设计的C ++类库。 SystemC有一个开源的免费实现,您可以使用Microsoft的免费Visual Studio Community C ++编译器将其编译为非常有效的可执行二进制代码。 在SystemC中,您可以在比其他HDL更高的抽象级别对硬件进行建模,因此,对于一些非常复杂的硬件(例如微控制器)的建模,它比其他HDL(如VHDL或Verilog)更容易和更有效。

在v11和更高版本的TINA中,您还可以在TINA和TINACloud中创建和使用在SystemC中建模的组件。 以下是使用SystemC和TINA的要求。


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

滤波器特性和C代码由免费工具设计
http://t-filter.engineerjs.com/

生成的C代码放在fir.cpp文件中。

运行分析/傅立叶分析/傅里叶谱...
图表窗口中的按钮。 后处理器将出现。 现在绘制传递函数。

更多 按钮。 类型 输出(S)/输入(S) 在行编辑中。 在新函数名称中键入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.