搜档网
当前位置:搜档网 › Cadence skill语言简介

Cadence skill语言简介

Cadence skill语言简介
Cadence skill语言简介

Cadence skill语言简介

Cadence提供二次开发的SKILL语言,它是一种基于通用人工智能语言—Lisp的交互式高级编程语言(LISP即List Processing-表处理,是最早和最重要的符号处理编程语言之一,它于1958年由美国的J. McCarthy提出,LISP在人工智能AI方面获得广泛应用)。

SKILL语言支持一套类似C语言的语法,大大降低了初学者学习的难度,同时高水平的编程者可以选择使用类似Lisp语言的全部功能。所以SKILL语言既可以用作最简单的工具语言,也可以作为开发任何应用的、强大的编程语言。SKILL可以与底层系统交互,也提供了访问Cadence各个工具的丰富接口。用户可以通过Skill语言来访问,并且可以开发自己的基于Cadence平台的工具。

1. Skill语言和Lisp语言的关系

Skill函数提供两种表示法,一种是代数表示法,现在大多数语言采取这种方式,即

func( arg1 arg2 ...),另一种是前缀表示法,类似于Lisp语言,即(func arg1 arg2 ...)。这里举个例子作为对比:

1.代数表示法

procedure( fibonacci(n)

if( (n == 1 || n == 2) then

1

else fibonacci(n-1) + fibonacci(n-2)

)

)

2.前缀表示法

(defun fibonacci (n)

(cond

((or (equal n 1) (equal n 2)) 1)

(t (plus (fibonacci (difference n 1))

(fibonacci (difference n 2))))

)

)

这里可以看到类似Lisp语言的表示法后面有很多右括号,而且函数和参数容易混淆,所以一般推荐还是用常用的类C语言代数表示法

Skill程序就像一个list表,类似Lisp语言,程序的操作就像操作数据(list)一样,可以生成,修改,求值等

2. 关于Skill函数

SKILL语言支持一套类似C语言的语法,初学者有了一定的C语言基础,入门是很容易的。Cadence的工具可以通过CIW,Bindkey,Form,Menu等多种方式调用skill函数,送到skill语言的解释器来执行各种操作。

其中CIW(Command Interpreter Window),即启动Icfb的第一个窗口,包含一些常用的menu,一个输入行,以及一个输出区域,这里是常用的debug skill程序的地方,当然cadence 也提供了Tools->Skill Development,有兴趣的话可以深入研究一下

2.1 Skill函数的查阅方法

Skill语言有n多函数,加上众多工具的接口函数,可以用成千上万来形容,初学者可能会感到晕头转向,无从下手。其实只要了解基本的变量,控制语句,输入输出以及一些常用工具的基本函数就可以了,大多数函数都可以用到再查阅。开始学习skill时可以仔细看看SKILL Language User Guide,其他的可以用到时再查阅,这里列出几个经常会用到的文档:SKILL Language Reference -Skill语言相关的函数,Cadence User Interface SKILL Functions Reference -Cadence应用程序图形界面接口函数,Design Framework II SKILL Functions Reference,SKILL Custom Layout Reference,SKILL Schematic Composer Reference分别是Cadence的Design Framework II,版图,电路的接口函数。

当然还有其他众多工具的接口函数,因此Skill需要方便的函数查阅方法,这里列出3种:

1.最简单的方法,看~/CDS.log文件或者CIW的输出区域,把Options-> LogFilter 都选上。这里一般可以查阅在图形界面下运行的函数,如图,我们可以看到画path线的函数以及输出结果等

2.在CIW里输入命令startFinder,或者在Terminal上输入cdsFinder& . Finder适用于至少知道函数名的一部分,这里可以查到函数的用法简介。例如上图我们看到画path 的函数是leHiCreatePath(),但这是图形方式的函数,对应skill方式的函数呢用法呢,可以在Finder中输入CreatePath,这样我们就可以看到包含有CreatePath的所有函数,如

3.上面我们查到的关于函数用法的介绍很简单,如何知道其详细介绍呢。当然如果你知道函数在那个文档里,直接打开就行了,如果不知道,就需要打开help的search功能,这里可以查到详细的功能用法。

运行cdsdoc&, 点击Search打开Cadence help的搜索功能,工具会自动启动一个http服务,同时打开搜索网页,启动服务后,你也可以在windows的IE里输入

http://hostname:9000/search.htm,同样可以打开搜索页面,需要注意的是,在

C:\WINNT\system32\drivers\etc\hosts文件中需要加入hostname对应的ip,如:127.0.0.1 localhost

10.0.10.2 host1

Cadence help的搜索功能默认是用Netscape打开搜索网页,如果没有装Netscape,可能会打不开网页。可以先打开firefox,mozila等浏览器,再启动cadence doc搜索http 服务,这样就可以打开搜索网页了

3. Skill语言简介

Skill语言的很多地方和C语言差不多,如变量,函数,控制结构,输入输出等,详细的介绍可以参考User Guide,这里只作简单介绍。

3.1. Skill的变量不需要事先声明,Skill第一次用到是会自动生成变量。变量可以由字符、数字、“_”和“?”组成,注意第一个字符不能是数字和”?”。由于Cadence所开发的Skill中的变量、函数都是第一个字母小写,以_为开头的是Cadence的专用函数,为了避免冲突,建议大家函数和变量命名都以大写字母开头。

3.2. Skill的函数的调用方式有三种,

strcat( "Hello" "," " everyone" "!" ) ;常见的类C格式

( strcat "Hello" "," " everyone" "!" ) ;类Lisp语言的格式

strcat "Hello" "," " everyone" "!" ;上面的括号可以省略

返回的结果都是=> "Hello, everyone!"

推荐使用第一种方式,需要注意的是函数和第一个括号之间没有空格,否则会报错

如:strcat ( "Hello" "," " everyone" "!" )

=> *Error* eval: not a function - "Hello"

这是调用skill函数的一个常见问题,其它的问题还有:

a. 软件没响应,比如在CIW中输入段代码,软件没有反映,什么结果也没有,一般是因为( )或者”“不成对造成的,一般可以通过键入]来解决,它表示补充完不对称的括号(可以代替任意多个右括号),如果还没有响应,键入“]这时大部分情况下,系统会有响应

b. 数据类型不匹配,如:

strcat( "Mary had a" 5 )

=>*Error* strcat: argument #2 should be either a string

or a symbol (type template = "S") – 5

3.3. Skill List是Skill基于Lisp(List Processing)语言的表现,它是skill数据对象的一个有序集合,skill数据甚至程序本身都可以看作是一个list,这是C语言中所没有的概念。下面是skill list的简单例子

List Explanation

(1 2 3) A list containing the integer constants 1, 2, and 3

(1) A list containing the single element 1

( ) An empty list (same as the special atom nil)

(1 (2 3) 4) A list containing another list as its second element

A). 创建list有以下几种基本的方法:

Specify all the elements of the list literally with the single quote ( …) operator.

Specify all the elements as evaluated arguments to the list function.

Add an element to an existing list with the cons function.

Merge two lists with the append function.

1).用'和 list 定义一个list,注意两者的差别

a = 1 => 1

b = 2 => 2

2).用cons命令添加一个元素到一个list的头部

result = '( 2 3 ) => ( 2 3 )

result = cons( 1 result ) => ( 1 2 3 )

3).用append命令合并两个list

Lista = '( 4 5 6 ) => ( 4 5 6 )

Listb = '( 1 2 3 ) => ( 1 2 3 )

Listc = append( Lista Listb) => ( 4 5 6 1 2 3 )

B). 访问list或者list中某些元素的方法:

car访问list的第一个元素

