Cadence Skill 语法详解(中文)

Cadence Skill 语法详解(中文)
Cadence Skill 语法详解(中文)

常量、变量

常量是它的值等于自身的表达式,如123,”abc”…变量是保存了其它值的表达式,如x=3, x即变量。算术与逻辑操作符

函数名语法对应操作符

Data Access

arrayref a[index] [ ] setarray a[index] = expr

bitfield1 x <> setqbitfield1 x=expr

setqbitfield x=expr

quote 'expr '

getqq g.s .

getq g->s -> putpropqq g.s=expr, g->s=expr putpropq d~>s, d~>s =expr ~>

Unary

preincrement ++s ++ postincrement s++ ++ predecrement --s -- postdecrement s-- -- minus -n -

not !expr !bnot ~x ~

Binary

expt n1 ** n2 ** times n1 * n2 * quotient n1 / n2 / plus n1 + n2 + difference n1 - n2 - leftshift x1 << x2 << rightshift x1 >> x2 >> lessp n1n2 > leqp n1<=n2 <= geqp n1>=n2 >= equal g1 == g2 == nequal g1 != g2 != band x1 & x2 & bnand x1 ~& x2 ~& bxor x1 ^ x2 ^ bxnor x1 ~^ x2 ~^ bor x1 | x2 | bnor x1 ~| x2 ~|

and x1 && x2 &&

or x1 || x2 ||

range g1 : g2 :

setq s = expr =

对于既有函数名又有操作符函数,采用函数名调用和采用操作符调用的效果是一样的。示例lessp(3 1)=>nil 等同于3<1=>nil

预定义算术函数

语法结果

通用函数

add1(n) n + 1

sub1(n) n – 1

abs(n) 绝对值

exp(n) 自然对数的n次方

log(n)

max(n1 n2 ...)

min(n1 n2 ...)

mod(x1 x2) 取模运算

round(n)

sqrt(n)

sxtd(x w) 将x右扩展W个符号位

zxtd(x w) 和上面的功能相同,速度更快

三角函数

sin(n),cos(n),tan(n)

asin(n),acos(n),atan(n)

随机数生成函数

random(x) 产生0~x-1的随机数srandom(x) 初始化随机数生成函数的x

位操作

含义操作符

位与&

位或|

位异或^

左移位>>

右移位<<

取反~

真值、假值

?真值,除了nil以为的值都是真值。

?假值,nil

条件控制函数

if, when, unless, cond

?if

if函数的语法结构

if( condition1 then ;当condition1为真值时执行代码块expA

expA

else

if( condition2 then ;当condition2为真值时执行代码块expB

expB

else

expC

)

);end if

?when

when函数语法结构

when( condition ;当condition为真值时执行代码块expA,否则跳过expA

); end when

?unless

unless语法结构

unless( condition ;当condition为假值时执行代码块expA,否则跳过

expA

); end unless

?cond

cond语法结构

cond (

( condition1 expA... ) ;当condition1为真值时执行代码块expA

( condition2 expB ... ) ;…

( condition3 expC ... ) ;…

( t expN ) ;之前的条件都不满足时默认执行expN ); end cond

[注]:";" 表示注释

循环控制函数

while,for,foreach

?while

while语法结构

while( condition is true ;当condition为真值时反复执行代码块expA,否则结束循环

expA

)

?for

for语法结构

for( i 1 5

println(i)

)

将输出

1

2

3

4

5

?foreach

foreach是简化版的for,上面的例子用foreach写如下alist = …(1 2 3 4 5)

foreach( item alist

println( item )

)

foreach通常用于操作列表,因为它会遍历列表的每一个元素。

选择函数

caseq的用法类似cond,功能也类似。

caseq( var

(condition1 expA)

(condition2 expB)

) ;case语法结构

循环结构中的局部变量

使用关键字prog可以在循环结构中定义局部变量。关于prog的详细介绍请参考函数章节。返回函数

表示返回值的关键字是return。return可以强制一个prog结构立即结束,送出返回值,忽略剩余的循环操作。

示例prog( ( )

for( i 0 10

when( oddp( i )

return( i )

) ; when

) ; for

) ; prog

这个for循环不会运行10次,首次oddp(i)为真值的时候循环就会结束。

正则表达式

在很多的skill应用中都会用到正则表达式,比如在一个字符串数组中查找带有关键字user 的字符串。示例:

lStr = '("hello" "whenuser" "usercome" "ffus er" "ppuserd" "uster");

lRes = nil

foreach( item lStr

if( rexMatchp("user" item) then

lRes = cons( item lRes)

println(item)

)

)

输出:

"whenuser" "usercome" "ppuserd"

lRes =>("ppuserd" "usercome" "whenuser").

这里的关键命令是rexMatchp,函数形式为rexMatchp(t_pattern S_target),这个命令将在第二个参数中查找满足第一个参数(模式)的条件,如果找到返回真值,否则返回假值。

?正则表达式(pattern)的组成字符

语法含义

c 匹配任意非特殊字符

. 匹配任意字符

\ 用在特殊字符前面代表特殊字符本身,用在<, >, (, ), and 1,...,9, 的含义在下面描述

