weichanghe2000 发表于 2010-12-27 23:25:42

Mathematica 能否调用 hspice ?

本帖最后由 weichanghe2000 于 2010-12-28 23:42 编辑

大家好,Mathematica 能否调用hspice?(也就是在 Mathematica中 运行 hspice软件),有研究过的请指教下。多谢。

guocong89 发表于 2011-1-8 14:15:55

不了解你说的调用是什么意思,如果仅仅是启动的话,那就直接用Run就行了

Run["Notepad"]

weichanghe2000 发表于 2011-1-8 14:49:47

本帖最后由 weichanghe2000 于 2011-1-8 14:55 编辑

谢谢2楼的回复。

是这个意思:
假如我有 1个hspice程序,程序内W和L作为变量,一共有 50组 W和L的不同取值。
第1种方法是:我建立50个hspice程序,每一个程序对应一组W和L。缺点是 :仅仅是W和L的取值不一样而已,要跑50个程序,很费时,而且很容易弄错。所以应该要批处理才行。

第2种方法:想到批处理,我们可能会想到脚本语言,如perl,那么可以编写perl脚本来调用hspice(其本质还是在后台启动了hspice程序,但是优点是不需要人工运行50次程序,perl程序自动调用)。但是学perl语言,学起来感觉很费劲,语法比较多,很灵活,所以只能想到Mathematica。

第3种方法:听别人说,perl能够做到的事情,我们的Mathematica肯定也能够做到,因此,我就想到 Mathematica怎样像perl语言一样,在 Mathematica里面怎样编写程序,怎样后台启动hspice软件,批处理仿真 50组W和L的值。

不知道我说得是否明白,希望2#能够给予帮忙,深表感谢。

guocong89 发表于 2011-1-8 15:55:32

3# weichanghe2000
那就用个循环调用hspice就行了嘛,可以给它指定命令行参数,我不了解hspice,不知道调用hspice的具体命令行参数是怎样的.
如果要给hspice传递参数,感觉这个是没法在mathematica与hspice之间直接通信.一个想法是mathematica把参数保存到文件,把这个文件作为hspice的输入文件进行参数调整.

weichanghe2000 发表于 2011-1-8 16:35:29

本帖最后由 weichanghe2000 于 2011-1-8 17:10 编辑

呵呵,是的,在mathematica与hspice之间直接通信 估计肯定得 用到 mathlink,这又牵涉到一个很大的 学问。呵呵,难上加难哦。搞不定哒。

smarten 发表于 2011-1-9 05:22:37

如果hspice需要输入一些参数,例如W和L,你可以把W和L的值写到txt文本(例如a.txt)里面,然后用hspice < a.txt。 你可以用 Mathematica来做循环,把W和L写到文件里面,然后在用Run["hspice < a.txt"]来运行。

我没用过hspice, 你可以需要根据自己的需要写Mathematica的小程序。

HyperGroups 发表于 2011-1-9 22:21:27

我也不懂HSPICE, 如楼上们说的那样通过txt等输入参数或赋值。我不知道HSPICE跑50个程序输入参数是只能在界面里输入还是可以直接在代码里输入。
如果可以在HSPICE的程序代码里输入,那么可以在mathematica里输入这段代码,并分别或用循环把参数的值设为定值然后生成HSPICE程序分别运行。

如果要用什么Link即时通信的话首先要看是否有共同的接口,比如matlab和mathematica都有c相关的api等,

批处理HSPICE我想这个应该问熟悉HSPICE的人,别人也会遇到这种问题的吧,说不定这种软件本身就能实现这种功能或有什么辅助软件,如你说的Perl,而且你也并没有细说Perl是如何实现的,如果有Perl如何实现的算法,才能对比mathematica看是否也能实现。

weichanghe2000 发表于 2011-1-9 23:24:55

HSPICE的程序里面可以手动写 50个W和L作为输入。

在 mathematica里输入 50W和L 的 HSPICE 代码, 这个没问题,因为跟输入文本一样,但是关键问题是 Mathematica 怎么运行 hspice 程序(软件不一样,语法格式也不一样)?

我之所以想在 Mathematica 里面 运行hspice,原因是 因为hspcie 生成的 参数 太多,而且很乱,有很多冗余的文字,而我只想要我感兴趣的参数。

所以我想到用 Mathematica 从hspice生成的文件中来挑选出我感兴趣的参数,并排成 有序的格式(见我的另外一个帖子 http://forum.simwe.com/thread-964954-1-1.html),输入到excel,这样看起来 一目了然。

HyperGroups 发表于 2011-1-10 00:16:37

不小心重复了

本帖最后由 HyperGroups 于 2011-1-10 00:20 编辑

睡觉。。。

HyperGroups 发表于 2011-1-10 00:17:18

8# weichanghe2000

不是太清楚。
mathematica自己肯定不能编译运行hspice代码
是在mathematica里处理输入输出hspice代码,然后在hspice软件或编译环境里编译生成比如.exe文件输出结果,然后如果结果有许多无关的东西再用mathematica处理结果。
mathematica的作用只是生成50个赋值了的源代码,而分别手动编译50次,生成了50个.exe文件,则可以用mathematica运行,而不用一个一个运行了,这也是可以的。只是也许你的50个源文件程序运行后也许就直接有50个输出结果了并没有.exe文件。

我这里拿c语言作对比
mathematica应该不能编译调用hspice来编译生成可执行文件或直接输出结果,因为这个要看官方的支持,比如最新版的c的编译器的支持才是8.0版里才加进去的

如果是c语言的话,就可以在mathematica里调用vs2010或其他c编译器来直接生成上面所说的.exe文件,并批量运行等。
页: [1]
查看完整版本: Mathematica 能否调用 hspice ?