numbers = '( 1 2 3 ) => ( 1 2 3 )

car( numbers ) => 1

cdr访问list除了第一个元素外的其他元素,注意返回仍然是个list

numbers = '( 1 2 3 ) => ( 1 2 3 )

cdr( numbers ) => ( 2 3 )

nth用索引访问list的某个元素,注意索引从0开始

numbers = '( 1 2 3 ) => ( 1 2 3 )

nth( 1 numbers ) => 2

member检查指定的元素是否在指定的list中,它只检查顶层元素的元素,返回值是从搜到值开始到结尾的list

numbers = '( 1 2 3 ) => ( 1 2 3 )

member( 4 numbers ) => nil

member( 2 numbers ) => ( 2 3 )

length计算list所包含元素的个数

numbers = '( 1 2 3 ) => ( 1 2 3 )

length( numbers ) => 3

C). 关于xy坐标或者bBox边界list的访问

在版图设计中,关于坐标的list是最长见的,它是一组2维的list,常见的表示方法有:用 : 表示一个坐标的list,其结果和list命令一样,用xCoord和yCoord命令可以访问xy坐标xValue = 300

yValue = 400

aCoordinate = xValue:yValue => ( 300 400 )

xCoord( aCoordinate ) => 300

yCoord( aCoordinate ) => 400

用list命令和'来表示一个bBox,list命令先计算变量或者表达式,然后赋给list,' 表示的list和字面的一样,不会计算变量或者表达式的值

bBox = list( 300:400 500:450 ) ;含有 : 的bBox

含有变量用list

lowerLeft = 300:400

upperRight = 500:450

bBox = list( lowerLeft upperRight )

' 表示的list严格按字面意思

bBox = '(( 300 400 ) ( 500 450 ))

List的相关操作有很多,这里就不详细介绍了,可以参考User Guide里的Advanced List Operations

3.4. Skill的输入输出

1). 输出显示数据:

print 和println 函数都可以用来显示单个数据,println可以在显示的数据后多加一个回车for( i 1 3 print( "hello" )) ;Prints hello three times. "hello""hello""hello"

for( i 1 3 println( "hello" )) ;Prints hello three times.

"hello"

"hello"

"hello"

printf函数是格式化的输出,下面的例子是一定格式输出图形层的统计

printf( "\n%-15s %-15s %-10d %-10d %-10d %-10d"

layerName purpose rectCount labelCount lineCount miscCount

)

对应参数的意义如下,printf需要注意输出类型的对应

%[-][width][.precision]conversion_code

[-] = left justify

[width] = minimum number of character positions

[.precision] = number of characters to be printed

conversion_code :

d - decimal(integer)

f - floatin

g point

s - string or symbol

c - character

n - numeric

L - list (Ignores width and precision fields.)

P - point list (Ignores width and precision fields.)

2). 输出数据到一个文件:outfile定义输出接口文件,print println fprintf输出到接口文件,close关闭打开的接口,见下面的例子

myPort = outfile( "/tmp/myFile1" )

for( i 1 3

println( list( "Number:" i) myPort )

)

close( myPort )

输出到文件/tmp/myFile1.

("Number:" 1)

("Number:" 2)

("Number:" 3)

myPort = outfile( "/tmp/myFile2" )

for( i 1 3

fprintf( myPort "Number: %d\n" i ) ;注意printf函数不能输出到port

)

close( myPort )

输出到文件/tmp/myFile2.

Number: 1

Number: 2

Number: 3

3). 从文件读取数据:intfile定义输入接口文件,gets一次从接口文件读取一行字符串,fscanf根据指定的格式从接口文件读取,close关闭打开的接口

打开~/.cshrc,输出文件的每一行

inPort = infile( "~/.cshrc" )

when( inPort

while( gets( nextLine inPort )

println( nextLine )

)

close( inPort )

)

打开~/.cshrc,输出文件中的每一个字符串

inPort = infile( "~/.cshrc" )

when( inPort

while( fscanf( inPort "%s" word )

println( word )

)

close( inPort )

)

3.5. Skill的控制结构

SKILL中只有nil 是假(FALSE),其余的任何值都是真(TRUE)。

与/或逻辑操作只有在需要计算第二个表达式时,才计算第二个表表达式,比如&&操作,当第一个表达时为假时,就不会再计算第二个表达式,|| 操作,当第一个表达时为假时,才会再计算第二个表达式。

返回的结果是最后一个计算的表达式,因此与/或逻辑操作可以代替繁琐的if / when等控制语句,例如:C语言中的操作符,a>b ? c=a : c=b; 即c取a b中较大的一个Skill中没有类似的操作符,可以用下面语句来完成此操作:

if( a>b then

c=a

else

c=b

)

也可以用逻辑操作符: c = (a>b)&&a || (a

当然Skill还提供的有max(a b …)的函数,举这个例子是为了说明&& || 可以代替if then

3). 控制语句:if(…then…else….),when,unless,case,cond,循环语句for,forecah 等,控制语句和C语言类似,都是先判断某个变量或者表达式是否为真,然后执行下面的操作,需要注意的是:

关键词(其实也是skill的函数)和左括号之间不能有空格,

if…then…else的then是不能省略的(除了只有一个if,没有else的情况),

case的判断可以是数字和字符串,也可以是它们组成的list,但不支持变量和表达式 如果有很多判断语句,用cond代替if…then…else组合,代码比较清晰而且执行效率比较高,下面的两种代码是等效的。

把最可能出现的情况放在最前面,如果出现的几率都一样,把计算量最大的放在最后面,这样可以有效的提高代码效率。

cond(

( condition1 exp11 exp12 ... )

( condition2 exp21 exp22 ... )

( condition3 exp31 exp32 ... )

...

( t expN1 expN2 ... )

) ; cond

if condition1 then exp11 exp12 ...

else if condition2 then exp21 exp22 ...

else if condition3 then exp31 exp32 ...

...

else expN1expN2 ....

for和foreach是循环控制语句,for和C语言中的基本一样,foreach经常用于对list 的每个元素作循环操作,每个循环依次把各个元素的值赋给一个变量,如下面的例子,你会注意到foreach的返回值是循环的list

rectCount = lineCount = polygonCount = 0

shapeTypeList = '( "rect" "polygon" "rect" "line" )

foreach( shapeType shapeTypeList

case( shapeType

( "rect" ++rectCount )

( "line" ++lineCount )

( "polygon" ++polygonCount )

( t ++miscCount )

) ;case

) ; foreach

=> ( "rect" "polygon" "rect" "line" )

4. Skill语言中常用知识汇总列表

上面对skill语言作了一个大概的介绍,当然学习skill需要了解的很多,这里就不再一一作详细的介绍了,只是对一些需要注意的地方做一下总结,具体的还是要学习User Guide

1)Skill中的特殊字符(除了字母数字以及_ 以外的其他字符)都有各自的含义,见下表,如果要用到这些字符的话,用\ 可以去掉其特殊含义。

2)Skill支持多种数据类型,除了基本整数型、浮点型、字符串、数组之外,还有灵活的List,用来表示一个数据的集合体,symbol相当与C语言中的变量,但是它有比变量更多的用法,对于输入输出有I/O port类型,具体如下表:

3)Skill的数字表示,除了科学计数法(如:1.1e6 )外,还可以再数后面加一比例因子,如:5.5u = 5.5e-6,具体见下表:

4)关于Skill的自定义函数

定义方法:a. 大部分自定义函数用procedure就够了,如:

procedure( trAdd( x y )

printf( "Adding %d and %d ... %d \n" x y x+y )

x+y

) => trAdd 定义函数trAdd

trAdd( 6 7 ) => 13 调用函数trAdd