[c...] 一对方括号中包含一些字符将匹配括号中的任意一个字符,如果第一个字符是^ 则表示不匹配括号中的所有字符,[a-z]表示匹配a到z之间的任一字符,"-”表示范围。* 用在一个以上描述的字符或pattern后表示匹配该字符或pattern0次或多次。+ 类似*,区别在于匹配至少一次

\(..\) 如果包含在这个符号中的字符串匹配上了,被匹配的字符可以被提取出来(最多支持9中匹配)

\n 和上一个符号对应,反斜杠后跟一个数字将可以提前到上一个符合保留的字符串

\<...\> 这个符号表示完全匹配一个字符串的开始和结尾

rs 2个正则表达式的组合将尽可能多的匹配r并匹配一个s

^, $ ^表示字符串的开始,$表示字符串的结尾

?常用正则匹配函数

rexCompile,rexExecute,rexMatchp,rexSubstitute 示例: 使用rexCompile和rexExecute实现开头的示例

lStr = '("hello" "whenuser" "usercome" "ffus er" "ppuserd" "uster");

lRes = nil

rexCompile("user")

foreach( item lStr

if( rexExecute(item) then

lRes = cons( item lRes)

println(item)

)

)

将得到和前一个示例一样的结果。示例: 使用rexSubstitute提取字符,在给定格式的列表中提取symbol名字和对应的坐标

lStr = list("C17x855.00y-2790.00" "C676x3499.50y-2676.40" "Q690x3406.00y-2701.00" “C666x3535.00y-3135.00”“C785x1929.00y-3750.00”“U628x3865.00y-2025.00”“C737x3010.00y-3155.00”“R754x2770.00y-2730.00”) rexCompile( "\\([A-Z]+[0-9]+\\)x\\([0-9.-]+\\)y\\([0-9.-]+\\)") ; \\(...\\) 结构表示匹配的部分将可以用\\1..9提取出来

; [A-Z]表示匹配A~Z的字符,+表示至少有一个这样的字符

foreach( item lStr

when( rexExecute( item )

str1 = rexSubstitute( "\\1" )

str2 = rexSubstitute( "\\2" )

str3 = rexSubstitute( "\\3" )

printf("%s<->%s<->%s\n" str1 str2 str3) )

);

将输出:

C17<->855.00<->-2790.00

C676<->3499.50<->-2676.40

Q690<->3406.00<->-2701.00

C785<->1929.00<->-3750.00

U628<->3865.00<->-2025.00

C737<->3010.00<->-3155.00

R754<->2770.00<->-2730.00

更多示例,参考Skill正则表达式应用举例

Skill正则表达式应用举例

处理Dangling Line Report

allegro的report命令在report dangling line的时候也会同时report dangling via 出来。

如果你record过script,就会发现产生dangling line report的allegro命令是reports "Dangling Lines Report"。

这个命令会在当前allegro工作的文件夹下产生一个叫dangling_lines.rpt的文件。

;------------------------------------------------

<>

Power TOP *(7710.00 -1865.00) to *(6705.00 -1615.00) GND BOTTOM *(7890.00 -1774.00) to *(6575.00 -2045.00)

1V5 INT3 *(7860.00 -1930.00) to *(6675.00 -2660.00)

12V INT5 *(7830.00 -1930.00) to *(6705.00 -2660.00)

<< Dangling Vias >>

GND VIA24C12P (5505.00 -320.00)

1V5 VIA24C12P (5465.00 -320.00)

现在我想用正则表达式来找到Via的信息,而排除line的以及一些其它的文字信息。

下面是我想到的patten:

"^[ A-Z0-9_]+[ ]+[A-Z0-9_]+[ ]+([-0-9.]+ [-0-9.]+)$"

在skill环境下简单试一下

rexMatchp("^[ A-Z0-9_<>*]+[ ]+[A-Z0-9_]+[ ]+([-0-9.]+ [-0-9.]+)$" “1V5

VIA24C12P (5465.00 -320.00)” )=>t

rexMatchp("^[ A-Z0-9_<>*]+[ ]+[A-Z0-9_]+[ ]+([-0-9.]+ [-0-9.]+)$" “1V5 VIA24C12P (5465.00 -320.00)to(5465.00 -320.00)” )=>nil

所以是满足我们的要求的!

完整的提取程序:

axlShell("reports \"Dangling Lines Report\"")

pDanglingFile=infile("./dangling_lines.rpt")

dl_list =nil

unless(getc( pDanglingFile )

axlMsgPut("----- Errors found in Dangling Line Report -----")

while(gets( dl_entry pDanglingFile )

when(rexMatchp("^[ A-Z0-9_<>*]+[ ]+[A-Z0-9_]+[ ]+([-0-9.]+ [-0-9.]+).$" dl_entry );;因为gets读进来的dl_entry还带了个"\n",所以必须在之前定义的patten

后面再加上一个“."来匹配它

dl_entry =buildString(parseString(dl_entry)" ");;因为report结果里面的via net, padstack以及坐标间隔很大,这个让间隔变小一点

dl_list =cons( dl_entry dl_list )

)

)

close(pDanglingFile)

dl_list =sort(dl_list nil);根据字符串大小的默认排序

)

这样就得到了dangling via的列表了。接下来的操作就随个人了,比如把它显示到一个form 里面。

