對(duì)于Cadence中電路仿真,我們一般使用的信號(hào)源都是直接使用analogLib庫(kù)里提供的一些正弦、指數(shù)、方波等信號(hào),不過(guò)有時(shí)我們仿真一個(gè)電路往往是前面系統(tǒng)已經(jīng)處理過(guò)的信號(hào),不是簡(jiǎn)單的信號(hào)形式了(可能是半高斯波形什么的),這個(gè)時(shí)候可以通過(guò)Matlab生成波形文件,導(dǎo)入到Cadence中進(jìn)行仿真。為方便起見(jiàn),下面以正弦信號(hào)為例,即通過(guò)Matlab生成正弦信號(hào)波形文件,然后將這個(gè)文件導(dǎo)入到Cadence中進(jìn)行仿真。
首先,使用外部波形文件必須用到Cadence自帶analogLib庫(kù)里的vsource這個(gè)源做為波形文件的載體,見(jiàn)下圖:

接下來(lái),得確定Cadence能識(shí)別的波形文件格式,一般是dat格式的文件,文件中數(shù)據(jù)分為兩列:第一列為時(shí)間,第二列也就是第一列時(shí)間點(diǎn)上對(duì)應(yīng)波形值,以下是一個(gè)用Matlab生成正弦波波形文件的例子,主要用到Matlab中的fopen,fprintf和fclose這3個(gè)函數(shù):
t=0:1e-9:2e-6; % 時(shí)間范圍0->2us,步長(zhǎng)1ns
y=sin((1e6)*pi*t); % 生成頻率為1MHz的正弦波信號(hào)
m=[t;y]; % 寫(xiě)入一個(gè)2列n(時(shí)間點(diǎn)數(shù),此例中為2001個(gè))行的矩陣中
fid=fopen('input.dat','wt'); % 新建一個(gè)input.dat文件,對(duì)它進(jìn)行寫(xiě)操作
fprintf(fid,'%.9f %.8f\n',m); % 將矩陣m中的數(shù)據(jù)寫(xiě)入文件中
fclose(fid); % 關(guān)閉文件
現(xiàn)在就可以實(shí)驗(yàn)下了,假設(shè)生成的波形文件在/home/heli這個(gè)目錄下,那么我們回到cadence中導(dǎo)入該波形文件,其中設(shè)置詳見(jiàn)下圖:

- 注意圖中的標(biāo)號(hào):
1.Source Type選擇pwl;
2.WaveForm Entry Method 選擇File;
3.Delay Time可以設(shè)置波形延遲的時(shí)間(不設(shè)默認(rèn)沒(méi)有延遲);
4.DC offset設(shè)置直流偏置量(不設(shè)默認(rèn)偏壓為0);
5.Amplitude scale factor設(shè)置乘以幅值的系數(shù)(不設(shè)默認(rèn)為1)。
設(shè)置完成后就可以仿真了,大家看下仿真波形吧:

原文地址:《使用Matlab生成波形文件在Cadence中仿真》 作者:蘇祖博涅