b. lambda用来定义一个没有函数名的函数,它在一些很小的函数里很方便,例如:signalList = '(

( nil strength 1.5 )

( nil strength 0.4 )

( nil strength 2.5 )

)

sort( signalList

'lambda( ( a b ) a->strength <= b->strength )

;定义一个用来按signalList的strength属性排序的内置函数,它没有具体的函数名

)

参数:函数的参数是在调用函数时用来传递一定的参数,Skill的参数除了基本的参数传递功能外,还有其他的@option来控制参数传递的方法:

@rest, 调用函数时允许任意多个参数传递给函数,

procedure( trTrace( fun @rest args )

let( ( result )

printf( "\nCalling %s passing %L" fun args )

result = apply( fun args )

printf( "\nReturning from %s with %L\n" fun result )

result

) ; let

) ; procedure

调用函数及返回结果:

trTrace( 'plus 1 2 3 ) => 6 ;返回值

=>Calling plus passing (1 2 3)

Returning from plus with 6

@optional, 可以传递一个可选参数,否则会用默认值,

procedure( trBuildBBox( height width @optional

( xCoord 0 ) ( yCoord 0 ) )

list(

xCoord:yCoord ;;; lower left

xCoord+width:yCoord+height ) ;;; upper right

) ; procedure

调用函数及返回结果:

trBuildBBox( 1 2 ) => ((0 0) (2 1))

trBuildBBox( 1 2 4 ) => ((4 0) (6 1))

trBuildBBox( 1 2 4 10) => ((4 10) (6 11))

@key,可以指定参数是如何传递的,应此调用是参数的顺序不固定

procedure( trBuildBBox(

@key ( height 0 ) ( width 0 ) ( xCoord 0 ) ( yCoord 0 ) )

list(

xCoord:yCoord ;;; lower left

xCoord+width:yCoord+height ) ;;; upper right

) ; procedure

trBuildBBox() => ((0 0) (0 0))

trBuildBBox( ?height 10 ) => ((0 0) (0 10))

trBuildBBox( ?width 5 ?xCoord 10 ) => ((10 0) (15 0))

其中@key和@optional不能同时出现在一个函数的定义中,另外的情况可以组合在一起:procedure(functionname([var1 var2 ...]

[@optional opt1 opt2 ...]

[@rest r])

..

)

procedure(functionname([var1 var2 ...]

[@key key1 key2 ...]

[@rest r])

..

)

局部变量,Skill中的变量默认都是全局变量,为了避免命名冲突,要尽量减少全局变量的使用,而采用局部变量。Skill可以用let和prog定义局部变量,如下面的例子:procedure( trGetBBoxHeight( bBox )

let( ( ( ll car( bBox ) ) ( ur cadr( bBox ) ) lly ury )

lly = cadr( ll )

ury = cadr( ur )

ury - lly

) ; let

) ; procedure

局部变量默认初始化为nil,当然也可以初始化为别的值或表达式,表达式中不能有别的局部变量,prog和let的区别在于,prog支持函数go和return,可以显示的循环和返回多个值,而let返回值是最后一个表达式的值,例子的返回值是ury –lly. 除了有必要用prog,一般用let,更加简洁快速。

5)Skill的算术逻辑操作

Skill含有众多的算术逻辑操作符,如下表,各种操作符的优先级从高到低排列,一般数据访问操作优先级最高,其次是一元操作符,二元操作符优先级最低,每个运算符都有对应的函数。

Skill还定义了不少预定义的函数,直接调用它们,不仅方便,而且运算的效率更高,下面是一些预定义函数的列表:

SKILL和C语言在算术逻辑操作上的区别:

Skill中增加了幂级数运算符(**).

C语言中的取模运算符“%” 由函数mod代替,如mod( i j ).

C中的条件表达式的三元算符“?” “:” ,在Skill中没有类似的操作符,可以用

if/then/else 控制结构来代替。

Skill不支持C中的指针和地址算符“*” and “&”.

按位操作符增加了函数nand (~&), nor (~|), and xnor (~^).

逻辑表达式的返回值是nil或者一个non-nil的值(通常是t),它取决于表达式计算的结果是false还是true.

Skill有很多判定函数,用来判断数据的类型,结构等等,他们大都是以p结尾,如下面两个表是常见的判定函数

6)Skill中的格式化输出,printf和fprintf可以对输出结果先作一定的处理,然后再以一定的格式输出,如0.000005表示成5e-6,更简单易读。

7)Skill中的List操作总结,List是Skill中最重要的数据结构,对于List相关的操作也十分丰富,方便用户对List及其元素的各种操作,如建立、访问、排序、删除、搜索、转换等等,下表是部分操作的一个简介,具体详细介绍可以参考User Guide中的Advanced List Operations.

5. Skill程序实例解析

下面以一个PutOnGrid.il的实例,来具体分析一个Skill程序,这个程序是用来把不在格点上的图形,移到格点上,这里对每段代码都作了详细的解释,大家可以作个参考。

/*******这里是多行注释开始标志,程序的开始一般写上一些介绍的信息,结束为******/

/* 我们画45度的path线时,中心线的点在格点上,拐角处图形肯定不在格点上,本程序是通过把path转换成polygon,再对polygon的点做处理,CIW中load此程序,选中off grid图形,运行PutOnGrid(Grid), Grid工艺规定的最小格点,如0.005 */

;这里是单行注释,到行尾

;定义OnGrid函数

procedure( OnGrid( Point ) ;用procedure定义函数OnGrid

if( listp(Point) then

;如果Point是list的话,对list的每个元素递归重复OnGrid()函数,

;lambda定义一个没有函数名的函数

;mapcar函数用来根据一定的函数转换一个list,这里用递归的方法保留原来list的结构

else

;如果是一个数字的话,则通过Point/Grid取整,然后再乘以Grid,使图形的每个点移到格点上 round((Point/Grid))*Grid

);if then … else 语句结束

);procedure

;定义PutOnGrid函数

procedure( PutOnGrid( Grid )

let((SelectObj ) ;定义局部变量

SelectObj = geGetSelSet() ;版图中选定图形的函数,返回包含所有选中图形信息的一个list foreach( Object SelectObj ;循环对每个选定的图形操作

cond(

(Object~>objType == "path" ;判定图形的类型是不是path

Polygon = leConvertShapeToPolygon(Object) ;path转成polygon

;Polygon对应的points属性(是一个list)中每个元素通过OnGrid函数移动到格点上,

;然后把转换后的list重新赋给Polygon~>points属性

Polygon~>points = OnGrid(Polygon~>points)

)

(Object~>objType == "polygon" ;判定图形的类型是不是polygon

Object~>points = OnGrid(Object~>points)

)

(Object~>objType == "rect" ;判定图形的类型是不是rect

;需要改变的是rect的bBox属性(这里和polygon的points不同)

Object~>bBox = OnGrid(Object~>bBox)

)

(Object~>objType=="inst" || Object~>objType=="mosaic"

;判定图形的类型是不是inst/mosaic,这里改变的是inst/mosaic的xy坐标

Object~>xy = OnGrid(Object~>xy)

)

);cond ;你可以加上其他的情况

);foreach

);let

);procedure加上关键词结尾的注释是个良好的习惯

程序的主要代码就是上面的这些,如果你还想要更方便的图形界面方式,一个快捷键就可以操作的话,可以参考Cadence User Interface中的Form相关的内容。

网页设计与开发第1章试卷及答案

