许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  仿真软件:Matlab生成波形文件并导入Cadence作为输入信号全攻略

仿真软件:Matlab生成波形文件并导入Cadence作为输入信号全攻略

阅读数 4
点赞 0
article_banner

最近要在电路中仿真不同大小的“Clock jitter”和“随机比特序列 ”对系统输出信号的影响。但是,当作者浏览完analogLib中的各种source后,也没有发现令人满意的产生上述信号的方式。因此作者研究了如何用Matlab 代码生成所需的波形文件,并将其导入Cadence中作为输入信号。整个操作非常简单,各种细节列在此处,供大家参考。

1. 操作流程

  1. 打开anlaogLib-->选择vsource --> Source Type选择pwl;
  2. 输入波形文件File Name;
  3. 输入Time scale factor;
  4. 输入Amplitude scale factor;
图1. 操作界面

2. 功能说明

  1. 图1中的Time scale factor将波形文件单位时间1映射成给定时间,比如0.5n;
  2. 图1中的Ampltude scale factor将波形文件单位幅度1映射成给定幅度,比如1.2V;
  3. 作者尝试改变period和transistion time发现对波形并没有明显影响;
  4. anlaogLib里还有一个pwlf也可以实现相同功能。但是作者尝试后发现并不能产生所需波形;
  5. 每次更新完波形文件 \small \color{red} {\text{都需要在原理中Check and Save}},否则会输出旧波形;

3. 操作演示

3.1 随机比特序列

下面以随机比特序列为例进行演示。作者用如下Matlab代码产生随机的比特序列,并输出成波形文件pwlTest.p。

t = 1:1:100;
y = round(rand(1,100));
a = [t' y'];
save -ascii pwlTest.p a

在图1中的Filename一栏中填入pwlTest.p,并运行瞬态仿真,得到图2所示的波形。其瞬态波形的最小间隔为0.5ns,幅度为1.2V,与【功能说明】中的设置吻合。

图2. 瞬态仿真波形

在逻辑翻转时, 相邻比特之间本应存在rise-transition fall-transition 的过渡。但这种情况并没有出现,而是进行了幅度的插值这是我们所不希望看到的。于是,作者写了一个简单的Matlab小程序来自动引入rise/fall transition。其中tr为rise/fall time,这取0.1。

[t, y] = data_generation(t,y,0.1)
 
function [t,dout]=data_generation(tin,din,tr)
dout = [];
t    = [];

for i = 1 :length(tin)-1
t = [t, tin(i)+tr/2, tin(i+1)-tr/2];
dout = [dout, din(i), din(i)];
end

dout = [dout,din(length(tin))];
t = [t, tin(length(tin))+tr/2];
end

通过该程序对bit序列进行处理,我们就能得到所期望的波形,如图3所示。

图3. 处理后的瞬态仿真波形

3.2 Clock jitter

下面用同样的方式产生clock jitter,jitter的rms为20ps,即0.5ns的4/100。(感谢

的指正)

t_clk = 0:1:10;
v_clk = mod(t_clk,2);
%% jitter added
t_clk = t_clk + wgn(1,length(t_clk),-34);
%% add transition
[t_clk, v_clk] = data_generation(t_clk, v_clk,0.1);
%% export file
a = [t_clk' v_clk'];
save -ascii pwlTest.p a

仿真结果如下:

图4. 包含jitter的clock信号


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空