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.