《网页设计与开发第1章》试卷 一、选择题 1.HTML指的是( A )。 A超文本标记语言(Hyper Text Markup Language) B家庭工具标记语言(Home Tool Markup Language) C超链接和文本标记语言(Hyperlinks and Text Markup Language) D超文本传输协议 (Hypertext transfer protocol) 答案: A 2.web标准的制定者是( B )。 A 微软 B万维网联盟(W3C) C网景公司(Netscape) D IBM公司 答案: B 3.通常网页的首页被称为( A )。 A.主页 B.网页 C.页面 D.网址 答案: A 4.网页的基本语言是( C )。 A.JavaScript B.VBScript C.HTML D.XML 答案: C 5.网页在Internet 上是通过URL来指明其所在的位置的,每个不同的网页都应该有不同 的URL,比如263网站主页的URL就是( A )。 A. B.\\ C. D.mailto: 答案: A 6.下列不属于Macromedia公司产品的是( D )。 A.Dreamweaver B.Fireworks C.Flash D.Frontpage 答案: D 7.下列属于静态网页的是( A )。

A. B. C.D.答案: A 8.属于网页制作平台的是( C )。 A.photoshop B.flash C.dreamweaver D.cuteFTP 答案: C 9.要想在打开网页时弹出一个信息框,可以便用下列哪种技术实现( C )。 A.CSS技术 B.HTML技术 C.调用JavaScript D.URL 答案: C 10.以下说法中,错误的是( B )。 A.网页的本质就是HTML源代码。 B.网页就是主页。 C.使用“记事本”编辑网页时,应将其保存为 .htm 或 .html 后缀。 D.本地网站通常就是一个完整的文件夹。 答案: B 11.URL是下列( D )的简写,中文译作( )。 A.Uniform Real Locator,全球定位 B.Unin Resource Locator,全球资源定位C.Uniform Real Locator,全球资源定位 D.Uniform Resource Locator,全球资源定位 答案: D 12.下列( C )软件不能编辑html语言。 A.记事 本 B.FrontPage C.Dreamweaver D.C语言 答案: D 13.下面说法错误的是( C )。 A. CSS样式表可以将格式和结构分离

《高级语言程序设计》复习题及答案

一、选择题 1.以下叙述正确的是( ): A)在C程序中,main函数必须位于程序的最前面 B) C程序的每行只能写一条语句 C) C语言使用库函数实现输入输出操作 D)注释中的拼写错误会影响编译结果 2、以下说法中正确的是() A) C语言程序总是从第一个的函数开始执行 B) C语言程序总是从main()函数开始执行 C)在C语言程序中,要调用的函数必须在main()函数中定义 D)C语言程序中的main()函数必须放在程序的开始部分 3、下列选项种说法正确的是( ) A)函数由声明部分和执行部分两部分组成 B)语言中main函数一定在程序的开始部分 C)C语言程序总是从第一个定义的函数开始执行 D)C程序的每行中只能写一条语句 4、设有说明:int a;float b; char c; double d; 则表达式1.3*a+2*b*c+d*(int) 2.6 值的类型为( )。 A)doubleB) char C) floatD) int 5、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 6、以下不正确的C语言标识符是( )。 A) ABC B) abc C)a_bc D) void 7、下列运算符中优先级最高的是( ) A)< B)+ C)&& D)!= 8、以下选项中属于C语言中合法关键字的是( ) A)Float B)abc C)int D)CASE 9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 10、在C语言中,要求数据必须是整型的运算符是( ) A)/ B)+ + C)!=D) % 11、若整型变量x的值为8,则下列表达式中值为1的表达式是 A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x 12、若w=1,x=2,y=3,z=4,则条件表达式“w > x? w : y< z ? y : z”的值是( ) A)4 B)3 C)2 D)1 13、有以下程序,程序运行后的输出结果是。 main() {inti=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k); }

编程语言种类及介绍

编程语言种类及其介绍 机器语言:纯粹的机器代码 汇编语言:8086汇编、Win32汇编、.NET的汇编 高级语言: Basic、Pascal、Object Pascal、C、C++、C#、Java、ASP、https://www.sodocs.net/doc/9216877425.html,、Perl、PHP、SQL、FORTRAN 、Visual Basic、Visual https://www.sodocs.net/doc/9216877425.html,、Delphi、Visual C++、C++ Builder、C# Builder、Visual Foxpro 等等 上面一排都是纯粹的编程语言,而下面一排都是经过发展过后的编程语言,下面我们对各种语言进行简单的介绍: 机器语言:机器语言是有0,1,0,1的二进制代码组成,可以有计算机直接执行。效率最高,但是通用性不强,对于不同的硬件需要不同的程序。说白了,不适合人来编程。 汇编语言:效率稍微低于机器语言,通过简单的助记符来替代繁琐而枯燥的0,1代码。同样的通用性不强,对于不同的硬件需要设计不同语言。学习曲线比较大,需要硬件知识很多。介于其特殊的性质,在某些行业中得到广泛的应用。 高级语言:通过人类可以识别的自然语言(主要是英语)来进行编程,效率再次降低,但是程序编制难度和可读性大幅提高。可移植性好,实用性较好。比较适合大规模开发,是现在大多数人选择的语言。而且Java语言和.NET平台的出现在一定程度上解决了由于平台的不同所导致的移植困难的情况。 ======================================= Basic 微软公司上个世纪八十年代(具体什么时候我不记得了)推出的计算机语言,当时造成了计算机软件开发世界的强烈震动,它的出现将很多程序员由枯燥的编码中解放出来,而有更多的精力来进行程序结构的开发。(因为我很早前曾经学习过这个语言,对其有一定程度的了解)但是,它同C、Pascal语言一样,是结构化语言,在对待大型开发中会觉得逐渐力不从心,程序员需要关注的内容实在太多了。其实现在来说,学习Basic已经没有什么意义了。因为它的改进版本Visual Basic和Visual https://www.sodocs.net/doc/9216877425.html,无论是在功能上还是在实用性上都大大地超过了他们的祖先。 Pascal 结构化语言,语法结构严谨,易于教学。相对于C语言,缺乏一定的灵活性。但是正是其严谨的语法,很多Pascal程序员倾心于其“诗篇一样的结构”,曾经一直是大专院校计算机专业必学的语言。它的改进版本Object Pascal和Delphi都超过了它。 Object Pascal 这是改进版的Pascal,它是面向对象的Pascal,是Delphi语言的核心。 C 上个世纪七十年代又贝尔实验室开发,当时他们是为了解决一个实际问题,将B语言改进后得到的,后来贝尔实验室又用它重写了UNIX操作系统。是所有工科学生和计算机学生必须学习的语言。它的特点很多了:贴近硬件,执行效率高,使用灵活,功能强大。但它毕竟还是结构化编程语言。在进行大型开发上显得还是有点力不从心,往往编程人员需要绞尽脑汁想出各种“精巧”的算法来实现某个目的。不过在学习操作系统和进行单片机开发上,它的作用是举足轻重的。

《高级语言程序设计》答案

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。#include int main() { int i,j,t; int max(int,int); int min(int,int); scanf("%d%d",&i,&j); if(i int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数 printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数} int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 } 3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf("%d",&n);

Cadence仿真简介

