对于Cadence中电路仿真,我们一般使用的信号源都是直接使用analogLib库里提供的一些正弦、指数、方波等信号,不过有时我们仿真一个电路往往是前面系统已经处理过的信号,不是简单的信号形式了(可能是半高斯波形什么的),这个时候可以通过Matlab生成波形文件,导入到Cadence中进行仿真。为方便起见,下面以正弦信号为例,即通过Matlab生成正弦信号波形文件,然后将这个文件导入到Cadence中进行仿真。
首先,使用外部波形文件必须用到Cadence自带analogLib库里的vsource这个源做为波形文件的载体,见下图:
vsource接下来,得确定Cadence能识别的波形文件格式,一般是dat格式的文件,文件中数据分为两列:第一列为时间,第二列也就是第一列时间点上对应波形值,以下是一个用Matlab生成正弦波波形文件的例子,主要用到Matlab中的fopen,fprintf和fclose这3个函数:
t=0:1e-9:2e-6; % 时间范围0->2us,步长1ns
y=sin((1e6)*pi*t); % 生成频率为1MHz的正弦波信号
m=[t;y]; % 写入一个2列n(时间点数,此例中为2001个)行的矩阵中
fid=fopen('input.dat','wt'); % 新建一个input.dat文件,对它进行写操作
fprintf(fid,'%.9f %.8f\n',m); % 将矩阵m中的数据写入文件中
fclose(fid); % 关闭文件
现在就可以实验下了,假设生成的波形文件在/home/heli这个目录下,那么我们回到cadence中导入该波形文件,其中设置详见下图:
vsource2- 注意图中的标号:
1.Source Type选择pwl;
2.WaveForm Entry Method 选择File;
3.Delay Time可以设置波形延迟的时间(不设默认没有延迟);
4.DC offset设置直流偏置量(不设默认偏压为0);
5.Amplitude scale factor设置乘以幅值的系数(不设默认为1)。
设置完成后就可以仿真了,大家看下仿真波形吧:
vsource3原文地址:《使用Matlab生成波形文件在Cadence中仿真》 作者:苏祖博涅
网友评论