- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单文本(TXT格式)的读取
范例:
读取如下txt文件数据并进行图形显示:
注意:头三行为注释,共5列数据,每列针对一个VGS,每列的每个数据对应不同的VDS。VGS从0.9V变化到3.3V,步进为600mV,共5个点;VDS从0,变化到15.3V,步进为150mV,共103个点。
显然,如上有两个扫描变量。一个是VDS是主变量,一个是VGS是次变量。
于是,在ICCAP中设置步骤如下:
新建一个DUT。
在Measure/Simulate中,设置Input,如上分析有两个变量,设置如下图,这步设置是为了程序编程和POLT显示做准备的。
VD的Sweep Order设为1,即主参数;VG的Sweep Order设为2,即次参数。
程序编写:
先新建一个程序文件,如图:
点击右边的Browse,会跳出如图的对话框,选PEL-Program即可。
确定则为如下:
Execute是程序的执行按钮,而View则可看程序返回值。
代码如下:
UPDATE_EXPLICIT
! this PEL program reads data from a mdif formatted file
! with the columns
LINPUT enter path of file you want,mdiffile,mdiffile
LINPUT enter headline,head_line,head_line
path2setup=/read_mdif/mdif__3/read
sweep1 = USERC_num_of_points(1,path2setup)
sweep2 = USERC_num_of_points(2,path2setup)
!This is to define the correct data size for this Setup,
!for later copy2paste Therefore, update the data size
ICCAP_FUNC(VD,Redisplay)
COMPLEX tmp_ids[sweep1 * sweep2]
r_stream = USERC_open(VAL$(mdiffile),r)
!skip the header lines
i=0
WHILE i head_line ! replace by the number of lines to skip
dummy = USERC_readstr(r_stream,0,%*[^\n]%*1[\n],string)
i = i + 1
END WHILE
ICCAP_FUNC(/,Status Window) ! brings status window to top level
i = 0
WHILE i sweep1
k = 0
WHILE k sweep2
tmp_ids[sweep1*k+i] = USERC_readnum(r_stream, 0, %lf)
PRINT reading line ;sweep1*k+i;, i.e. ids = ;tmp_ids[sweep1*k+i]
k = k + 1
END WHILE
i = i + 1
END WHILE
dummy = USERC_close(r_stream)
!avoid unnecessary data behind this transform
RETURN tmp_ids
语句说明:
1 LINPUT enter path of file you want,mdiffile,mdiffile
此语句是跳出对话框,要求需要加载数据的文件路径,把输入的路径值赋给mdiffile,而前一个mdiffile会记录这个路径,把它变为默认值,下次输入则不再需要重新输入路径了。
2 path2setup=/read_mdif/mdif__3/read
此语句是把工程路径赋给path2setup,为了便于后面sweep1,sweep2的取值。这个路径来源于上图的标题栏红线标注的值。
3 sweep1 = USERC_num_of_points(1,path2setup)
此语句将工程的Sweep Order为1的Input 的步长赋给sweep1,这里也就是VD。
4 r_stream = USERC_open(VAL$(mdiffile),r)
此语句是打开mdiffile所指文件,并将文件的id赋给r_stream,以代表这一文件。这里的r,是指用只读方式打开,下面的例子还会设计到以写的方式打开。
5 WHILE i head_line ! replace by the
文档评论(0)