时序计算和Cadence仿真结果的运用 中兴通讯康讯研究所EDA设计部余昌盛刘忠亮 摘要:本文通过对源同步时序公式的推导,结合对SPECCTRAQuest时序仿真方法的分析,推导出了使用SPECCTRAQuest进行时序仿真时的计算公式,并对公式的使用进行了说明。 关键词:时序仿真源同步时序电路时序公式 一.前言 通常我们在时序仿真中,首先通过时序计算公式得到数据信号与时钟信号的理论关系,在Cadence仿真中,我们也获得了一系列的仿真结果,怎样把仿真结果正确的运用到公式中,仿真结果的具体含义是什么,是我们正确使用Cadence仿真工具的关键。下面对时序计算公式和仿真结果进行详细分析。 二.时序关系的计算 电路设计中的时序计算,就是根据信号驱动器件的输出信号与时钟的关系(Tco——时钟到数据输出有效时间)和信号与时钟在PCB上的传输时间(Tflytime)同时考虑信号驱动的负载效应、时钟的抖动(Tjitter)、共同时钟的相位偏移(Tskew)等,从而在接收端满足接收器件的建立时间(Tsetup)和保持时间(Thold)要求。通过这些参数,我们可以推导出满足建立时间和保持时间的计算公式。 时序电路根据时钟的同步方式的不同,通常分为源同步时序电路(Source-synchronous timing)和共同时钟同步电路(common-clock timing)。这两者在时序分析方法上是类似的,下面以源同步电路来说明。 源同步时序电路也就是同步时钟由发送数据或接收数据的芯片提供。图1中,时钟信号是由CPU驱动到SDRAM方向的单向时钟,数据线Data是双向的。 图1

图2是信号由CPU 向SDRAM 驱动时的时序图,也就是数据与时钟的传输方向相同时 的情况。 Tsetup ’ Thold ’ CPU CLK OUT SDRAM CLK IN CPU Signals OUT SDRAM Signals IN Tco_min Tco_max T ft_clk T ft_data T cycle SDRAM ’S inputs Setup time SDRAM ’S inputs Hold time 图2 图中参数解释如下: ■ Tft_clk :时钟信号在PCB 板上的传输时间; ■ Tft_data :数据信号在PCB 板上的传输时间; ■ Tcycle :时钟周期 ■ Tsetup’:数据到达接收缓冲器端口时实际的建立时间; ■ Thold’:数据到达接收缓冲器端口时实际的保持时间; ■ Tco_max/Tco_min :时钟到数据的输出有效时间。 由图2的时序图,我们可以推导出,为了满足接收芯片的Tsetup 和Thold 时序要求,即 Tsetup’>Tsetup 和Thold’>Thold ,所以Tft_clk 和Tft_data 应满足如下等式: Tft_data_min > Thold – Tco_min + Tft_clk (公式1) Tft_data_max < Tcycle - Tsetup – Tco_max + Tft_clk (公式2) 当信号与时钟传输方向相反时,也就是图1中数据由SDRAM 向CPU 芯片驱动时,可 以推导出类似的公式: Tft_data_min > Thold – Tco_min - Tft_clk (公式3) Tft_data_max < Tcycle - Tsetup – Tco_max - Tft_clk (公式4) 如果我们把时钟的传输延时Tft_clk 看成是一个带符号的数,当时钟的驱动方向与数据 驱动方向相同时,定义Tft_clk 为正数,当时钟驱动方向与数据驱动方向相反时,定义Tft_clk 为负数,则公式3和公式4可以统一到公式1和公式2中。 三.Cadence 的时序仿真 在上面推导出了时序的计算公式,在公式中用到了器件手册中的Tco 参数,器件手册中 Tco 参数的获得,实际上是在某一种测试条件下的测量值,而在实际使用上,驱动器的实际 负载并不是手册上给出的负载条件,因此,我们有必要使用一种工具仿真在实际负载条件下 的信号延时。Cadence 提供了这种工具,它通过仿真提供了实际负载条件下和测试负载条件 下的延时相对值。 我们先来回顾一下CADENCE 的仿真报告形式。仿真报告中涉及到三个参数:FTSmode 、

Cadence元件库介绍

Cadence ORCAD CAPTURE元件库介绍 - Cadence OrCAD Capture 具有快捷、通用的设计输入能力,使Cadence O rCAD Capture 线路图输入系统成为全球最广受欢迎的设计输入工具。它针对设计一个新的模拟电路、修改现有的一个PCB 的线路图、或者绘制一个HDL 模块的方框图,都提供了所需要的全部功能,并能迅速地验证您的设计。OrC AD Capture 作为设计输入工具,运行在PC 平台,用于FPGA 、PCB 和C adence? OrCAD? PSpice?设计应用中,它是业界第一个真正基于Windows 环境的线路图输入程序,易于使用的功能及特点已使其成为线路图输入的工业标准。 本文介绍在Cadence OrCAD Capture 设计的时候,在不同的元件库中,包含的元件资料,都是介绍Cadence OrCAD Capture 本身自带的元件库,所以大家在自己的软件中,都可以看到,方便的选择自己的元件了 AMPLIFIER.OLB 共182个零件,存放模拟放大器IC,如CA3280,TL027C,EL4093等。 ARITHMETIC.OLB 共182个零件,存放逻辑运算IC,如TC4032B,74LS85等。 ATOD.OLB 共618个零件,存放A/D转换IC,如ADC0804,TC7109等。 BUS DRIVERTRANSCEIVER.OLB 共632个零件,存放汇流排驱动IC,如74LS244,74LS373等数字IC。 CAPSYM.OLB 共35个零件,存放电源,地,输入输出口,标题栏等。 CONNECTOR.OLB 共816个零件,存放连接器,如4 HEADER,CON AT62,RCA JACK等。 COUNTER.OLB 共182个零件,存放计数器IC,如74LS90,CD4040B。 DISCRETE.OLB 共872个零件,存放分立式元件,如电阻,电容,电感,开关,变压器等常用零件。 DRAM.OLB 共623个零件,存放动态存储器,如TMS44C256,MN41100-10等。

网站开发用什么语言好

网站开发用什么语言好 目前,大大小小的企业都想借助网络这股东风把自己做大做强。这给了网站建设者们一个发展的机会,很多年轻人凭着对计算机技术的想往,都想进入IT领域大展身手。可是对于初学者,像网站开发用什么语言好这样的问题,也会难倒不少人。 现在可以做网站的语言有很多,我们经常碰到的就有ASP、PHP 和https://www.sodocs.net/doc/9216877425.html,等等。每个商业发达的大都市都有网站建设公司,各个开发者所采用否认网站开发语言也不尽相同。面对如此纷繁的网络公司和网站开发语言,企业在做网站的时候如何选择呢?网站开发用什么语言好? 虽然现在很多公司都纷纷建设了自己的网站,但是大约80%以上的网站是经年累月的没有更新的。小编建议,如果网站更新不频繁,可以采用HTML语言建设网站可以大大降低网站设计制作的成本。因为HTML语言安全性高、加载速度快,非常有利于搜索引擎爬行抓取网站内容等等。另外,由于它的跨平台性,基本上所有的网页运行环境都可以支持。 小编建议,如果网站内容太多的话,就需要更大存取更快速的数据库。比如很多网站建设公司采用的ASP语言标配ACCESS数据库,就

是一个非常小型的网站数据库。一旦存储数据超过极限或者网站数据库超过50M,其读写存取性能就会大幅度减低。所以ACCESS数据库只适合小型网站,ASP语言也只适合一把的企业网站开发制作。 网站建设开发语言的选择应该根据网站的类型而定,而网站的安全是多数企业在制作网站是特别关注的重点。我们平时只要稍微留心就会发现,一些银行、金融和保险基金等银信系统的网站,多半采用JSP开发,其主要原因是JSP安全性能很高。但是由于其高昂的开发费用,并不适合一般的企业网站建设采用。所以,如果想要用JSP语言,就一定要考虑资金因素。 其实,PHP由于其开源特性受到了很多技术人员的青睐,其安全性相对较高,世界上大约70%的网站都是PHP开发制作。PHP还有一个很明显的优势,是其开发成本相对较低,相对而言性价比颇高。所以,PHP开发语言还是比较普遍采用的。 网站开发用什么语言好?各个网站开发语言各有优劣。小编从多年的教学经验和企业需求出发建议,不同的网站适合不同类型的语言。适合自己的,就是最好的。 (ps:本文章由北大青鸟广安门校区搜集自互联网)

