电子说
Saber不仅支持MAST语言和VHDL-AMS语言建立模型,也支持C语言建立器件模型,这对熟悉C语言编程的用户带来了很大的方便和实用。采用C语言建立的模型可以像用硬件语言建立的模型一样保存和使用。
使用C编译器,能够将源代码编译为Windows的动态链接库.dll文件或Linux的.so文件。Saber支持最新的C编译器,Windows10平台可支持Microsoft Visual Studio 2019 v16.4.5;Linux平台支持GUN GCC 9.2.0。
01
建模步骤
建模步骤
上述步骤的关键是动态链接库文件的生成,动态链接库文件是生成Saber模型的基础,是从C文件到Saber模型的桥梁。
02
具体操作:加法器ADD案例
1.MAST语言编写template
*.sin 文本:
template ADDER_1 in1 in2 out1 out2 = k
input nu in1,in2
output nu out1,out2
number k=1
{
foreign PWM
val nu a,b
a=PWM(k*in1,in2)
b=PWM(in1,k*in2)
out1=a
out2=b
}
注:文件名称和程序名称一致,否则无法识别;
并将记事本的*.txt格式改为*.sin。
2.外部程序.c文件
*.c 文本:
_declspec(dllexport) void PWM
(in,nin,ifl,nifl,out,nout,ofl,nofl,undef,ier)
double in; / pointer to input parameter */
int nin; / number of input parameter */
int ifl; / not used here */
int nifl; / not used here */
double out; / pointer to output parameter */
int nout; / number of output parameter */
int ofl; / not used here */
int nofl; / not used here */
double undef; / not used here */
int ier; / not used here */
/* End of Saber header information */
{
double in1,in2,out1,out2;
in1=in[0];
in2=in[1];
out1=in1+in2;
out2=in1+in2;
out[0]=out1;
out[1]=out2;
}
注:文件名称和程序名称一致,否则无法识别;
并将记事本的*.txt格式改为*.c。
3.生成.dll文件***
4.生成模型
5.仿真及结果
全部0条评论
快来发表一下你的评论吧 !