另一个例子

"From: C803.1 (3313.000 2553.921) To: U1802.C3 (7321.024 -1296.024)" rexCompile("\\(([-0-9.]+ [-0-9.]+)\\)[^(]+\\(([-0-9.]+ [-0-9.]+)\\)")

这样就可以得到带括号的坐标

rexCompile("(\\([-0-9.]+ [-0-9.]+\\))[^(]+(\\([-0-9.]+ [-0-9.]+\\))")

得到不带括号的坐标

特殊字符,注释,空格,圆括号和其它标记法的使用

特殊字符

SKill中的特殊字符列表

字符全名含义

\ 反斜杠辅助输出特殊字符

() 圆括号组织数据列表和调用函数列表

[] 中括号数组索引,超级右中括号

{} 大括号使用progn时组织一系列表达式

' 单引号单引号中的表达式不会被解析

" 双引号字符串分界符

, 逗号列表中可选的元素分界符; 在反引号作用范围内使用强制表达式解析

; 分号行注释

: 冒号位分隔符,范围操作

. 点号getq操作

+,–,*,/ 算术运算算术运算符; 同时"/*"和"*/"组合也用于多行注释

!,^,&,| 逻辑运算逻辑运算符

<,>,= 关系运算比较运算,赋值以及位运算

# #用在第一列表示信号的特别解析

@ @用在第一个字符表示保留字;另外在反引号作用范围内使用将强制表达式解析

? 问号如果是第一个字符表示关键字