Cadence元件库介绍

Cadence元件库介绍 AMPLIFIER.OLB共182个零件,存放模拟放大器IC,如CA3280,TL027C,EL4093等。ARITHMETIC.OLB共182个零件,存放逻辑运算IC,如TC4032B,74LS85等。 ATOD.OLB共618个零件,存放A/D转换IC,如ADC0804,TC7109等。 BUS DRIVERTRANSCEIVER.OLB共632个零件,存放汇流排驱动IC,如74LS244,74LS373等数字IC。CAPSYM.OLB共35个零件,存放电源,地,输入输出口,标题栏等。 CONNECTOR.OLB共816个零件,存放连接器,如4HEADER,CON AT62,RCA JACK等。COUNTER.OLB共182个零件,存放计数器IC,如74LS90,CD4040B。 DISCRETE.OLB共872个零件,存放分立式元件,如电阻,电容,电感,开关,变压器等常用零件。DRAM.OLB共623个零件,存放动态存储器,如TMS44C256,MN41100-10等。 ELECTRO MECHANICAL.OLB共6个零件,存放马达,断路器等电机类元件。 FIFO.OLB共177个零件,存放先进先出资料暂存器,如40105,SN74LS232。 FILTRE.OLB共80个零件,存放滤波器类元件,如MAX270,LTC1065等。 FPGA.OLB存放可编程逻辑器件,如XC6216/LCC。 GATE.OLB共691个零件,存放逻辑门(含CMOS和TLL)。 LATCH.OLB共305个零件,存放锁存器,如4013,74LS73,74LS76等。 LINE DRIVER RECEIVER.OLB共380个零件,存放线控驱动与接收器。如SN75125,DS275等。MECHANICAL.OLB共110个零件,存放机构图件,如M HOLE2,PGASOC-15-F等。MICROCONTROLLER.OLB共523个零件,存放单晶片微处理器,如68HC11,AT89C51等。MICRO PROCESSOR.OLB共288个零件,存放微处理器,如80386,Z80180等。 MISC.OLB共1567个零件,存放杂项图件,如电表(METER MA),微处理器周边(Z80-DMA)等未分类的零件。 MISC2.OLB共772个零件,存放杂项图件,如TP3071,ZSD100等未分类零件。 MISCLINEAR.OLB共365个零件,存放线性杂项图件(未分类),如14573,4127,VFC32等。MISCMEMORY.OLB共278个零件,存放记忆体杂项图件(未分类),如28F020,X76F041等。MISCPOWER.OLB共222个零件,存放高功率杂项图件(未分类),如REF-01,PWR505,TPS67341等。MUXDECODER.OLB共449个零件,存放解码器,如4511,4555,74AC157等。 OPAMP.OLB共610个零件,存放运放,如101,1458,UA741等。 PASSIVEFILTER.OLB共14个零件,存放被动式滤波器,如DIGNSFILTER,RS1517T,LINE FILTER等。PLD.OLB共355个零件,存放可编程逻辑器件,如22V10,10H8等。 PROM.OLB共811个零件,存放只读记忆体运算放大器,如18SA46,XL93C46等。REGULATOR.OLB共549个零件,存放稳压IC,如78xxx,79xxx等。 SHIFTREGISTER.OLB共610个零件,存放移位寄存器,如4006,SNLS91等。 SRAM.OLB共691个零件,存放静态存储器,如MCM6164,P4C116等。 TRANSISTOR.OLB共210个零件,存放晶体管(含FET,UJT,PUT等),如2N2222A,2N2905等。

各种编程语言介绍 一

各种编程语言介绍一 各种语言的介绍 Table of contents[showhide] 1各种语言的介绍(第二版) 1.1各种语言的选择 1.2各种语言的选择 2我为什么选择了python 3ruby吸取了所有语言精华的语言第二版4 ruby和python的比较 4.1 python和ruby的相同点 4.2和python相比ruby的优点 4.3和python相比ruby的不足 4.4 python和ruby的语言的选择 5 php有什么好处 6 ada语言草述 7多脚本语言的大统一及疑问 https://www.sodocs.net/doc/9216877425.html,介绍 https://www.sodocs.net/doc/9216877425.html,所实现的java的功能 https://www.sodocs.net/doc/9216877425.html,未实现的java功能 https://www.sodocs.net/doc/9216877425.html,实现的java不具备的功能

8.4相对vs6的改进 9 xml各种技术介绍 10最先进得xml格式图形界面程序开发工具-xul 11最接近人类语言的编 程语言-rebol 12一个小巧强大的脚本语言lua 13最具有现代感的lisp解释 器drscheme 14 discuss 15 eiffel语言印象 16 mozart oz语言 17各种语言的选择和语言之间的关系 17.1一般是使用什么软件,就用什么软件的语言 17.2然后看处理什么样类型的数据 17.3从语言特点来说 17.4 c语言是最普及的语言,但c语言有一些缺点,因此,就产生了很多 改进c的语言 17.5关于图形用户界面的选择 17.6 discuss 18文学编程和CWEB介绍 各种语言的介绍(第二版) 2002-04-12新增内容: 除了汇编语言外,c是最接近系统底层的语言,因此它是大部分程序的编 程语言。c的缺点是没有统一的函数库,标准不统一,因此,同样是c程序员,相互看不懂代码是很平常的事。 ada的出现就是为了解决统一标准的问题。有一个国际组织专门进行严格ada语言的认证来保证ada的统一。因此,ada编译器有很多种,但ada语言程序用任何ada编译器编译都能通过。同时,ada的执行程序的效率和c比较接近。有人说比c要快,我想不可能,除非c用的库有问题。ada比c排错能力

10个比较受欢迎的编程语言简介

10个比较受欢迎的编程语言简介 编程语言一直是开发人员最为熟悉的开发工具,当然,很多计算机开发人员也不仅只会一种编程语言,但是对于一个新手该怎么选择啦,今天就给大家介绍一下目前市场上比较流行的10种开发语言,希望你给读者带来一些基础的认识。毕竟在移动互联网时代,如果你能够熟练掌握至少一种语言,那么你今后肯定能在IT领域找到一份高薪的工作。 Java Java被认为是最最适合开发者和程序员学习的。当下,它是被使用最多的编程语言,并且在AndroidOS开发语言中再一次夺魁。Java非常适合运用于移动设备平台,企业层用途,制作电脑应用程序,还有开发制作基于安卓平台的智能手机和平板电脑的App应用程序。 PHP 互联网开发者非常应该学习PHP,PHP是一个非常有名的编程语言,对开发者和程序员非常有价值。借助PHP的帮助,你可以很轻松的扩展一个webapp。其实PHP是很多强大CMS (内容管理系统)的基石,比如说美国着名的微博和博客网站WordPress的CMS。 JavaScript

