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
建模步骤
建模步骤
用mast语言编写一个template,其实就是一个saber和外部程序的接口。可以用记事本编写,保存成*.sin文件。采用c语言描述模型的行为特征,包括模型的端口及内部逻辑,该步骤建立了模型的源文件,后缀为.c的文件;采用编译指令对c源文件进行编译,生成动态链接库文件,后缀为.dll。该步骤之前需要安装c编译器,如vs2019等;在saber中新建一个symbol,跟上面的template建立连接,仿真的时候用的就是这个symbol,保存成*.ai_sym文件,对模型进行保存使用,也可以将模型添加到模型库中。上述步骤的关键是动态链接库文件的生成,动态链接库文件是生成saber模型的基础,是从c文件到saber模型的桥梁。
02
具体操作:加法器add案例
1.mast语言编写template
声明该template 类型:element,电气型,并定义管脚名称声明管脚类型:electrical,并用逗号分隔花括号进入程序内容foreign为外部程序引入val定义全局变量var定义局部变量values定义vi1,vi2的值vosum定义add和equation为固定的方程格式电流i 从sum流向gnd ,每个模型对节点电流的作用应该是使其增加相应值,+=是赋值符号固定格式,表示i1的值由随后的关系式确定。*.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语言程序,依照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文件***
确保你可以从命令行访问c编译器。编译器的版本位数需要和使用的saber版本位数一致,使用的saberrd64-t-2022.03版本,所以对应使用64位的编译器。
在命令提示符处键入编译命令“cd”,紧接输入*.c文件所在的文件夹路径进入文件夹之后键入>cl /ld 文件名称.c程序会自动进行编译生成*.dll文件
将输出一个名为add.dll 的文件,位于当前目录中
4.生成模型
将adder文件夹的所有文件复制到电路模型design的根目录下在saber中新建一个symbol,跟步骤一的template建立连接,仿真的时候用的就是这个symbol,保存成*.ai_sym文件,对模型进行保存、使用,也可以将模型添加到模型库中
5.仿真及结果
将模型加载到design进行电路仿真测试
设置k为2.0
仿真可得与预想一致结果
人工智能技术给企业带来新机遇!
怎么构成FBAR呢?FBAR构成的滤波器是什么样的呢?
美国步步紧逼 中国半导体业崛起难在哪里?
松下ALPHA阿尔法洗衣机 让精致外观与精致生活更近一步
PM2.5传感器在汽车空气净化器中的作用是怎样的
SaberRD调用外部C程序仿真步骤
腾讯新款叮当带屏音箱发布上市后 原先听听产品的正常销售与服务不变
超级电容器是什么,它的优点都有哪些
运营商利用智慧灯杆建设5G微站还需要解决哪些难题
2021年的苹果AirPods是什么样的?
接触器粘连的原因及解决方法
CAN的实现原理是什么?说一下CAN总线的特点有哪些?
oppor11什么时候上市?oppor11最新消息:oppo联合高通都为oppor11定制了什么:旗舰传感器+低功耗成像
微差压传感器的工作原理
夏日阳光晒起来也太狠毒了!如何做好防晒?
索尼PS VR头显截止今年7月底已经累计售出300万台
如何设置Live Gamer Portable
苹果致歉降速门最新消息_苹果道歉原因揭秘_苹果歉降速门内容汇总
长兴蓄电池企业进军新能源领域
校园一卡通系统的应用及安全防护