` 反引号引号内的表达式不被解析

% 百分号

$ -保留为将来使用

[注]:输出这些特殊字符都需要在字符前加"\"。

?注释

?行注释方法, 使用分号";",注释范围在分号当前行。

?多行注释,使用"/*"和"*/"对,注释范围在这这对符号内。

?空格,空格的限制比较少,只是要注意下面几个情况

?函数名和跟在后面的圆括号之间不能有空格,如max(4 2)是对的,而max (4

2)则是错的;

?表示负数的符号"-"和数字之间不能有空格,如-5, -(a*b)有效,而- 5,- (a*b)

无效;

?表示算术运算的"+ - * /"在2个数字之间的位置要对称,如a - b, a-b有效,

而a -b无效。

?圆括号

?圆括号在skill中用于函数调用,分隔多个表达式,控制表达式的解析顺序

?skill中调用函数有2种方式,max(a b)和(max a b)都有效。

?超级右中括号,不推荐使用

?在使用了很多"("的表达式后,可以用"]"来代表很多个用于结尾的")"。

如f1( f2( f3( f4( x ) ) ) )等效于f1( f2( f3( f4( x ]。

?反引号,逗号和逗号加@

示例1.

y = 1

'(x y z) => (x y z) ;反引号使得表达式不被解析,所以其中的y不会被1代替

'(x ,y z) => (x 1 z) ;增加一个逗号在反引号表达式中,逗号后面的表达式将被解析

示例2.

x = 1

y = '(a b c)

'(,x ,y z) => (1 (a b c) z);逗号后的表达式都被解析了

'(,x ,@y z) => (1 a b c z) ;",@"的作用和逗号一样,只是被解析对象是列表,且解析出来的元素代替了原来的列表

?续行符"\"

?使用"\"可以让在一行的文字多行表示,如

string = "This is \

a test." => "This is a test."

?初始化列表的最大长度6000,但是在程序运行中列表的长度无限制。

文件系统接口

?路径

?绝对路径:Unix中以"/"开始的路径,Windows中以磁盘"C:, D:,..."开始的

路径

?相对路径,不是绝对路径的情况就是相对路径

?以"~/"开始的路径表示被查询的路径是用户的home文件夹;

?以"~username"开始的路径,如果username正好是一个用户的名

字,那么被查询的路径将是该用户的home文件夹;

?以"./"开始的路径表示被查询的位置是当前的工作目录

?以"../"开始的路径表示被查询的位置为当前工作目录的父文件夹

?Skill路径

?skill支持用户定义若干不同的路径来存放skill源文件,并通过skill

的路径管理函数来设置各个路径的访问顺序。如果同一个文件在不同路

径下都存在,按照先到先得原则,即使用第一个被找到的文件。

?设置skill查询路径的函数setSkillPath, 如setSkillPath("." "~"

"C:/Skill"),就设置了3个skill查询路径,先后顺序分别为"."-当前工作

路径,"~"-home文件夹,"C:/Skill"-用户自定义文件夹。

?获取skill查询路径列表的函数getSkillPath,如setSkillPath("." "~"

"C:/Skill");getSkillPath()=>("." "~" "C:/Skill")

?安装路径

?获取安装路径函数getInstallPath,如

getInstallPath()=>"C:/Cadence/Psd16.2"

?检测文件状态

?检测文件是否存在函数isFile,isFileName

?检测文件夹是否存在函数isDir

?检测文件或文件夹的是否可以被读取的函数isReadable

?检测文件或文件夹的是否可以被写入的函数isWritable

?路径操作

?生成和删除文件夹

?createDir(arg), 如createDir("c:/temp/skill"),将在

c:/temp下创建一个skill文件夹;

?deleteDir(arg),如deleteDir("c:/temp/skill"),将删除这

个skill文件夹,如果这是个空文件夹,且用户具有删除它的权

限。

?删除文件函数deleteFile

?获取指定文件夹下所有文件名函数getDirFiles

?获取当前工作目录getWorkingDir

?改变工作目录changeWorkingDir

端口

所有数据的输入输出都是经由一个被称为端口的东西实现的。

预定义的标准端口

端口名作用

piport 标准输入端口,等同于C中的stdin

poport 标准输出端口,等同于C中的stdout

errport 错误输出端口,等同于C中的stderr

ptport 跟踪信息端口,等同于C中的stderr

?打开端口

?打开一个文件读取端口infile

infile("~/test/input.il")=> port:"~/test/input.il"

?打开一个文件输出端口outfile

FLUENT 教程 赵玉新 I、目录 第一章、开始 第二章、操作界面 第三章、文件的读写 第四章、单位系统 第五章、读入和操作网格 第六章、边界条件 第七章、物理特性 第八章、基本物理模型 第九章、湍流模型 第十章、辐射模型 第十一章、化学输运与反应流 第十二章、污染形成模型 第十三章、相变模拟 第十四章、多相流模型 第十五章、动坐标系下的流动 第十六章、解算器的使用 第十七章、网格适应 第十八章、数据显示与报告界面的产生 第十九章、图形与可视化 第二十章、Alphanumeric Reporting 第二十一章、流场函数定义 第二十二章、并行处理 第二十三章、自定义函数 第二十四章、参考向导 第二十五章、索引(Bibliography) 第二十六章、命令索引 II、如何使用该教程 概述 本教程主要介绍了FLUENT 的使用,其中附带了相关的算例,从而能够使每一位使用 者在学习的同时积累相关的经验。本教程大致分以下四个部分:第一部分包括介绍信息、用户界面信息、文件输入输出、单位系统、网格、边界条件以及物理特性。第二和第三部分包含物理模型,解以及网格适应的信息。第四部分包括界面的生成、后处理、图形报告、并行处理、自定义函数以及FLUENT 所使用的流场函数与变量的定义。 下面是各章的简略概括 第一部分: z开始使用:本章描述了FLUENT 的计算能力以及它与其它程序的接口。介绍了如何对具体的应用选择适当的解形式,并且概述了问题解决的大致步骤。在本章中,我们给出

了一个可以在你自己计算机上运行的简单的算例。 z使用界面:本章描述了用户界面、文本界面以及在线帮助的使用方法。同时也提供了远程处理与批处理的一些方法。(请参考关于特定的文本界面命令的在线帮助) z读写文件:本章描述了FLUENT 可以读写的文件以及硬拷贝文件。 z单位系统:本章描述了如何使用FLUENT 所提供的标准与自定义单位系统。 z读和操纵网格:本章描述了各种各样的计算网格来源,并解释了如何获取关于网格的诊断信息,以及通过尺度化(scale)、分区(partition)等方法对网格的修改。本章还描述了非一致(nonconformal)网格的使用. z边界条件:本章描述了FLUENT 所提供的各种类型边界条件,如何使用它们,如何定义它们and how to define boundary profiles and volumetric sources. z物理特性:本章描述了如何定义流体的物理特性与方程。FLUENT 采用这些信息来处理你的输入信息。 第二部分: z基本物理模型:本章描述了FLUENT 计算流体流动和热传导所使用的物理模型(包括自然对流、周期流、热传导、swirling、旋转流、可压流、无粘流以及时间相关流)。以及在使用这些模型时你需要输入的数据,本章也包含了自定义标量的信息。 z湍流模型:本章描述了FLUENT 的湍流模型以及使用条件。 z辐射模型:本章描述了FLUENT 的热辐射模型以及使用条件。 z化学组分输运和反应流:本章描述了化学组分输运和反应流的模型及其使用方法。本章详细的叙述了prePDF 的使用方法。 z污染形成模型:本章描述了NOx 和烟尘的形成的模型,以及这些模型的使用方法。 第三部分: z相变模拟:本章描述了FLUENT 的相变模型及其使用方法。 z离散相变模型:本章描述了FLUENT 的离散相变模型及其使用方法。 z多相流模型:本章描述了FLUENT 的多相流模型及其使用方法。 z Flows in Moving Zones(移动坐标系下的流动):本章描述了FLUENT 中单一旋转坐标系,多重移动坐标系,以及滑动网格的使用方法。 z Solver 的使用:本章描述了如何使用FLUENT 的解法器(solver)。 z网格适应:本章描述了explains the solution-adaptive mesh refinement feature in FLUENT and how to use it 第四部分: z显示和报告数据界面的创建:本章描述了explains how to create surfaces in the domain on which you can examine FLUENT solution data z图形和可视化:本章描述了检验FLUENT 解的图形工具 z Alphanumeric Reporting:本章描述了如何获取流动、力、表面积分以及其它解的数据。 z流场函数的定义:本章描述了如何定义FLUENT 面板内出现的变量选择下拉菜单中的流动变量,并且告诉我们如何创建自己的自定义流场函数。 z并行处理:本章描述了FLUENT 的并行处理特点以及使用方法 z自定义函数:本章描述了如何通过用户定义边界条件,物理性质函数来形成自己的FLUENT 软件。 如何使用该手册 z根据你对CFD 以及FLUENT 公司的熟悉,你可以通过各种途径使用该手册 对于初学者,建议如下:

Allegro培训教材 目录 第一章 焊盘制作-------------------------------------------------------2 1.1 用Pad Designer 制作焊盘---------------------------------------2 1.2 制作圆形热风焊盘----------------------------------------------7 第二章 建立封装------------------------------------------------------10 2.1 新建封装文件-------------------------------------------------10 2.2 设置库路径---------------------------------------------------11 2.3 画元件封装---------------------------------------------------12 第三章 元器件布局----------------------------------------------------22 3.1 建立电路板(PCB)----------------------------------------------22 3.2 导入网络表---------------------------------------------------23 3.3 摆放元器件---------------------------------------------------26 第四章 PCB布线------------------------------------------------------31 4.1 PCB 层叠结构-------------------------------------------------31 4.2 布线规则设置-------------------------------------------------34 4.2.1 对象(object)--------------------------------------------35 4.2.2 建立差分对----------------------------------------------37 4.2.3 差分对规则设置------------------------------------------38 4.2.4 CPU与DDR内存芯片走线约束规则--------------------------40 4.2.5 设置物理线宽和过孔--------------------------------------46 4.2.6 设置间距约束规则----------------------------------------52 4.2.7 设置相同网络间距规则------------------------------------56 4.3 Allegro PCB布线----------------------------------------------56 4.3.1 手工拉线------------------------------------------------56 4.3.2 应用区域规则--------------------------------------------60 4.3.3 扇出布线------------------------------------------------61 4.3.4 差分布线------------------------------------------------63 4.3.5 等长绕线------------------------------------------------65 4.3.6 分割平面------------------------------------------------66 第五章 光绘文件输出--------------------------------------------------69 5.1 Artwork 参数设置---------------------------------------------69 5.2 生成钻孔文件-------------------------------------------------75 5.3 输出底片文件-------------------------------------------------79

本文介绍cadence软件的入门学习,原理图的创建、仿真,画版图和后仿真等一全套过程,本教程适合与初学着,讲到尽量的详细和简单,按照给出的步骤可以完全的从头到尾走一遍,本教程一最简单的反相器为例。 打开终端,进入文件夹目录,输入icfb&启动软件,主要中间有个空格。 启动后出现下图: 点击Tools的Library Manager,出现如下: 上面显示的是文件管理窗口,可以看到文件存放的结构,其中Library就是文件夹,Cell就是一个单元,View就是Cell的不同表现形式,比如一个mos管是一个Cell,但是mos管有原理图模型,有版图模型,有hspice参数模型,有spectre参数模型等,这就列举了Cell的4个View。他们之间是树状的关系,即,Library里面有多个Cell,一个Cell里面有多个View。应该保持一个好习惯就是每个工程都应该建立一个Library,Cell和View之间的管理将在后面介绍。

现在建立工程,新建一个Library,如下左图,出现的对话框如下有图: 在上右图中选择合适的目录,并敲入名字,这里取的是inv,这就是新建的文件夹的名字,以后的各种文件都在这个文件夹下。OK后出现下面对话框 这个对话框是选择是否链接techfile,如果只是原理图仿真而不用画版图,就选择Dont need a techfile,这里我们要画版图,而且有工艺库,选择Attach to an existing techfile,OK 后出现下面对话框:

在technology Library选择tsmc18rf,我们使用的是这个工艺库。Inv的文件夹就建好了,在Library Manager就有它了,如下图: 文件夹建好了后,我们要建立原理图,在inv的Library里面新建Cell如下:

FLUENT中文手册(简化版) 本手册介绍FLUENT的使用方法,并附带了相关的算例。下面是本教程各部分各章节的简略概括。 第一部分: ?开始使用:描述了FLUENT的计算能力以及它与其它程序的接口。介绍了如何对具体的应用选择适当的解形式,并且概述了问题解决的大致步骤。在本章中给出了一个简单的算例。 ?使用界面:描述用户界面、文本界面以及在线帮助的使用方法,还有远程处理与批处理的一些方法。?读写文件:描述了FLUENT可以读写的文件以及硬拷贝文件。 ?单位系统:描述了如何使用FLUENT所提供的标准与自定义单位系统。 ?使用网格:描述了各种计算网格来源,并解释了如何获取关于网格的诊断信息,以及通过尺度化(scale)、分区(partition)等方法对网格的修改。还描述了非一致(nonconformal)网格的使用. ?边界条件:描述了FLUENT所提供的各种类型边界条件和源项,如何使用它们,如何定义它们等 ?物理特性:描述了如何定义流体的物理特性与方程。FLUENT采用这些信息来处理你的输入信息。 第二部分: ?基本物理模型:描述了计算流动和传热所用的物理模型(包括自然对流、周期流、热传导、swirling、旋转流、可压流、无粘流以及时间相关流)及其使用方法,还有自定义标量的信息。 ?湍流模型:描述了FLUENT的湍流模型以及使用条件。 ?辐射模型:描述了FLUENT的热辐射模型以及使用条件。 ?化学组分输运和反应流:描述了化学组分输运和反应流的模型及其使用方法,并详细叙述了prePDF 的使用方法。 ?污染形成模型:描述了NOx和烟尘的形成的模型,以及这些模型的使用方法。 第三部分: ?相变模拟:描述了FLUENT的相变模型及其使用方法。 ?离散相变模型:描述了FLUENT的离散相变模型及其使用方法。 ?多相流模型:描述了FLUENT的多相流模型及其使用方法。 ?移动坐标系下的流动:描述单一旋转坐标系、多重移动坐标系、以及滑动网格的使用方法。 ?解法器(solver)的使用:描述了如何使用FLUENT的解法器。 ?网格适应:描述了如何优化网格以适应计算需求。 第四部分: ?显示和报告数据界面的创建:本章描述了explains how to create surfaces in the domain on which you can examine FLUENT solution data ?图形和可视化:本章描述了检验FLUENT解的图形工具 ?Alphanumeric Reporting:本章描述了如何获取流动、力、表面积分以及其它解的数据。 ?流场函数的定义:本章描述了如何定义FLUENT面板内出现的变量选择下拉菜单中的流动变量,并且告诉我们如何创建自己的自定义流场函数。 ?并行处理:本章描述了FLUENT的并行处理特点以及使用方法 ?自定义函数:本章描述了如何通过用户定义边界条件,物理性质函数来形成自己的FLUENT软件。 如何使用该手册 对于初学者,建议从阅读“开始”这一章起步。 对于有经验的使用者,有三种不同的方法供你使用该手册:按照特定程序的步骤从按程序顺序排列的目录列表和主题列表中查找相关资料;从命令索引查找特定的面板和文本命令的使用方法;从分类索引查找特定类别信息(在线帮助中没有此类索引,只能在印刷手册中找到它)。 什么时候使用Support Engineer:Support Engineer能帮你计划CFD模拟工程并解决在使用FLUENT 中所遇到的困难。在遇到困难时我们建议你使用Support Engineer。但是在使用之前有以下几个注意事项:●仔细阅读手册中关于你使用并产生问题的命令的信息 ●回忆导致你产生问题的每一步 ●如果可能的话,请记下所出现的错误信息 ●对于特别困难的问题,保存FLUENT出现问题时的日志以及手稿。在解决问题时,它是最好的资源。

于博士信号完整性研究网 https://www.360docs.net/doc/ed17695314.html, 60分钟学会OrCAD Capture CIS 作者:于争 博士 2009年4月28日

目录 1 建立工程及设置......................................................................................................................- 1 - 2 工程管理器..............................................................................................................................- 4 - 3 原理图页相关操作..................................................................................................................- 5 - 4 创建元件库..............................................................................................................................- 6 - 5 元件库编辑一些知识技巧......................................................................................................- 9 - 6 如何创建不规则图形元件....................................................................................................- 10 - 7 分裂元件................................................................................................................................- 15 - 8 把一个元件分多个部分画出来............................................................................................- 16 - 8.1 Homogeneous类型元件画法......................................................................................- 16 - 8.2 Heterogeneous类型元件画法..................................................................................- 17 - 8.3 分裂元件使用方法.....................................................................................................- 19 - 9 加入元件库放置元件............................................................................................................- 21 - 9.1普通元件放置方法......................................................................................................- 21 - 9.2 电源和地的放置方法.................................................................................................- 23 - 10 同一个页面内建立互连......................................................................................................- 24 - 11 不同页面间建立互联的方法..............................................................................................- 26 - 12 使用总线..............................................................................................................................- 27 - 12.1 如何创建总线...........................................................................................................- 27 - 12.2 放置非90度转角总线.............................................................................................- 28 - 12.3 总线命名...................................................................................................................- 28 - 12.4 总线与信号线连接...................................................................................................- 28 - 13 浏览工程及使用技巧..........................................................................................................- 29 - 13.1 浏览parts................................................................................................................- 30 - 13.2 浏览nets..................................................................................................................- 31 - 14 原理图中搜索......................................................................................................................- 32 - 14.1 搜索元件...................................................................................................................- 33 - 14.2 查找网络 flat nets...............................................................................................- 34 - 15 元件替换与更新..................................................................................................................- 35 - 15.1 批量替换 replace cache.......................................................................................- 35 - 15.2 批量更新 update cache.........................................................................................- 36 - 15.3 两个命令的区别.......................................................................................................- 36 - 16 一些基本操作......................................................................................................................- 36 - 16.1选择元件....................................................................................................................- 36 - 16.2 移动元件...................................................................................................................- 37 - 16.3 元件的旋转...............................................................................................................- 37 - 16.4 元件的镜像翻转.......................................................................................................- 37 - 16.5 修改元件属性放置文本...........................................................................................- 37 - 17 添加footprint属性..............................................................................................................- 38 - 17.1 单个元件添加Footprint属性...............................................................................- 38 - 17.2 批量添加Footprint属性.......................................................................................- 41 - 18 生成Netlist..........................................................................................................................- 44 - 19 生成元件清单......................................................................................................................- 47 - 20 打印原理图..........................................................................................................................- 51 -

fluent技术基础与应用实例 4.2.2 fluent数值模拟步骤简介 主要步骤: 1、根据实际问题选择2D或3Dfluent求解器从而进行数值模拟。 2、导入网格(File→Read→Case,然后选择有gambit导出的.msh文件) 3、检查网格(Grid→Check)。如果网格最小体积为负值,就要重新 进行网格划分。 4、选择计算模型。 5、确定流体物理性质(Define→Material)。 6、定义操作环境(Define→operating condition) 7、制定边界条件(Define→Boundary Conditions) 8、求解方法的设置及其控制。 9、流场初始化(Solve→Initialize) 10、迭代求解(Solve→Iterate) 11、检查结果。 12、保存结果,后处理等。 具体操作步骤: 1、fluent2d或3d求解器的选择。 2、网格的相关操作 (1)、读入网格文件 (2)、检查网格文件 文件读入后,一定要对网格进行检查。上述的操作可以得到网格信息,从中看出几何区域的大小。另外从minimum volume 可以知道最小网格的体积,若是它的值大于零,网格可以用于计算,否则就要重新划 分网格。 (3)、设置计算区域 在gambit中画出的图形是没有单位的,它是一个纯数量的模型。故 在进行实际计算的时候,要根据实际将模型放大或缩小。方法是改变fluent总求解器的单位。 (4)、显示网格。 Display→Grid 3、选择计算模型

(1)、基本求解器的定义 Define→Models→Solver Fluent中提供了三种求解方法: ·非耦合求解 segregated ·耦合隐式求解 coupled implicit ·耦合显示求解 coupled explicit 非耦合求解方法主要用于不可压缩流体或者压缩性不强的流体。 耦合求解方法用在高速可压缩流体 fluent默认设置是非耦合求解方法,但对于高速可压缩流动,有强的体积力(浮力或离心力)的流动,求解问题时网格要比较密集,建 议采用耦合隐式求解方法。耦合能量和动量方程,可以较快的得到收敛值。耦合隐式求解的短板:运行所需要的存比较大。若果必须要耦合求解而机器存不够用,可以考虑采用耦合显示求解方法。盖求解方法也耦合了动量,能量和组分方程,但是存却比隐式求解方法要小。 需要指出的是,非耦合求解器的一些模型在耦合求解器里并不一定都有。耦合求解器里没有的模型包括:多相流模型、混合分数/PDF燃烧模型、预混燃烧模型。污染物生成模型、相变模型、Rosseland辐射模型、确定质量流率的周期性流动模型和周期性换热模型。 %%%有点重复,但是可以看看加深理解 Fluent提供三种不同的求解方法;分离解、隐式耦合解、显示耦合解。分理解和耦合解的主要区别在于:连续方程、动量方程、能量方程和 组分方程解的步骤不同。 分离解按照顺序解,耦合解是同时解。两种解法都是最后解附加的标量方程。隐式解和显示解的区别在于线性耦合方程的方式不同。 Fluent默认使用分离求解器,但是对于高速可压流动,强体积力导致 的强烈耦合流动(流体流动耦合流体换热耦合流体的混合,三者相互耦合的过程—文档整理者注)(浮力或者旋转力),或者在非常精细的网格上的流动,需要考虑隐式解。这一解法耦合了流动和能量方程, 收敛很快。%%% (2)、其他求解器的选择 在实际问题中,除了要计算流场,有时还要计算温度场或者浓度场等,因此还需要其他的模型。主要的模型有: Multiphase(多相流动)viscous(层流或湍流)energy(是否考虑传热)species(反应及其传热相关) (3)操作环境的设置 Define→operation→condition

60 分钟学会OrCAD Capture CIS 于博士信号完整性研究网 分钟学会OrCAD Capture CIS 作者:于争博士 2009 年 4 月 28 日 文章来源:于博士信号完整性研究网分钟学会OrCAD Capture CIS 目录 1 建立工程及设置......................................................................................................................- 1 - 2 工程管理器..............................................................................................................................- 4 - 3 原理图页相关操作..................................................................................................................- 5 - 4 创建元件库..............................................................................................................................- 6 - 5 元件库编辑一些知识技巧......................................................................................................- 9 - 6 如何创建不规则图形元件....................................................................................................- 10 - 7 分裂元件................................................................................................................................- 15 - 8 把一个元件分多个部分画出来............................................................................................- 16 - Homogeneous 类型元件画法......................................................................................- 16 - Heterogeneous 类型元件画法..................................................................................- 17 - 分裂元件使用方法.....................................................................................................- 19 - 9 加入元件库放置元件............................................................................................................- 21 - 普通元件放置方法......................................................................................................- 21 - 电源和地的放置方法.................................................................................................- 23 - 10 同一个页面内建立互连......................................................................................................- 24 - 11 不同页面间建立互联的方法..............................................................................................- 26 - 12 使用总线..............................................................................................................................- 27 - 如何创建总线...........................................................................................................- 27 - 放置非90 度转角总线.............................................................................................- 28 -

第一章Fluent 软件的介绍 fluent 软件的组成: 软件功能介绍: GAMBIT 专用的CFD 前置处理器(几何/网格生成) Fluent4.5 基于结构化网格的通用CFD 求解器 Fluent6.0 基于非结构化网格的通用CFD 求解器 Fidap 基于有限元方法的通用CFD 求解器 Polyflow 针对粘弹性流动的专用CFD 求解器 Mixsim 针对搅拌混合问题的专用CFD 软件 Icepak 专用的热控分析CFD 软件 软件安装步骤: 前 处 理 gambit 软 件 Fluent6.0 Fluent5.5&4.5 Fidap Polyflow Mixsim Icepack 通用软件 专用软件

step 1: 首先安装exceed软件,推荐是exceed6.2版本,再装exceed3d,按提示步骤完成即可,提问设定密码等,可忽略或随便填写。 step 2: 点击gambit文件夹的setup.exe,按步骤安装; step 3: FLUENT和GAMBIT需要把相应license.dat文件拷贝到FLUENT.INC/license目录下; step 4:安装完之后,把x:\FLUENT.INC\ntbin\ntx86\gambit.exe命令符拖到桌面(x为安装的盘符); step 5: 点击fluent源文件夹的setup.exe,按步骤安装; step 6: 从程序里找到fluent应用程序,发到桌面上。 注:安装可能出现的几个问题: 1.出错信息“unable find/open license.dat",第三步没执行; 2.gambit在使用过程中出现非正常退出时可能会产生*.lok文件,下次使用不能打开该工作文件时,进入x:\FLUENT.INC\ntbin\ntx86\,把*.lok文件删除即可; 3.安装好FLUENT和GAMBIT最好设置一下用户默认路径,推荐设置办法,在非系统分区建一个目录,如d:\users a)win2k用户在控制面板-用户和密码-高级-高级,在使用fluent用户的配置文件 修改本地路径为d:\users,重起到该用户运行命令提示符,检查用户路径是否修改; b)xp用户,把命令提示符发送到桌面快捷方式,右键单击命令提示符快捷方式在快捷方式-起始位置加入D:\users,重起检查。 几种主要文件形式: jou文件-日志文档,可以编辑运行; dbs文件-gambit工作文件; msh文件-从gambit输出得网格文件; cas文件-经fluent定义后的文件; dat文件-经fluent计算数据结果文件。 第二章专用的CFD前置处理器——Gambit GAMBIT软件是面向CFD的前处理器软件,它包含全面的几何建模能力和功能强大的网格划分工具,可以划分出包含边界层等CFD特殊要求的高质量的网格。GAMBIT可以生成FLUENT5、FLUENT4.5、FIDAP、POL YFLOW等求解器所需要的网格。Gambit软件将功能强大的几何建模能力和灵活易用的网格生成技术集成在一起。使用Gambit软件,将大大减小CFD应用过程中,建立几何模型和流场和划分网格所需要的时间。用户可以直接使用Gambit软件建立复杂的实体模型,也可以从主流的CAD/CAE系统中直接读入数据。Gambit软件高度自动化,所生成的网格可以是非结构化的,也可以是多种类型组成的混合网格。 一. Gambit图形用户界面:

Cadence 系列软件从schematic到layout入门 一.客户端软件使用及icfb启动 要使用工作站上的软件,我们必须在PC中使用xwinpro等工具连接到工作站上。从开始菜单中,运行xwinpro的xSettings,按照下图设置: 点击上图的Settings在出现的窗口中按如下设置(connect host选择为192.168.1.137):

设置完后,从开始菜单中运行xwinpro的xsessions,应该就可以进入登陆界面,用户名为user1,密码为root。 二、Schematic Cadence系列软件包含了电路图工具Schematic,晶体管级电路仿真工具Spectre,以及版图工具Virtuoso等。一般来说,我们先用Schematic画好电路原理图然后进行仿真,最后用Virtuoso手动画版图或者直接进行版图综合,最后对版图进行L VS,DRC等验证。 在登陆进工作站后,点击鼠标右键,选择tools——>terminal,在弹出的terminal窗口中敲入命令icfb&就可以启动cadence了。 图1 icfb的主界面 我们以建立一个反相器电路为例子: 在icfb中,任何一个电路,不论是已经存在的可以引用的库,还是用户新建立的一个电路,都是一个library. 一个library一般有若干个Cell(单元电路),每个cell有若干个

schematic(电路原理)和若干个layout(版图)。所以,我们要做的第一步,就是先创建一个自己的“库”,File菜单->new->library 图2 新建一个库的界面 从这个新建一个library的界面,我们必须输入新建立的库的名称,并且选择好这个库应该存放的目录,然后注意看右边的三个选项,关于新建立的库是否需要链接到Technology File 的问题。首先,这个Technology File一般是指工艺库,由Foundry提供。如果最终做的电路是需要画出Layout(版图)的,就必须要有工艺库,如果不需要画Layout,那就可以不需要工艺库。由于我们需要演示这一步,所以就选择Attach to an existing techfile。(也可以在建立之后,再Attach to an existing techfile)。 输入name: testinv, (大家在做的时候自己起一个名字)。 现在,我们就已经建立好了一个新的“库”,为了给这个库增加schematic(电路图)和Layout(版图)我们就必须对这个库进行“管理”,从icfb的主菜单(图1)中的Tools菜单->Library Manager.

相关文档
最新文档