当你准备扩展你的网页的时候,JavaScript一定会极大地帮助你。你可以利用JavaScript中各种各样的样式框架做出极好体验的UI(用户操作界面)。掌握JavaScript 才可以制作出效果优异的交互式网页。JavaScript被大量应用在网页动画,图片读取标志,页面脚本,还有制作交互UI。 Python Python可谓是一个多功能多用途的编程语言。学了Python,你将有能力拓展到网页应用,数据分析,UI设计等等。相比之下较大规模的公司才会运用Python来帮助他们分析评估大数据。所以学习Python工程师可谓是前程似锦。 Objective-C 如果你对iOS开发具有着浓厚的兴趣,建议你还是开始学习Objective-C,并且你要足够了解它才能开始你的iOSApp研发之路。除此之外,Objective-C语言还是最受网页工程师 欢迎的语言之一。如果你已经熟练掌握了Objective-C,你就可以使用Xcode以较快的速度来开发你所向往的iOSApp! Ruby Ruby也是一个很受欢迎的编程语言,它非常易学,而且非常强大、简洁。如果你手里的时间并不充裕,但是你对编程很感兴趣或者总是想制作些什么,Ruby一定是你最佳选择。Ruby被大量应用在众多的网页编程中,因此它也被刚起步的互联网公司视为一个不错的选择。 Perl Perl也是一个被很多人所熟知的编程语言,它提为系统程序设计提供了一些特殊的工具。尽管Perl在用起来的时候容易让人迷惑,但它的的确确非常强大,Perl在现阶段非常适合学习,学习它定会刷新你对这个领域的认知。Perl主要被运用在网页制作、网页应用上、 计算机应用和系统管理、数据库自动化测试等领域。 C、C++和C# C语言是一个很独特的编程语言,它是计算机语言里中年岁最长的,市面上大多数不同 的软件都是利用它编写出来的。C++在C语言的基础上有一些进步,C++被大量运用在加速游戏速度上。对于性能强大的计算机应用或者移动端应用,C++是一个理想的选择。C++是目前为止最强大的编程语言,一些至关重要的操作系统都采用的是C++,比如我们最熟知的微软的windows系统就是基于C++开发。 在了解C语言和C++之后,我们可以进一步的了解一下C#语言了。如果你掌握C语言和 C++的话,学习使用C#并不会很难。C#实际上是微软的应用程序和服务端的主要语言。如果你需要执行运用。Net和ASP,你必须要熟练掌握C#语言。 SQL

cadence工具介绍

标签:cadence工具介绍 cadence工具介绍 主要是cadence的常用工具: (一)System & Logic Design & Verification 1、SPW:系统仿真工具,与matlab相似,但是比其专业,用于系统建模,常用于通信系统2、Incisive: 就是大家最常用的nc_verilog, nc_sim, nc_lauch,以及ABV,TBV的集合,仿真和验证功能很强大 (二)Synthesis & Place & Route 1、BuildGates:与DC同期推出的综合工具,但是在国内基本上没有什么市场,偶尔有几家公司用2、RTL Complil er:继BuildGates之后的一个综合工具,号称时序,面积和功耗都优于DC,但是仍然无法取代人们耳熟能详的DC 3、Silicon Ensemble & PKS: 硅谷早期做物理设计的工程师,几乎都用它。是第一个布局布线工具4、First Encount er & SoC Encounter: 继SE以后的很好的P&R工具,但是盗版太少,所以也只有大公司能用且都用,但是目前astro在国内有赶超之意5、Cetlic :噪声分析工具,权威6、Fire&Ice: 分布参数提取工具,国内很多人用synopsys的StarRC 7、VoltageStrom:静态功耗和动态功耗分析的很不错的工具,与s 的Power Complier相同。8、SingnalStrom:时序分析工具,唯一一个能建库的工具9、nanoroute : 很强大的布线器喔,但是不是一般人能用的到的。我也是在cadence实习的时候爽过的,比astro快十倍不止。 (三)custom IC Design 1、Virtoso:版图编辑工具,没有人不知道吧,太常用了,现在还有一个公司的laker 2、diva, dracula, assura: 物理验证工具,用的比较普遍,但是calibre是标准,很多公司都是用其中的一个和calibre同时验证,我好可怜,现在只能用herculus (四)数模混合信号设计这部分太多了,但是一个ADE的环境基本上都能包括,不细说了,打字都打累了(五)PCB A llego最为典型了,很多大公司都用的。 系统分类: 软件开发 | 用户分类: IC设计 | 来源: 原创 | 【推荐给朋 友】 | 【添加到收藏夹】 Cadence 是一个大型的EDA 软件,它几乎可以完成电子设计的方方面面,包括ASIC 设计、FPGA 设计和PCB 板设计。Cadence 在仿真、电路图设计、自动布局布线、版图设计及验证等方面有着绝对的优势。Cadence 包含的工具较多几乎包括了EDA 设计的方方面面。下面主要介绍其产品线的范围。 1、板级电路设计系统。 包括原理图输入、生成、模拟数字/混合电路仿真,fpga设计,pcb编辑和自动布局布线mcm电路设计、高速pcb版图的设计仿真等等。包括: A、Concept HDL原理图设计输入工具, 有for NT和for Unix的产品。

PHP网站开发语言技术特点及优势

1、跨平台特性:PHP语言可以运行于Linux、FreeBSD、OpenBSD、Solaris Unix、AIX、Darwin、Windows 等多种操作系统,通常说的LAMP指的就是Linux、Apache、MySQL、PHP/Perl/Python。 2、数据库支持:PHP支持多种主流与非主流的数据库,如:、Adabas D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MySQL、Microsoft SQL Server、Solid、Sybase、ODBC、oracle、oracle 8、PostgreSQL 等。 3、安全性:加密支持,PHP4实现了完整的加密, 这些加密功能是一个完整的mycrypt库,并且PHP 支持哈希函数。Blowfish,TripleDES,MD5,并且SHA1 也是可使用的一些加密算法。使用PHP语言运行Linux、FreeBSD、OpenBSD、Solaris Unix操作系统,不需安装任何杀毒软件及补丁,安全可靠. 4、扩展性:扩充了API 模块:PHP 为扩展的API 模块的提供了扩展PHP接口模块, 济南网站建设认为它比旧的API 版本显著地快。PHP 模块已有的及最常用的接口多数被转换到使用这个扩展的接口; 另外,PHP属于开源软件,其源代码完全公开,任何程序员为PHP扩展附加功能非常容易使PHP有很好的发展空间和扩展性. 5、执行速度快:PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页比CGI、Perl和ASP更快,这是它的第一个突出的特点;内存方面,PHP 能更有效的使用内存, 导致较少的内存占用消耗,这主要归功于引用计数技术的实现。 6、可移植性:PHP 写出来的Web 后端CGI 程序,可以很轻易的移植到不同的操作系统上。例如,先以Linux 架的网站,在系统负荷过高时,可以快速地将整个系统移到SUN 工作站上,不用重新编译CGI 程序。面对快速发展的Internet,这是长期规划的最好选择。 7、功能全面性。PHP包括图形处理、编码与解码、压缩文件处理、XML解析、支持HTTP的身份认证、Cookie、POP3、SNMP等。可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。从对象式的设计、结构化的特性、数据库的处理、网络接口应用、安全编码机制等,PHP几乎涵盖了所有网站的一切功能。 8、可伸缩性。传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进web服务器(比如mod_perl,JSP),PHP就可以以这种方式安装。内嵌的PHP可以具有更高的可伸缩性。 9.要发挥php语言的优势,Linux+Apache+MySQL+PHP.被称为“黄金组合”。 10、国内排名前十名的网站中使用PHP的有8家:百度、腾讯网、新浪、搜狐、网易、淘宝、雅虎中国、Tom在线,易趣(ebay)。国内近两年新推出的网站中,有80%使用PHP开发。Alexa中文网站500强中,394家以上的网站应用着PHP技术. PHP不会像因为被合作商限制、更多的免费及共享的特性大大降低使用的成本及扩展性。

EViews编程的各种表达语言

EViews编程2 15.1 EViews基本操作命令简介2 15.1.1工作文件的基本操作2 15.1.2 建立工作对象5 15.1.3 样本区间(sample)5 15.1.4 序列(series)6 15.1.5 数组(group)8 15.1.6Alpha序列(alpha)8 15.1.7 数值映射(Valmap)9 15.1.8 数据导入与导出9 15.1.9 数据库的基本操作10 15.2 矩阵与函数运算11 15.2.1 矩阵、对称矩阵、向量、标量11 15.2.2 数学运算符号14 15.2.3 数学运算函数15 15.2.4 时间序列函数15 15.2.5 描述统计函数16 15.2.6 三角函数17 15.2.7 统计分布函数17 15.3 描述统计与统计推断18 15.3.1 单变量描述统计18 15.3.2 多元描述统计21 15.3.3 假设检验23 15.3.4 方差分析25 15.4 单方程计量模型25 15.4.1 模型的设定25 15.4.2 模型的估计方法26 15.4.3 方程中的基本统计量28 15.4.4 提取方程的预测值或残差序列29 15.4.5 方程特征的观察29 15.4.6 方程的设定检验30 15.4.7 分布滞后模型的设定30 15.5联立方程模型31 15.5.1 系统的建立31 15.5.2 系统的设定31 15.5.3 系统的估计31 15.5.4 系统估计结果中统计量/序列的提取32 15.5.5 系统特征的观察32 15.6 时间序列模型33 15.6.1 时间序列的季节调整33 15.6.2 几种常见的滤波35 15.6.3 变量的单位根检验36 15.6.4 非平稳变量的协整检验37 15.6.5 格兰杰因果关系检验38 15.6.6 VAR/VEC模型的建立38 15.7 状态空间模型41

高级语言程序设计作业及答案(2017.1)

《高级语言程序设计(https://www.sodocs.net/doc/9216877425.html,)》作业 2017.1 教学中心:新疆产业发展研究中心校外学习中心 专业层次: 高中升大专 学 号:2009 姓 名: 王 成 均 分 数: 注意事项:1. 本作业共五大题,满分100分; 2. 请将以上各项信息填写清楚,否则,作0分处理; 3. 所有答案直接做在答案栏上,做在其它地方无效。 一.判断题(如正确打√,否则,打×。) 1.源程序中的错误一般分为编译错误、运行错误和逻辑错误等三种。 2.控制台应用程序至少有一个Main 过程。 3.在程序设计语言系统中具有固定语法含义的符号串称为标识符。 4. 判别a 是否等于b ,若a=b ,则输出字符串 “a is equal to b ”的块结构条件语句为: If a=b Then WriteLine(“a is equal to b ”) End If 5. 输入结构变量的值就是输入该变量的各个元素的值。 6.若某个模块中以关键字private 定义函数过程,则该函数过程只能在该模块中使用。 7. 关键字private 用于声明私有成员。私有成员可以在类中和类外访问。 8.在程序运行期间,用户可以用文本框显示信息。文本框接受输入的内容的属性是Text 。 9.列表框ListBox 中项目的序号从1开始到Listcount 结束。 10.以数据流的方式对文本文件中的数据进行读/写操作,需要StreamReader 类和StreamWriter 类。 答案栏: 1.√ 2.√ 3.√ 4.√ 5.√ 6.× 7.√ 8.× 9.√ 10.×二.单项选择题 1.下列变量名中错误的是( )。 A. n B. 名称 C. ab# D.“年龄” 2.设X 为整型变量,不能正确表达1< X < 5的逻辑表达式是( )。 A. 1< X <5 B. X=2 or X=3 or X=4 C. 1=5) 3.设有数组说明语句:Dim c( 10) AS Integer ,则下面表示数组c 的元素选项中( )是错误的。 A. c(i-1) B. c(5+0.5) C. c(0) D. c(11) 4.在过程的形式参数前面加上关键字( ),则该参数说明为引用参数。 A. Val B. ref C. Byref D. ByVal 5. 设已定义函数过程f ,它有三个实型传值参数;设a,b 和c 为实型变量,则调用该函数的正确形式为( )。 A. f B. f( a+b, b+c ) C. f ( a+b, b+c ,c+a ) C. f a+b, b+c, c+a 6. 若使命令按钮不可见,可以设置Visible 属性的值为( )。 A. False B. True C. T D. F 7.要使单选按钮RadioButton 处于选中或未选中状态,需由( )属性来决定。 A. Show B. List C. Text D. Checked 8.要删除列表框中的某一个项目,需要使用( )方法。 (密封线内不答 题 )

【简单易懂-图文并茂】教你如何上手Cadence

Cadence使用初步简介 目录 Cadence使用初步简介 (1) 一、Cadence平台的启动: (1) 二、设计项目的建立 (4) 三、原理图设计 (10) 四、电路模拟仿真 (17) 五、版图初步 (29) 六、软件的退出 (37) 在早期的ASIC 设计中电路图起着更为重要的作用作为流行的CAD软件Cadence 提供了一个优秀的电路图编辑工具Composer。 Composer不但界面友好操作方便而且功能非常强大电路图设计好后其功能是否正确性能是否优越必须通过电路模拟才能进行验证Cadence 同样提供了一个优秀的电路模拟软件Analog Artist由于Analog Artist 通过Cadence 与Hspice 的接口调用Hspice 对电路进行模拟。但是我们的虚拟机中并没有安装Hspice软件,所以我们使用Cadence自带的仿真软件进行仿真。本章将介绍电路图设计工具Composer 和电路模拟软件Analog Artist 的设置启动界面及使用方法简单的示例以及相关的辅助文件以便大家能对这两种工具有一个初步的理解。 一、Cadence平台的启动: ①右击桌面,在弹出菜单中单击open Terminal

②在弹出的终端中输入icfb&然后按回车启动Cadence ③Cadence启动过程

④Cadence启动完成后,关闭提示信息

二、设计项目的建立 ①点击Tools—Library Manager…启动设计库管理软件 ②启动设计库管理软件

③点击File—New--Library新建设计库文件 ④在弹出的菜单项中输入你的设计的库的名称,比如MyDesign,点击OK

现在网站开发用什么语言比较多

网站建设_app开发_手机网站开发_[国互网] 现在网站开发用什么语言比较多 建设网站是一种潮流,可是建设网站一般用什么语言呢?介绍说:ASP,.NET,PHP,JSP是现在做网站最广泛的程序语言。那么一般适合做网站的那种语言比较合适呢。下面就由小编来给我们一一做解答。 关于网站开发的语言,我们先来比较下常见的四种语言吧: ASP:是微软所开发的一种后台脚本语言。开发快、易上手、效率高是ASP的优点,但是在安全隐患上,ASP存在的隐患是四种语言里最大的,其次平台的局限性也 限制了ASP的发展。 .NET:相当于ASP的升级版本,提供了一种新的编程模型结构,可以生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。但是也由于是微软的产品,那么平 台就有了限制。还有数据库的链接复杂。 PHP:是当下主流网站开发语言之一,PHP源码是完全公开的,不断的有新函数库 加入,以及不停地更新,使得PHP无论在UNIX或是WIN的平台都可以有更多新功能。它提供丰富的函数,使得在程序设计方面有着更好的资源。平台无关性以及安全就是PHP最大的优点。当然还有一些小小的缺点,但是作为应用最为广泛的一种后台语言,PHP的优点还是显于缺点。 JSP:JSP技术平台和服务器是互相独立,同PHP一样也是开放的源码。JSP出现至今已经是一门很成熟的程序语言,集成的数据源能力,易于维护,能有效的防止系 统崩溃等这些优点。无疑JSP是四种语言里最好最强大的,但是由于它的强大就决定 了其使用的技术性,所以不是一般企业网站做站语言的首选。 现在您了解了关于网站开发用什么语言了吗?上面是给大家介绍的常见的四种语言,如果你对上面的内容还有什么不清楚的,可以在线咨询。 网站建设_app开发_手机网站开发_[国互网]

相关主题