|
  
- 总资产
- 9496 晶元
- 金币
- 30 金币
|
一、EDA 1. 计算机辅助设计(Computer Aided Design, CAD)
( D j1 }' {$ X1 j9 _1 x% u 利用计算机记忆容量大和处理速度快的特长,研制出各种帮助设计者作设计的工具。面对不同的设计工作者,市场上有各种辅助设计工具,例如机械、建筑、汽车、服装、集成电路?等方面的辅助设计工具。
7 y7 V9 Z# _, ]# R 相关词汇:集成电路辅助设计、电子设计自动化。9 s% e5 p7 U: {# t5 b8 M
) [" g4 S3 }* b* L& a- @' p 2. 集成电路辅助设计(IC CAD)$ O& Z/ _; u& ~- e; m/ B6 P
面向集成电路设计的CAD工具。
" k, G" [7 X* @* W4 l6 G 相关词汇:计算机辅助设计、电子设计自动化。# Y) P$ Z$ V/ [+ R
9 }2 B. j, J* s) o 3. 电子设计自动化(Electronic Design Automation, EDA)) s2 O% r$ t2 }
集成电路CAD技术在其发展过程中,同时还形成了计算机辅助制造(Computer Aided Manufacturing, CAM)、计算机辅助测试(Computer Aided Test, CAT)和计算机辅助工程(Computer Aided Engineering, CAE)等概念。经过发展融合,形成了电子设计自动化(Electronic Design Automation, EDA)这一概念。
- |# J& f. f7 u0 O g; a 相关词汇:计算机辅助设计、集成电路辅助设计。 M4 t, A) O, k
' |: Y4 _- ~0 I( d' E% j4 ?* h6 {
4. 专用集成电路(Application Specific Integrated Circuit,ASIC)
3 h5 C! R3 @# R" c$ @" d2 @+ W 专用集成电路是相对于通用集成电路而言,它的特点是:适合于某一特定的应用领域,需要量较少但又很急需。从设计的角度看,要求尽量短的设计周期和尽量低的设计成本,而把电路的制造成本放到相对次要的地位。
& c- S; r3 I7 X( n
0 _" {8 I3 R7 A- X3 e: x0 C 5. 系统级芯片(System on a Chip, SOC)
0 R" j. e% ]2 E4 d4 l+ W 这里所说的系统是指既包含硬件也包含软件的整个系统。随着集成电路集成度的增加,已经有可能把整个系统容纳在一个芯片之内(在此之前是装配于一个机箱之内或一块印制电路板之内)。SOC技术的研究包括制造工艺和相应EDA软件的研究。! M: N* a/ D' Z( W2 b- c% H
" w' l! ~( h: C- h
6. 全定制(Full -Custom)方式
3 K) m& o9 z, ^& N 全定制方式是基于晶体管级的芯片设计,仔细考虑每个管子的尺寸、位置及管子间的互连关系,其目标是密度高、速度高和功耗小。设计完成之后交集成电路制造商生产,即所谓全定制方式。这种方式设计成本高且周期长,当需要量大或对性能要求特别高时采用。+ h C) O n1 R" o8 I% I
相关词汇:半定制方式,可编程逻辑器件。
8 V0 D7 H G; t5 `* O2 T$ K! m: @5 ?6 j$ _+ _9 a
7. 半定制(Semi-Custom)方式. D2 t" J$ [8 H5 t8 @1 V( [3 k
半定制方式通常指门阵列(Gate Array)方式。集成电路制造商预先准备好称作母片(Master Slice)的半成品,母片上以一定间距成行、成列地排列着形状、大小相同的基本单元,基本单元通常是门或成对的n管和p管(CMOS工艺)。以母片为基础,对用户的电路进行布图的方式称为门阵列方式。它是在半成品(母片)的基础上加工,因而生产周期短、生产成本低,它的缺点是:由于基本单元之间保持固定的间距用于布线,芯片面积的利用率不高。 T" q6 j9 U. q( k- K, _
相关词汇:门阵列模式,全定制方式,可编程逻辑器件。, S$ G% O" \3 m2 S- C# T
! S. m0 H2 p, C3 n3 N3 f5 ^ d 8. 可编程逻辑器件( Programmable Logic Device,PLD)
G! ^) x5 p# ^. v 集成电路制造商向市场提供已生产好并封装完毕的芯片,其逻辑功能却可以由用户自己使用EDA工具"写入"(即可编程)。从生产厂家来看,可编程逻辑器件是通用器件,可以批量生产以降低成本。从用户角度看,自己可以将设计好的电路"写入"芯片,使之成为专用集成电路,特别适合于新产品试制或小批量生产。可编程逻辑器件的缺点是:(1)芯片内部连线较长,速度相对较低。(2)集成度相对较低。
0 |" e/ v- P& h Q2 r 相关词汇:全定制方式,半定制方式。) u4 h- t* o+ ~. t
4 m4 ^" G+ z% H- q
9. 门阵列(Gate Array)模式
k4 l* y" t! _0 t( ~# U# I 集成电路制造商预先准备好称作母片(Master Slice)的半成品,母片上以一定间距成行、成列地排列着形状、大小相同的基本单元,基本单元通常是门或成对的n管和p管(CMOS工艺)。以母片为基础,对用户的电路进行布图的方式称为门阵列方式。它是在半成品(母片)的基础上加工,因而生产周期短、生产成本低,它的缺点是:由于基本单元之间保持固定的间距用于布线,芯片面积的利用率不高。
0 a4 K. N! Z7 H& u$ |3 a X! L 相关词汇:半定制方式,标准单元模式。
* J/ k0 X$ y4 d+ I9 z" _0 M) ^& {! h4 R3 Y, g$ `) x# f6 t* H
10.标准单元(Standard Cell)模式
% p' @4 x2 b* v9 }3 _* k 标准单元是预先设计好的功能单元,其外形为等高而不等宽的矩形, 连线分配在单元行之间的水平通道区或单元行的两端及单元间的垂直通道区中,通道区的高度(或宽度)可根据布线设计的需要加以调整。在这种模式下,布图软件根据用户的逻辑图从标准单元库中调出单元块放于合适位置(布局),然后自动布线,最后给出掩膜板数据。和门阵列模式相比,标准单元模式中单元行上所有单元均被利用,所以芯片面积的利用率较高。; K4 X- H! W4 H( a" Q
相关词汇:门阵列模式,积木块模式。 积木块(Building Block)模式
1 R2 t: u# E6 v6 c' W( c: `$ e) D; {
11.积木块模式与标准单元模式相比,其主要不同之点是放松了对单元块外形的限制 - 只要求其边框线是水平线或垂直线即可。这种方法提高了芯片利用率和设计方法的灵活性,但使布局布线算法复杂,增加了布图软件的困难。
$ f0 u1 e9 E+ I( ~& a$ x1 Z# f 相关词汇:标准单元模式。
' L, Y2 w0 `! q1 T8 Y8 u& Y1 J2 T8 g; O: A! a
12.硬件描述语言(Hardware Description Language, HDL)
' i& w1 J6 b/ @5 `' U 硬件描述语言是设计者和EDA工具的界面,设计者通过HDL描述自己的设计对象。HDL是人们对数字系统抽象化、模型化、形式化的产物, 用以描述设计者当前最关心的最本质的特性。次要因素经常被忽略, 以便突出主要因素。在不同的设计阶段, 设计者所关心的主要因素不同(抽象层次不同),因此HDL应当具有适应不同抽象层次的能力。 | 二、HDL 1.电路级(Circuit Level): Q% e5 C% s8 Q4 i
电路描述级别。电路级描述的对象是用晶体管及电阻、电容等组成的电路网络。电路模型是阻容等效电路。 2. 逻辑级(Logic Level):
! w `) }$ k l$ v* \* Z0 X, [$ ?0 Y 电路描述级别。逻辑模拟的对象是以门和功能块为描述电路的元件,也称为门和功能块级模拟。
; y! h% P0 T r1 N: w 3. 开关级(Switch Level):
5 Z+ `0 ]2 |! z3 o 电路描述级别。开关级描述介于电路级和逻辑级之间。用晶体管表示电路结构,但电阻和电容不作为电路元件而作为晶体管和节点的参数描述。+ F4 q. x0 E+ {: e# n
4. 寄存器传输级(Register Transfer level):. l( r% N8 l' D( r7 P q
电路描述级别。基本元件是寄存器、存储器、总线、运算单元等,并描述数据在这些元件中流动的条件和过程。 行为算法级(Behavior Level):1 Q% Y: p" |( O' }2 K" q/ B
电路描述级别。以行为算法和结构的混合描述为对象。高层次描述一般用硬件描述语言描述。
) [% R4 |4 k J2 s 5. 网表(Net List):
. F" H8 |- E3 i$ b& ~# t+ D 如果指定了每个元件各端口所连接的信号,就可以唯一确定电路连接关系。这样的的数据结构称为网表。
3 b$ c& a! z7 Z3 q, R% Z }2 o 6. 高阻状态(High Resistance):
3 W. [: i' v6 J1 A 在电路中,当晶体管截止时常出现高阻状态。它相当于把连线断开。
) d1 c1 _# l( R' m* C5 r 7. 线或(Wired Or):
/ w4 x8 f* n6 j$ ?" G 在CMOS电路中,常遇到两个或多个输出端直接连接在一起的情况,称为线或逻辑(Wired Or)。
% w6 E1 e# q/ C 8. 惯性延迟(Inertial Delay):" f6 l* Z* L, ?2 C3 k, k; J' _
当元件的输入信号宽度太窄,元件的输出端可能得不到响应。这样一种延迟特性称为惯性延迟。3 c5 I, v4 Z2 Z8 Z: ?' m" |; X
9. 传输延迟(Transport Delay):% K8 r0 ^. q6 q! e" v% b: g' r7 l5 o
与此对应的任何宽度的脉冲波形都能传播到输出端的延迟特性称为传输延迟特性。 % Q7 T8 G$ N: {4 B1 L
3 d& X* b' \6 t# X/ N/ j4 m 10.HDL(HDL):. g! S1 n2 N5 Q0 J8 V
硬件描述语言(Hardware Description Language),简称 HDL。
|- U, P9 z, X- ~' [: Y 11.VHDL(VHDL):, ]- |2 T1 q7 u' |
VHDL的英文全名为:VHSIC Hardware Description Language, 而VHSIC则是Very High Speed Integrated Circuit的缩写。
! d- G L% s5 r- p* b# w6 i K 12.结构描述(Structure Description):
) F7 U% `* Z0 r$ j- ] 描述该设计单元的硬件结构.即该硬件是如何构成的。主要使用配置指定语句及元件例化语句描述元件的类型及元件的互连关系。
# v& t; E( L6 i. ~. E9 \ 13.行为描述(Behavior Description):" [7 h& A( \) a8 W
描述该设计单元的功能,即该硬件能做些什么。主要使用进程语句,以算法形式描述数据的变换和传送。" ?% h2 G5 Q" G& Y( r8 X4 I
14.数据流方式描述(Data Flow Description):
% d9 b' h% V- s4 j1 `) i, I/ r 以类似于寄存器传输级的方式描述数据的传输和变换。主要使用并行的信号赋值语句,既显式表示了设计单元的行为,也隐式表示了设计单元的结构。3 l+ M5 |8 \) l" q- x; u
15.对象(Object):
( [3 q5 `& a i6 n3 L5 R0 Q% B; n VHDL有三类对象:信号、变量和常量。; P: J" S9 `% z# U) V9 `
16.属性(Behavior):
$ q) O' p, j9 |/ R; X 属性是各类项目的特征或参数。某项目的某一特定属性可以具有一个值,如果它确实具有一个值,那么该值可以通过属性名加以访问。 " O% L& e8 e" H; T" Z
17.元件例化(Component Instantiation):
" b3 v9 g8 _, m; [ 一个实体的结构体中引用某些元件,称为元件例化,用元件例化语句表示。该元件称为实例元件或例化元件。
1 \2 H! f& H+ Q' M' Y) z( ?4 I$ _ 18.进程(Pocess):
8 \; ^8 t5 N; I0 P- C 一个实体的行为可以由若干个并列的进程组成。进程内部是一段顺序执行的程序,是一个完整的行为或过程。进程之间用信号进行数据传递。进程之间为并列关系。
" Q1 B1 j9 m0 G# j5 V
; z C( y' @4 B5 s 19.被动进程语句(Passive Process Statement):
. v$ A$ L# P& V* f, N 不对任何信号赋值的进程语句称为被动进程语句。 * u( @, \& m9 S( ]) W$ l
20.进程的激活与挂起(Wake up / Suspend):
( ?4 x/ G! Z2 R3 e( F 进程有两种状态:激活与挂起。如果当前正在执行某个进程,我们则说该进程是活跃的,否则说该进程被挂起。
0 {! v) _# U6 @: o, ?% |, s 21.d延迟(d Delay):
9 H' j0 D2 q! j; K d是一个虚拟的时间,相对于模拟时钟是无穷小。
: P! _1 z3 A% y: Y+ q+ ]& O 22.信号源(Signal Source):
6 J6 E* A+ }9 |9 N; J4 r 信号源是指对该信号赋值的进程,或信号与输出端口的联结。如果一个进程中为某一个信号赋值,则称这个进程是该信号的一个源。如果信号可以通过例化语句的输出端口得到新的值,则该例化语句即为信号源。$ A& [8 z1 Z( ~! s
23.决断信号(Resovled Signal):
( y Y& r5 h# K) m 在VHDL中,具有多个驱动源的信号叫做决断信号,需要在说明信号类型时特别指明。一个决断信号必须预先给定一个与之关联的决断函数,以便在各个源的值不相同时按照决断函数的规定得到确定的值。 事项处理(Transaction):
% p0 m* H* `% q7 H' f3 d v( O) d一个进程产生某信号的一个值,是将来时刻的值,需要到该信号真正发生的时刻进行处理,称为该信号的一个事项处理。
+ @4 T6 w1 Y% Y6 a6 c, C: X 24.事件(Event):
( [/ _6 ]$ X/ J: j, Y, Y 信号值的一次变化(当前值与老值不同),称为一个事件。$ `7 E, ~; M5 W4 o) X) a
25.模拟周期(Simulation Cycle):: k v: L) K; _8 K" S
模拟过程中,为了用顺序的方法执行并行事件,需要在执行这些同一时刻事件的时候使时钟保持在同一时刻不动。当处理某一时刻的事件时,首先得到该时刻各信号的新值,然后计算各相关进程得到未来时刻的新值。随着时钟的前进,这个过程周而复始,直至模拟结束。这样的循环执行的过程称为模拟周期。 9 \1 t* _8 K$ X/ Y2 l
| 三、仿真验证 1. 仿真(Simulation):! t" p9 F% C8 l2 i& W( L5 i9 Q# B1 G
从电路的描述(语言描述或图形描述)抽象出模型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部激励信号作用下的反应来判断该电路系统是否实现预期的功能。
& B/ T" [8 H) T 2. 规则检查(Design Rule Checking):! r' ^: g3 {, f. T8 r" }2 k
分析电路设计结果中各种数据的关系是否符合设计规则。' o2 Y& e$ D+ J3 l7 i) v
3. 形式验证(Formal Verification):
0 Y/ H6 S8 u7 j% _. x5 Y) e% Z. _ 利用理论证明的方法和数学的方法来验证设计结果的正确性。形式验证基于严密的理论体系,理论上可以证明电路正确与否。
: M: [; G& H5 t' s" P 4. 逻辑模拟(Logic Simulation):* N$ g( `/ ^, `3 ]
对逻辑电路进行模拟,逻辑模拟的对象是由门和功能块等元件组成的逻辑电路。# L! g0 D0 P: v' f0 N
5. 事项处理(Transaction):& b9 w' \' {. h/ S- |
一个进程产生某信号的一个值,是将来时刻的值,需要到该信号真正发生的时刻进行处理,称为该信号的一个事项处理。; X/ ^: _/ `4 o7 `. E
6. 事件(Event):
$ ]% t/ V, I6 k! H 信号值的一次变化(当前值与老值不同),称为一个事件。
# q3 K+ E2 B; T9 g" Q) H 7. 模拟周期(Simulation Cycle):& ^& W$ _, d+ k
模拟过程中,为了用顺序的方法执行并行事件,需要在执行这些同一时刻事件的时候使时钟保持在同一时刻不动。当处理某一时刻的事件时,首先得到该时刻各信号的新值,然后计算各相关进程得到未来时刻的新值。随着时钟的前进,这个过程周而复始,直至模拟结束。这样的循环执行的过程称为模拟周期。
* G% K* ~8 o3 q" v$ F) p5 y5 e 8. 电路模型(Circuit Model):
6 N( P! {9 N' H( g7 ]1 h, Q 电路模型不用实际元件而用表示电路结构或行为的内部数据表示。在输入端施加作为外部激励波形的数据。计算机根据这些激励波形和内部电路模型计算出各点的响应,得到输出波形数据。$ `4 a }- _) n* W% { f
9. 元件调度(Schedule):
" Y: n* J! r$ x! H% `$ P2 c 模拟过程中,元件计算顺序的安排。& [' U5 I; q; e. Z. J
10.表驱动(Table Driven):
h" U4 t+ }0 G+ L& k 用专门的编译器把逻辑电路的描述转换为适当的内部表格数据,按照某种数据结构存储在计算机中,模拟过程是对表格中的数据进行查找、存取和解释执行。8 L$ q& n; x3 M1 }8 R! w, M9 l8 i+ b
11.选择追踪技术(Select and Transfer Technology):$ q: P2 ~$ `- }3 |: ~
是指在每个模拟周期中,不是对所有元件都进行计算,而是只选择输入端信号值有变化的元件进行计算。
9 N4 H4 n9 c6 p2 h4 v 12.事件(Event):* {$ X! i8 c( i7 x/ q; N
节点信号的每一次变化称为一个事件。3 u H; @" R1 M2 b2 N e
13.模拟时钟(Simulation Clock):
$ ?, P: C( T7 l+ ^ 由模拟程序设置的用于记录和控制模拟运行过程的虚拟的一个特殊变量。1 _( z7 n' P1 \1 c/ b+ I
14.事项处理冲突(Event Handling Conflict):
# ?9 y) F0 W0 X; v0 s 对于一个信号s, 设前面已安排了一个事项处理e1 = ( s, v1 , t1 )尚未处理,现在又安排了一个新事项处理e2 = ( s, v2 , t2 ),且t1 3 t2,则称发生了事项处理冲突。
$ y4 D2 r# _# c 15.惯性延迟冲突(Inertial Delay Handling Conflict):
7 M1 D' A, W0 M/ H2 R: H2 W 对于一个信号s, 设前面已安排了一个事项处理e1 = ( s, v1 , t1 )尚未处理,现在又安排了一个新事项处理e2 = ( s, v2 , t2 ),且t1 < t2,v1 1 v2 , 则称发生了惯性延迟冲突。
8 z, m3 m1 ?( x 16.三值模拟(Three-Value Simulation):
3 \; Z' n! u. }. S6 u. o$ T" Z 采用三值模型('0', '1', 'X')并能检测竞争冒险的逻辑模拟称为三值模拟。
( h- t# B* ?9 t: W) | 17.冒险(Hazard):
. @- x, k& J$ v. z 当一个逻辑门的几个输入端同时改变状态,并且其输出信号值依赖于输入信号跳变的次序,就有可能存在一个潜在的冒险。
z- O$ i: W1 h: \: Z 18.解释型模拟方式(Interpretation Simulation):5 H _3 D- t, Q2 Q
将结构描述基本保持描述风格,按内部的层次化结构模型,做成内部静态数据结构。整个电路系统由若干模块组成,模块可以嵌套,形成类树型结构。每个基本模块(叶结点)为纯行为模型。需要预先做的工作是根据配置的指定将各模块组成一个完整的电路描述。在模拟时,对这些数据分析、解释、执行,实现模拟。) C# d8 j8 e! b4 S% Y7 T
19.编译型模拟方式(Compilation Simulation):" n0 B; d' U$ Z: N
将结构描述展开成纯行为模型,并编译成作为目标语言的软件程序设计语言,然后运行该语言,实现模拟,称为编译型模拟方式。
% G, m6 H" E- F 20.高层次模拟(High Level Simulation):) M1 N$ r) e% y: g' t7 x8 c
在行为级和寄存器传输级对电路进行模拟。
. _/ q: y7 {( S% @; l7 I, v1 | 21.元件例化(Component Instantiation):: z( u: [! w, D$ _% b5 U( J8 W
一个实体的结构体中引用某些元件,称为元件例化,用元件例化语句表示。该元件称为实例元件或例化元件。 配置(Configuration):. K }! A3 k2 q# z
配置指明各例化语句所使用的模块(Entity及其某一Architecture)。7 C$ Z+ ^7 K' y0 C- a
| 四、逻辑综合 1. 逻辑综合 (Logic Synthesis) 3 e8 f0 G% |/ M# u( m1 X0 z
EDA工具把数字电路的功能描述(或结构描述)转化为电路的结构描述。实现上述转换的同时要满足用户给定的约束条件,即速度、功耗、成本等方面的要求。( B2 Q# j1 H$ \* ~1 t
2. 逻辑电路(Logic Circuit)- z. |/ `: } D) G9 }" I
逻辑电路又称数字电路,在没有特别说明的情况下指的是二值逻辑电路。其电平在某个阈值之上时看作高电平,在该阈值之下时看作低电平。通常把高电平看作逻辑值1;把低电平看作逻辑值0。
' L; m6 K0 g ]# q$ } 3. 约束(restriction)) L5 s% |% b* F& j$ I; n6 b
设计者给EDA工具提出的附加条件,对逻辑综合而言,约束条件一般包括速度、功耗、成本等方面的要求。* o* x" _2 q3 H
4. 真值表(Truth Table)
0 }1 p1 @5 S# D- n 布尔函数的表格描述形式,描述输入变量每一种组合情况下函数的取值。输入变量组合以最小项形式表示,函数的取值为真或假(1 或0)。
' {3 S6 j( o, Z- w7 t 5. 卡诺图(Karnaugh Map)
/ B4 r+ M6 _8 B/ b. n, u4 K 布尔函数的图形描述形式,图中最小方格和最小项对应,两个相邻的最小方格所对应的最小项只有一个变量的取值不同。卡诺图适合于用观察法化简布尔函数,但是当变量的个数大于4时,卡诺图的绘制和观察都变得很困难。7 P% V' _9 n% D* @" @
6. 单输出函数(Single-output Function)
9 [ w# A5 I2 s; J 一个布尔函数的单独描述。 7. 多输出函数(Multiple-output Function)0 ]- Q8 b8 m- y
输入变量相同的多个布尔函数的统一描述。. Y1 J. ]( h% t+ o
8. 最小项(Minterm) 3 g9 F; a4 @7 [6 W# t
设a1,a2,…ai,…an是n个布尔变量,p为n个因子的乘积。如果在p中每一变量都以原变量ai或反变量的形式作为因子出现一次且仅出现一次,则称p为n个变量的一个最小项。最小项在卡诺图中对应于最小的方格;在立方体表示中对应于顶点。( R4 }) l; A* U# B
9. 蕴涵项(Implicant) . b- N3 J3 V# E! [* k
布尔函数f的"与-或"表达式中的每一乘积项都叫作f的蕴涵项。例如:f=+中的乘积项和都是函数f的蕴涵项。蕴涵项对应于立方体表示法中的立方体。
6 {5 E# S8 l; L7 u! z: Y4 | 10.质蕴涵项(Prime Implicant,PI)
# v! h6 i" A" t- l 设函数f有多个蕴涵项,若某个蕴涵项i所包含的最小项集合不是任何别的蕴涵项所包含的最小项集合的子集的话,则称i为函数f的质蕴涵项。质蕴涵项对应于立方体表示法中的质立方体。
" ]1 [5 ~1 \" p2 a6 W6 k0 _- V/ h) q( {2 m) S) R0 E
11.必要质蕴涵项(Essential Prime Implicant,EPI )+ N; D* @$ L) K/ N/ X
若某个最小项只被一个质蕴涵项所包含,则称此最小项为特征最小项,包含特征最小项的质蕴涵项为必要质蕴涵项,在布尔函数最小化的过程中,必要质蕴涵项是必须选取的。必要质蕴涵项对应于立方体表示法中的必要质立方体。
# s; }& U: k. v( T3 P2 [6 R. P; y' [3 ?; ?* Z& [
12.不顾项(Don't care) 8 E" A% x' S! s6 ?0 _& l/ A
don't care的中文译名有:不顾项、任意项和随意项等,其主要含义是该最小项的取值可以是1或0中的任意一个。从化简布尔函数的角度来看,终选1还是选0取决于怎样对化简有利。4 s' } a7 U7 |/ \( W
13.完全规定的布尔函数(Completely Specified Boolean Function)
& t1 ?: t9 a' J 若某布尔函数不包含不顾项,则它是一个完全规定的布尔函数。; j+ J; Z" S, ~3 B7 ~
14.不完全规定的布尔函数(Incompletely Specified Boolean Function)
$ |: g. B' e; \8 } 若某布尔函数包含有不顾项,则它是一个不完全规定的布尔函数。
" h( J( H" t; p8 h9 n 15.立方体(Cube), R2 `) s" [6 N3 U5 h
在逻辑综合领域中,立方体是布尔函数的空间图形表示形式。设布尔函数的一般表示形式为:3 v' M, O4 e# c2 R
y=f(x1,x2,…,xi,…,xn)$ L$ m, M4 T* p: o9 n
其中y为输出变量, 为输入变量。令每一输入变量和一个坐标轴相对应,则可得到函数y的空间图形。
3 a. N6 K- [( O 16.顶点(Vertex)( q- Q, _# k6 h3 B
顶点是立方体的一种特殊情况,其输入变量取值为{0或1},其输出变量除一个取值为{0或1}之外,其余取值皆为u。也就是说,顶点只建立起输入变量和一个输出变量之间的对应关系。1 D/ c1 v* N2 H1 G0 `
17.覆盖(Cover )
6 b; B6 B/ B3 \& k 输入、输出变量相同的,逐对一致的非退化立方体集合称为覆盖。覆盖C中每一立方体所包含的每一顶点都表示了输入变量和输出变量的对应关系,因此整个覆盖C就代表了布尔函数f。" Q7 c$ q9 g3 ^9 I: J; ]- s% E
覆盖是真值表的一种扩展;而真值表则是覆盖的一种特殊情况。7 g$ m2 o1 P' x& d& f- {
7 \: J6 a- c+ d: k
18.包含(Contain)
' \7 r$ R ]1 y 若顶点v|w可由下述方法从立方体a|b中得到,则称a|b包含v|w,记作:
) p p+ q* v# G0 P v|wa|b1 L3 T' Z3 q8 b- {
(1) 把a中取值为X者适当地改为0或1。
4 A- e( z" j! N6 ?# V5 ]! b2 H S (2) b中只保留一个取值为{0或1}者,其余取值为{0或1}者皆改为u。% J9 `5 e) n0 {' C2 V6 c4 w3 U& f
若立方体c|d的每一顶点都被立方体a|b所包含,则称立方体a|b包含立方体c|d,记作;
( r5 E; Q" [7 x, N! F+ w A+ d9 j c|da|b2 b# t: W( E' N* k; g
19.面(Face) $ b8 Z% e. N% h4 t: v+ \( @# {
若立方体a|b包含立方体c|d,则称c|d是a|b的一个面。2 u7 r" S. h7 J8 Z2 [6 p
20.相交运算(intersection)
2 x) N1 M D& ` 单输出函数的立方体a和立方体c的"交"是它们的公共顶点所组成的立方体。多输出函数的立方体a|b 和立方体c|d的"交"是单输出函数"交"运算的扩展,但多输出函数的"交"运算不再具有"公共顶点"的含义。我们只把它看作一种有用的运算,可用于"一致性"判断。
( w$ \5 ]4 y0 e: c 21.一致性(Consistence) 9 X2 T7 }& Y. O9 P; ~! y4 I
两个立方体作相交运算时,若其输出部分出现q而其输入部分不出现q的话,则称此二立方体是不一致的,反之,它们是一致的。
. {& K! Q2 N/ g: X- P3 j3 S2 \ 一致性就是不矛盾性。用真值表描述布尔函数时不会出现不一致性,因为真值表中是对每一个最小项分别进行描述。用覆盖描述布尔函数时就可能出现不一致性,因为覆盖中是对每一个立方体分别进行描述。一个立方体可能包含多个最小项,一个最小项可能被多个立方体包含。如果不小心,某个最小项的取值可能在这里被隐式定义为1,而在另外一个地方被隐式定义为0。如果出现这种前后矛盾的原始描述,后续工作就无法进行。因此在作逻辑综合之前,首先应对原始数据作一致性检查。若发现不一致性,则应纠正原始数据中的错误。
8 p1 C5 r) F8 w3 ^) D1 E8 o
( M* k4 B0 C! a3 O* ~0 a2 N4 g" `. U! D 22.吸收 (Absorption) 运算! d h+ Q |* C% {6 a
吸收运算的目的是:在不改变覆盖所描述的函数性质的前提下减少覆盖中元素的个数。令C ¢= S(C )代表对覆盖C作吸收运算,C ¢代表运算结果。其含义是:
: e% T( f& m4 }3 Z; A5 O5 n. S% F (1)若ci cj且ci, cj∈C则删去ci。
$ C1 |$ R2 _6 V% g (2)若ci∈ C,且其输出部分取值全部为u,则删去ci。
0 x; z/ Z8 V u! U 23.余面(Coface) 1 M" Y6 {, e$ A; a/ _1 k
设c是属于覆盖C的一个立方体。如果:
- }/ c2 K7 s; u4 k (1) c是立方体e的一个面,即:/ `, l" t* w0 U7 \: m* l% w
c e/ L6 y/ t3 c& x; `) y
(2) e和覆盖C中的每一立方体相一致。
+ D9 ^; e3 U$ e0 N 则说e是c的(相对于覆盖C)一个余面。
1 u% g0 G9 E# P! P5 ?) ] L 24.立方复合体(Cubical Complex)
- @+ u5 v$ [ v! t2 A8 K; H- C 覆盖C的立方复合体K(C)可由下述规则形成:
1 Q# |- g/ U! i( K4 L (1) 覆盖C中的每一立方体都属于K。
4 t6 h0 e( {! K# C3 j (2) 设e是K中的一个立方体,则e的面以及相对于覆盖C的余面都属于K。通常情况下并不需要真的去求立方复合体,而是利用立方复合体的概念去阐述其他概念。( O0 j5 O; [2 X9 v( v
25.锐积(Sharp Product) 运算, [* r9 N4 v& Q3 ^, S; t3 |
令a 、b是单输出函数的2个立方体,锐积运算a # b的结果是一个立方体的集合C。由a包含的顶点减去a ? b包含的顶点所形成的维数最大的立方体都是C的元素。$ z: @9 j! H* U$ ?- v! K5 Z* {
K0(C)=K0(a)-k0(a)∩K0(b)
% X* B4 P$ a2 R: X4 G+ Q 上面的表达式说明锐积的本质是顶点集合求差。6 ~) R( L% ^8 M6 u
26.星积(Star Product)运算) J7 v2 Q+ x% _, l& n1 f
设a和b是单输出函数的2个立方体,星积运算a * b的结果是一个新立方体c,c既不被a包含也不被b包含,c是被a∪b包含的顶点所构成的最大的一个立方体(c也可以为)。星积运算的特点是根据两个已知的立方体求一个新立方体,新立方体一定和原来的立方体不同。新立方体的维数可能增大也可能不增大,但是通过反复作星积运算就有可能求出维数更大的立方体。
) a; d7 D) X V* _4 H: @ 27.最小化覆盖(Minimum Cover)% Q& K2 x6 ?; I" R2 D. [
设初始覆盖为C,最小化覆盖M应满足以下要求:
' m/ J% k [$ [' X (1) M和C等价,即:M∩COFF=φ* H! O5 X$ q% p
CON#M=φ5 B# n. w1 M& X( t' l {9 r
(2) M中所有元素都是质立方体。即;
' D0 _2 |" f4 q, _/ W+ | X (3) M的成本最低。
+ F& K! u% c% x# r; C7 w" N) E4 C% o( o
28.无冗余覆盖(Non-redundant Cover)
s" f9 x7 }2 y! s( B& K% ] 设初始覆盖为C,无冗余覆盖N应满足以下要求:) F v, X y5 q2 g
(1) N和C等价.9 K }3 P! f8 M
(2) N中所有元素都是质立方体.) U, Y2 H3 b4 x: ~
(3) N中不存在冗余元素。即$ ~& E5 P7 }2 p( M" Y
ni#(N-ni)∩CON≠φ ni∈N
& L- b7 E- ?/ u8 H4 }- B8 s; C" d- }8 j4 Q7 P% z% I# Y o! c) F
29.极值(Extremal) 9 n$ m2 g" i$ D
设SZ是质立方体集合Z的一个子集,e是SZ的一个元素,若e包含了某个不被SZ中其它元素所包含的真值顶点,则称e为极值。- x$ q6 g, F6 s
若: {e#(SZ-e)}∩CC≠φ e∈SZ (4-13)" i3 @8 m. r( r9 u: Q l
则e是一个极值。式中CC是立方体的集合,它包含且仅包含全部待包含的真值顶点,用选拔法实现最小化覆盖时,极值应当被选为M的元素。理由是每个真值顶点都应当被M包含,而包含该真值顶点的诸立方体中,e的成本最低,因为质立方体和它的面相比成本较低。
0 ?3 R7 v& [3 ~. t
9 y. g# e+ C# b2 }+ L- U% Z 30.小于运算(Less Than)
8 Y" Z) P. R% K( U; r 小于运算是对覆盖A中的元素逐对进行比较,设被比较的两个元素是ai和aj,若:5 o2 i3 h& ?7 Q9 A& J6 N' |
(1) ai的成本≥aj的成本' ^2 I. k8 h0 k/ w
(2) (ai#aj)∩CC=φ3 p, c; k {6 L
则说ai小于(劣于)aj,并从A中把ai删除。由此可知,小于运算实际上是删劣运算。 % n0 m/ f$ g# k. [
31.扇入(Fan In)
- p+ }' X/ m2 @# S8 I2 ~" E 逻辑门的输入端数。' z P% y' |6 A
32.扇出(Fan Out), P6 E$ e9 i$ u
逻辑门的等价负载数。2 T5 ]$ C3 D% m
33.先农展开定理(Shannon's Expansion Theorem) , {# V! {3 J4 W4 \& _
: e" i- m4 B, }) R2 h- b! o! g
% O: b* T) }: I3 V J, _/ x 先农展开把一个函数展开为2个函数的"或",而这2个函数的输入变量个数都比原来的函数减少了1个,降低了复杂性。
" S+ l& O" }1 d2 N% M 34.二叉判决图(Binary Decision Diagram, BDD)
5 R: t5 ?1 f+ t) |6 U0 f, s! ? 二叉判决图是基于先农展开的图形表示,当把输入变量的顺序排定之后。BDD就变成有序的BDD(Orded BDD, OBDD)。OBDD适合于计算机作业。OBDD已经应用于多级逻辑综合和形式验证。
. B- I" U) o$ z# e P+ H 35.组合逻辑电路(Combinational Logic Circuit)
' b0 ]7 g3 y0 o# I0 s( _' d2 R 组合逻辑电路输出信号的取值仅仅依赖于输入信号的当前值。- D; V- y. o) |& ~: z
36.时序逻辑电路(Sequential Logic Circuit)# d) w$ c4 X; W
时序逻辑电路输出信号的取值不仅依赖于输入信号的当前值;还依赖于输入信号的历史值。+ c0 [3 d" B5 l4 r, C
37.有限状态机(Finite State Machine, FSM)0 s% ]! }+ b+ ?" |% A( n
时序逻辑电路的数学模型。有限二字限定该状态机的状态数不能是无限大。2 ] B8 @8 A. f
38.完全规定的有限状态机(Completely Specified FSM)
) D; x1 S+ _# ~8 W 状态表中若在每一输入组合情况下,其次态和输出都是唯一确定的,则称该有限状态机为完全规定的有限状态机。 不完全规定的有限状态机(Incompletely Specified FSM)7 j- ?& a" Y5 l4 s5 J+ S. F3 P
状态表中若在每一输入组合情况下,其次态和输出不是唯一确定的,则称该有限状态机为不完全规定的有限状态机。所谓不确定是指次态一栏出现了未明确指定的状态(用?表示);或输出一栏出现了未明确指定的值(用u表示)。- g4 S; g$ U1 }7 }- @( x
( \# p) Y7 @! P- v' q: n
39.状态化简(State Minimization)1 X5 ^' o% j: n5 J \! i g
在不改变有限状态机性质的前提下,尽量把原始描述中的状态合并以减少状态的数量。
, d& l" b4 R% M& s7 } 40.状态分配(State Allocation)
8 S+ a* W& T3 v5 |; @& Y 统一考虑给有限状态机的每一个状态分配一个代码,目标是造价最低。
3 R$ B: ]: }4 O% p/ k- a2 V2 H+ e3 R" O) T( L# N: H y
41.等价状态对(Pair of Equivalent States)) k1 W2 W+ g4 ~; D7 {$ u2 g# { E7 U1 v
设状态si , sj 是某完全规定的有限状态机状态集合S中的两个状态,分别对其施加各种可能的输入组合Ip,若同时满足以下条件:) g6 D! F/ a6 W+ e
(1)输出完全相同,即- f4 y, O: @0 Q2 j5 L
Z(si , Ip)= Z(sj , Ip) (Ip∈I , si , sj∈S ) ("="表示相同)7 K) q2 I$ I, s8 g
(2)后继状态等价,即
6 \: R7 ]0 Q3 s$ x' | N(si , Ip)= N(sj , Ip) (Ip∈I , si , sj∈S ) ("="表示等价); z- e6 P' E }: v6 V9 V
则称si , 和sj 等价,它们是等价"状态对"。 _2 E! ~8 C v0 L, ~4 T
42.等价类(Equivalent Class)' c9 l2 k4 D5 u, Q- G
设S k是某完全规定的有限状态机状态集合的一个子集,若其中任意两个状态都?quot;等价状态对",则称S k为等价类。
A, l0 j7 g; R$ x% | 43.最大等价类(Maximum Class of Equivalent States)
4 R3 k: c7 {5 } 不被其它等价类所包含的等价类称为最大等价类。在完全规定的有限状态机的状态最小化运算中,可以把一个等价类归并为一个状态。
4 H' R+ X/ m+ u 44.相容状态对(Pair of consistent State)
/ U# J2 @0 R+ W5 f7 D 设状态si , sj是某不完全规定的有限状态机状态集合S中的两个状态,分别对其施加各种可能的输入组合Ip,当且仅当在状态表中明确规定的地方满足以下关系时# L1 J( T( B# C
(1)输出完全相同,即
. D. F( y8 |% D$ v, y Z(si , Ip)= Z(sj , Ip) (si , sj ∈S ) ("="表示相同)7 X7 J8 ~% H# k- x7 p6 j
(2)后继状态相容,即! [, `3 I2 P2 a$ r
N(si , Ip)≌ N(sj , Ip) (si , sj ∈S) ("≌ "表示相容)5 n8 {0 d6 V, U) F. ^# {) P1 C
则称(si , sj )为"相容状态对"。6 p9 y) Q; D& o
9 a' {# g, l# `5 ?
45.相容类(Consistent Class)- e4 c6 f# [1 Z S9 {. F
设Si是不完全规定的有限状态机状态集合S的子集,若其中任意两个状态都是"相容状态对",则称Si为相容类。1 I: Z* Z# B6 [. m; u7 @+ F
* `+ y8 Y% l7 N# I" w
46.最大相容类(Maximum Consistent Class)
) B ]& C9 g6 c, u) H+ @3 l' E 不被其它相容类包含的相容类。& ?1 _3 O T0 @$ ?8 J
| 五、高层次综合 1. 逻辑综合(Logic Synthesis) 7 e( n: s. n+ e9 `6 H4 U
EDA工具把数字电路的功能描述转化为电路的结构描述。实现上述转换的同时要满足用户给定的约束条件,即速度、功耗、成本等方面的要求。
9 M7 F5 n% @+ B! p+ U- } 相关词汇:高层次综合,版图综合,约束条件。
- d2 `6 a9 L& Z1 i3 X4 x 2. 高层次综合(High Level Synthesis)+ o+ I4 N# k0 o% N
EDA工具把数字电路的行为(算法)描述转化为电路的结构描述,这里的结构描述通常指RTL描述。高层次综合工具的输出通常作为逻辑综合工具的输入。实现上述转换的同时要满足用户给定的约束条件,即速度、功耗、成本等方面的要求。0 ]9 b* x! X) Z% F& [! ?
相关词汇:逻辑综合,版图综合,约束条件。0 L. @0 X9 ~: U9 h8 i! `2 @
3. 版图综合(Layout Synthesis): N* H% \* ?8 O" I- l( v
EDA工具把数字电路的结构描述转化为电路的版图描述,用于集成电路的制造。实现上述转换的同时要满足用户给定的约束条件,即速度、功耗、成本等方面的要求。3 _! o+ ~9 l1 ]9 N. z# B
相关词汇:逻辑综合,高层次综合,约束条件。9 O* G4 x c+ B
4. 约束条件(constraint)4 a" O, c# X' N
预先设定的限制条件。在高层次综合中,约束条件一般指用户给定的必须满足的条件,例如速度、功耗、成本等方面的要求。% ~3 t/ d; J) n- |1 H# B# h1 h3 Y
5. 行为描述(behavioral description)
' R' S2 x, j, _$ F 用硬件描述语言以算法形式描述目标电路的行为特性,而不含任何结构信息。通常,在行为描述中,将数字系统的操作模型限制在一些预先定义好的代数和逻辑运算类型中(例如加法、减法、比较、赋值、循环等操作类型)。行为描述的抽象层次高于结构描述。+ K& C, ]! F3 t- z
相关词汇:结构描述。
; o# `+ i# F+ a3 I! N4 y/ m% X 6. 结构描述(structure description)
/ H+ q. b: X! t/ R) f 电路的结构描述包含该电路的硬件模块组成及其互连关系的信息。硬件模块的粒度有大小之分,即结构描述也有抽象层次高低之分。
% g! N4 u8 g+ |0 L 相关词汇:行为描述。0 _- C" s: x( `
7. 专用集成电路(Application Specific Integrated Circuit,ASIC)
* Y; x0 c2 Z9 K 专用集成电路是相对于通用集成电路而言,它的特点是:适合于某一特定的应用领域,需要量较少但又很急需。从设计的角度看,要求尽量短的设计周期和尽量低的设计成本,而把电路的制造成本放到相对次要的地位。( M% z0 @/ G% I1 x" `* c
8. 系统级芯片(System on a Chip, SOC)) A( k" ?! E4 u% I" d4 N: \% J
这里所说的系统是指既包含硬件也包含软件的整个系统。随着集成电路集成度的增加,已经有可能把整个系统容纳在一个芯片之内(在此之前是装配于一个机箱之内或一块印制电路板之内)。SOC技术的研究包括制造工艺和相应EDA软件的研究。
( I3 f5 X! Q! ~ 9. 硬连逻辑(hardwired logic)
. X% [, }$ p* t 硬连逻辑是相对于固件而言,控制电路如果由门电路(硬件)互连而成,称为硬连逻辑。' j+ }, g' h7 z2 J$ N: y( Q
相关词汇:固件。
9 _7 L7 ^* M5 T( B' }# x 10.固件(firmware)# {4 d( t+ W( {4 _" Y& T! M: i0 E4 a
固件是相对于硬连逻辑而言,控制电路如果由ROM实现,其可更改性介于硬件与软件之间,被称为固件。, u; V3 _( }" U2 B9 }/ ~
相关词汇:硬连逻辑。3 B5 V& u1 c" C6 Y2 q; F4 V. j
11.控制流图(Control Flow Graph,CFG)" z% g9 T$ l5 N2 c2 W2 S& U
高层次综合的中间数据表示格式,表示操作的控制相关性。 W d4 G# ?8 b+ g% K% U/ Z
相关词汇:数据流图,控制数据流图。% u/ @7 V- }0 R6 l& i
12.数据流图(Data Flow Graph, DFG)
( `. O7 a6 @7 N& s! v 高层次综合的中间数据表示格式,表示操作的数据相关性。
& I$ S; F, [* B1 C. i- f- b: l 相关词汇:控制流图,控制数据流图。 |7 Y( k4 ?3 n9 l( H ]
13.控制数据流图(Control Data Flow Graph, CDFG)
2 T. {% H* e f! K( Y 高层次综合的中间数据表示格式,是把控制流图和数据流图合并在一起的一种表示格式。" U) }7 ?" ~9 y5 S0 }) e
相关词汇:控制流图,数据流图。
) H( t6 t% w q; ?; h: [) t
+ v) X% p4 ~+ s# S( z$ G 14.控制步(control step)。
+ J; v) a, z6 o6 }" ]0 }* q4 ~' J1 H$ o 一个控制步是一个基本时序单位,在同步系统中,通常对应于一个或几个时钟周期。
* k+ @; D$ E6 H2 [ 相关词汇:调度。
! c9 t4 s9 k' O7 [5 D: C: {# } 15.调度(scheduling)
1 U2 A! y; S$ F8 h 调度是将操作赋给控制步。调度的目标是:在满足约束条件的情况下,将操作赋给各控制步,以使给定目标函数最小。这个目标函数主要包括:所需控制步总数、延时、功耗以及硬件资源数量等。
1 }# f. f' {, Q& U 相关词汇:分配,控制步。
# B4 q; N5 F6 q8 k5 d! V 16.无约束的调度算法, {0 b9 l6 Q4 m4 E8 M& V) Z! I5 d0 l
无论设计者是否指定约束条件,调度算法都不考虑这些约束条件,直接进行调度。ASAP和ALAP都属于无约束的调度算法。% |# R7 f1 }& I$ g
相关词汇:调度。
8 p' Q: o* E, k# y4 h 17.分配(allocation)& ^7 x5 j" @& d9 w3 O0 R: m0 a) E
分配是将操作赋给相应的功能单元进行运算,将变量(或值)赋给寄存器加以存放,将信息传输关系赋给多路器或总线实现信息传输。分配的目标在于使硬件资源的花费最少,硬件资源包括功能单元、存储单元和数据传输通路。
. N! V5 X# v: k$ u# N 相关词汇:调度。
" o& X: R; W2 B3 n
$ d' c. c$ L, e& E1 \ 18.模块确定(module binding)
1 y0 ~- d# q1 \; s; N; l, F 模块确定与分配通常在一起进行,也可以统称为分配。其任务是把数据通路的抽象结构用具体的部件实现,例如某个操作可以被2种以上的功能单元实现,究竟选用哪一个功能单元则是模块确定的任务。各部件的实现既可调用标准单元库中的部件,也可以自己设计实现。
! \* X U* w$ ^3 e0 S* V2 ^& [6 | 相关词汇:分配。
- y% e4 {0 m. Y. i0 u' P6 W. W2 F3 a6 S
19.ASAP调度算法 (as soon as possible) $ |9 S( P0 O" A6 l" E7 W0 Y( y
将所有操作赋于最早可能调度到的控制步,又称作尽可能早调度算法。调度过程中不考虑用户给定的任何约束条件,属于无约束调度算法。调度结果虽然不理想,但却能给出控制步的下限和资源的上限。
% m Q4 V& ~% q4 W- N& H* K# v" X' H4 O 相关词汇:ALAP调度算法。
+ M" S* S Z( T/ L+ z, w1 C
, `4 r. T% ^. c' ~( O 20.ALAP调度算法(as late as possible)
# L+ x" W% o( |$ _9 t, e: j- ] 将所有操作赋于最迟可能调度到的控制步,又称作尽可能迟调度算法。调度过程中不考虑用户给定的任何约束条件,属于无约束调度算法。调度结果虽然不理想,但却能给出控制步的下限和资源的上限。. d/ b5 \& ]% y1 ]/ f/ D, k5 ^6 D9 }3 Z
相关词汇:ASAP调度算法 G0 ?) t$ K& |" q4 p6 A1 N
! k0 j; M! V7 Z# d% V$ I3 C
21.列表调度( list scheduling )算法9 n0 l1 z1 J5 N. ~( P/ r
首先在ASAP和ALAP调度的基础上得到每一个操作的调度区间,然后按顺序从第一个控制步开始直到最后一个控制步逐步进行调度,每次仅考虑一个控制步的调度。对于当前控制步,构造一个就绪队列,将当前控制步中可以执行的操作存放于该队列中。就绪队列中的操作依照某种优先级函数排序。在满足硬件资源约束的条件下,具有最高优先级的操作被调度到当前控制步中。在下一步的调度中,首先修改就绪队列,然后重复上述调度过程,直到没有操作可以被调度到当前控制步中为止。 0 Z w; p% b7 l; m$ c6 \
相关词汇:ASAP调度算法,ALAP调度算法。6 C+ v9 _; w, e. |, E& X+ B
22.图着色算法(node coloring)
; \' y! u/ x8 S- s( `9 C7 J% i 图着色算法要求用最少的颜色对给定的图形着色,约束条件为几何位置相邻的图形应着以不同的颜色。图着色算法可以用于解决许多问题,包括分配问题。
6 e' P A | I: M3 c, U 相关词汇:分配,冲突图。
8 @1 E# `- b8 a* p! Z, o) } 23.冲突图(conflict graph)。/ c9 Y" U! \. |1 R5 B; S$ g
图着色算法使用的图模型称为冲突图,冲突图G由二元式组成:: |/ O9 T1 w) P4 Z2 `" g; V- P! f
G = { V, E }2 R, [' r5 s0 W8 }: s
其中 V为结点集, V = { vi | 需要着一种颜色的区域i}
4 x- h/ v5 u. y# c2 @+ x E为边集, E = { (vi , vj) | 不可着同一种颜色的结点i与结点j之间的一条边}4 k* H& y& _4 T+ k1 r H8 ]0 v+ m
相关词汇:图着色算法。
0 o' V8 B2 G/ Q' P, ] | 六、形式验证 1. 形式验证(Formal Verification)
2 H; S9 Y" R8 S; l# U! | 指从数学上完备地证明或验证电路的实现方案是否确实实现了电路设计描述的功能。7 k* Q( N4 q9 y. o3 Q
2.仿真验证(Simulation Verification), e3 t; c& u: t* ~
指从电路描述(语言描述或图形描述)中提取出模型,然后将外部激励信号或数据施加于该模型,进行计算并观察输出结果,判断该电路描述是否实现了预期的功能。
$ g: M5 p- p: }7 Y 3. 等价性验证(Equivalence Checking)" G! `$ E3 l6 ~' q" A @% u
主要指验证两个方案之间的等价性,一般用于底层验证,如逻辑综合前后方案的验证。
s/ e" \* M; X' ^) X4 m8 K( e 4. 性质验证(Property Checking): J: E z: W. x G
指对一个实现方案,不是去验证它所有的行为,而是验证它是否满足某些规则或性质。
% r9 x/ ~2 ^: Q) T 5. 性质(Property) L: I' r' x, a8 W
对系统所期望的与时间相关的行为。$ h& g6 \( ?% V. ?0 b! G$ W
6. 模型判别(Model Checking)- K% u5 N( A# i: F C
采用状态机分析或者称为状态空间搜索的技术来判别用某种时态逻辑所描述的命题正确与否。
" ]: V0 z1 A& l1 r+ D; j 7. 时态逻辑(Temporal logic)( Q" W' B* N4 E& c# Z& U5 S
是一种表述系统所期望的性质的非常精确和方便的形式化手段。/ u) s0 Z1 L4 r
8. 二叉判决图(Binary Decision Diagrams, BDD)
0 D% r }$ M/ H& j% r- w 它是一种用来表示正则布尔函数的有向无环图,经过化简的BDD能有效地表示和化简布尔函数,并完成布尔函数上的运算和操作。3 c, Y# F ?9 @/ r: F6 I/ d
9. 有限状态机(Finite-State Machine,FSM)* B: L0 }$ J, r! G9 M; J2 z
: }' W9 S+ [+ E9 M4 h g {. l 10.定理证明(Theorem Proving)
& A- W2 \4 v! N& M' A1 V" X Z 运用公理和已经证明的定理证明电路的描述是正确的。1 B. D# n/ b4 o9 d% n7 w/ S
11.断言(Assertion)
( L$ ~0 V/ u `! L 用户指定逻辑电路所要实现功能的描述。
& \' h$ M' y& W 12.复位等价(reset equivalence)2 X- b: A9 D2 u% L) M- T2 _
如果两个电路都具有外加reset状态s1和s2,则两个电路的等价当且仅当s1和s2等价。
9 i: L& V8 p7 w3 I 13.同步后等价(post-synchronization equivalence)
4 Z% [% [* f& w, K' A 如果两个电路在同步化之后的行为相同,则认为这两个电路是等价的,至于它们的到达同步的同步时序是否相同则无关紧要。( g# K) J- h3 p
14.可安全替换等价(safe replaceability equivalence)
2 Q2 y$ ?( [2 [! k) ? 对于任意的输入序列,要求替换电路中的每个状态在原电路中都存在一个一致的状态,使得对于这个特定的输入序列,具有相同的输出响应。 符号模型检验(Symbolic Model Checking)
& C" U. H, d$ S5 j) t K2 t. q. N, C8 Q 对模型检验方法的改进,用一个BDD来表示整个电路,将状态转换函数和输出函数合在一起。
" `* Z3 P9 M i; D- q* r 15.反例(Counter Example)
- G b; }0 ?3 c5 W! H- ]
5 B9 @) E% s7 _6 G0 i 16.计算树逻辑(Computation Tree Logic)5 C0 | N/ p+ D
是一种分支时序时态逻辑,描述关于具有不同路径的计算树的特性。
0 F. s$ x/ G' ~3 R* L 17.执行树(Executing Tree) D: V" u: C+ e+ N$ F
将原来流程图中的所有分支简单展开,执行树的根节点就是原来的初始节点,每一个叶子节点后都是合并wait语句,每一条路径都是一种可能的执行情况。
, I; Q# n, G. S/ ^ | 七、可测性设计 1.故障(Fault)
" s" Q' @2 Y. O m* { 电路产品与设计要求不符称为故障(Fault)。7 L+ s# N# k! v2 D @
2.故障检测 (Fault Detection)
( B) a; x4 V- R% o2 Q: ?' q# G 判断故障是否存在,即只判断有无故障,称为故障检测 (Fault Detection)。9 W' {$ \4 d0 J2 s) \+ X
3.故障诊断(Fault Diagnosis)或故障定位(Fault Isolation)
' L" q* z: `& B+ ?0 F9 h* y 若不仅判断是否存在故障,而且需要指出故障位置,称为故障诊断(Fault Diagnosis)或故障定位(Fault Isolation) ]" Y9 k2 c5 G
4.测试码自动生成(automatical test pattern generation, ATPG)
. w% f7 v& x% {- @; r 利用计算机辅助设计工具寻找正确而充分的测试码。
- K3 ^4 w, M" u" A) n5 [5 }- o5 u 5.故障模拟(Fault simulation)! \0 @; t. d \. M$ a+ W
在生成测试码之后,要用模拟的方法检验测试码的正确性,要分析故障覆盖率。用于检验故障测试码的逻辑模拟称为故障模拟(Fault simulation)。
5 x/ B. t/ f6 z. M- d, M) ~ 6.故障覆盖率
& i7 J+ S* t; ]' ? 故障覆盖率是指一个测试集已测故障数占所有可测故障数的百分比。& Z2 m5 z' W3 I3 \8 b% V
故障覆盖率 = ×100%! U* q H7 M0 d U
7.可测性设计(Design for Test)& q" S: B X$ A+ h. B
使用某种电路结构可以使测试码容易得到,或者直接在电路内部增加测试机制,自动测试,自动判断是否有故障存在。这种在设计过程中考虑可测性的设计方法称为可测性设计(Design for Test)。
; D8 B, A1 f3 K& i) p# `/ q2 f7 s( w 8. 故障模型(Fault Model)
8 b* R* m1 N! ? `* W2 n 一个电路或元件的物理故障是各式各样的,故障的种类和故障的数目都有很大的差异。为了便于研究,按照故障的特点和影响将其归类,称为故障模型(Fault Model)1 P2 t, I4 u" {# O+ \
9. 逻辑故障
$ {# ?0 q/ w5 f; b- b$ K8 O3 t 逻辑故障指使电路逻辑功能发生错误的故障。* J4 G2 V. `4 q G5 J
10. 参数故障
8 ~! S' W j8 d8 ] 参数故障指电路参数的变化引起的故障。2 b+ |$ T( @ v" v0 \% ~$ A
11.永久故障(Permanent Fault)、间歇故障(Intermittent Fault)和瞬态故障(Transient Fault):
" }3 N0 a/ x; T4 j) H9 V( Y 在测试时始终存在的故障称为永久故障。永久故障也称为硬故障。
. h" @5 F( y8 R/ A- x8 B- s9 v3 R 间歇故障时有时无,如线路接触不良就常引起间歇故障。1 X$ U, j, R6 U
瞬态故障常由于外界的干扰引起,难以人为重复出现。; w* \$ n" z9 C7 b% I' A
12.固定型故障(Stuck Fault):! Q7 a u2 V W- Y5 e" m. Y4 L! k) L2 n( h
即某个信号线的值固定为某一个电平值。值为'1'的故障称为固定1故障(Stuck-at-1 Fault),记为s-a-1;值为'0'的故障称为固定0故障(Stuck-at-0 Fault),记为s-a-0。如记号Gs-a-0表示信号G的故障类型为固定0故障。: v6 \% s; `: S- D1 B6 q
13. 单故障(Single-Fault)和多故障(Multi-Fault):& N& L! m {% r: n3 I3 y
如果一个电路中只有一个故障,称为单故障。同时有多个故障的情况称为多故障。4 [( @% E* b. C$ P
14. 测试向量(Test Vector):
( ?/ b" A, ^" i7 } 测试时加在电路各输入端的向量称为测试向量。对应于每个测试向量的正常电路的输出向量称为无故障输出向量。
2 n0 \6 N% ?5 `: e 15. 测试(Test):
" J0 b" b* J8 }! x2 F 有了测试向量和对应的无故障输出向量,我们就可以据此测试并判断电路有无故障。于是由测试向量和无故障输出向量组成一个测试(Test)
) G2 d/ n$ r9 @. q/ @( l9 S2 _ 16. 测试集(Test Set):
) `. K# d* U; c3 k2 q" L 通常,要测出所有故障,需要多个测试向量,称为测试集(Test Set)。
: X( a0 E# [- O( ] 17. 冗余故障(Redundant Fault):$ V& D; z& s7 [4 _! q9 I4 s
不能被检测到的故障称为冗余故障(Redundant Fault)。冗余故障的特点是该故障不影响逻辑功能。4 c8 t6 c/ v! F* Y5 U
18. 完备测试集(Full Test Set):
, O6 [0 }- d1 c. V+ L% t, m 如果一个电路存在一组测试可以将所有非冗余故障检测出来,称这组测试为"完备测试集"。对于无冗余故障的组合电路来说,由真值表得到的所有测试向量组成的测试集,就是一个完备测试集。7 j, U7 z L3 f: q. G9 ^
19. 等价故障(Equivalent Fault):
d9 w4 o/ k- \, s- \7 y 设能够检查故障a和b的测试集分别为Sα和Sβ,且SαSβ,则称故障α支配故障β,记为α<=β,或β=>α。如果且SαSβ,且Sβ Sα,则称故障α与故障β等价,记为α<=>β。3 t) z0 Q& @1 N V' `
20. 代表故障(Representational Fault):
& M/ ^6 }) m) g0 r T% E 在求测试集时,对等价故障,只要对其中某一个故障求测试即可,称为代表故障。
- u k: }0 o$ R2 g+ s6 x6 W 21. 故障诊断测试集(Fault Detect Test-Set):2 g, X) b" q- t# ?) C
能够唯一确定各个代表故障的测试向量集合。, A' ^: \+ W) X3 x
22. 穷举测试码 (Exhaustive Test Pattern):, C' E: W% e" {! r d# d
根据电路的输入端个数,将所有可能的输入向量组合作为测试集。# v7 k" B: z+ M4 Q- L
23. 测试码自动生成(Autometic Test Pattern Generation,简称ATPG):9 b$ I, a; Q! ]& i1 P
根据逻辑电路本身的结构用算法自动生成测试码。 24. 故障敏化(Fault Sensitization):
6 U2 w# C' {! n2 p 输入测试向量应能够使得故障点g在正常情况下与故障情况下状态值不同。称为故障敏化。有至少一个外部输出端的正常值与有故障时的值不同。
- E( z& N/ j4 [+ v 25. 敏化路径(Sensitized Path):, d- ^$ M& K- I% \
从故障点出发能找到一条或几条路径到达输出端,使该路径上每个节点的正常值与有故障时的值不同。这条路径称为敏化路径(Sensitized Path)。
+ Q, o% h6 p) F u 26. D和D:
0 D% I8 _/ j8 @9 M; [0 ^ 一个电路存在故障时,某些信号值与正常状态下的值不同。当正常状态下的值为'1',而存在故障时的值为'0', 就用D来表示。反之,若正常状态下的值为'0',而存在故障时的值为'1', 就用D来表示。
6 F- l. C1 u {9 c, G+ t 27.故障原始D立方(Primitive D-Cube of Fault,简称pdcf):
6 @/ R! I. O! f' F; s$ P 表示故障点作为输出端的元件,当输出端为D或 时的输入端向量组成的立方体集合。' l$ \, a+ g! G* ]
28. 传播D立方(Propagation D-Cube, 简记为pdc):
. ^/ H) t/ p8 W 又称为原始D立方(Primitive D-Cube)。它描述一个元件对D或 传播的特性。其特点是元件的输入和输出两方均必须有D或D出现。输入方有两个以上的D或D称为多重传播D立方。
/ S4 K" E; K& B; _" V: ~7 X. l 29.测试D立方(Test D-Cube):3 ^, |7 H# C% }( I
对电路中各个信号节点依次排列,它们的动态状态取值组成的含有D或 的值向量。
9 w8 s3 [& [& r: t6 L4 d# ]3 \/ A( { 30. D驱赶(D-Drive):
4 ~. E4 Q9 f- M+ i2 Q 从初始测试D立方出发,将故障D或 向输出端传播,称为D驱赶(D-Drive)。8 f I3 X" B0 ^1 r% V, X1 D: _
31. D前沿(D-frontier):
8 R0 W" [, g9 Y: k) z$ o& p% o 对每个测试D立方需要作D驱赶的负载元件的集合称为D前沿(D-frontier)。
; a r7 N/ {9 A& M) `/ l N 32. 求蕴函(Implication):8 g; c: G$ X$ t6 `3 D4 s; r) J. e
在D驱赶过程中,对某些已经能够确定的值要及早确定,称为求蕴函(Implication)。
7 S: l* u) g0 C5 O2 l 33. 线确认(Wire Justification):
! G: i* Y8 U8 a4 o 求蕴函同时要对没有赋值的信号节点确定它们的值。称为线确认(Wire Justification)。
' O4 O4 F `0 _0 n 34. 一致性操作(Consistency Operation):
9 s3 K! A' D! y" @4 _% F3 C4 L6 {, X6 | 在求蕴函和线确认的过程中都要检查所求的值是否有矛盾,统称为一致性操作(Consistency Operation),或称相容性检查,也叫做C驱赶。
- B: h. D6 _; y" _, K) A) q p; l4 m' n; J 35. C前沿(C-Frontier):* f5 k; t4 a0 C, ? I m" R% Y
在每次求得新的测试D立方时都要做一致性操作。需要做一致性操作的元件集合称为C前沿(C-Frontier) 。
) ~ w$ T3 P& J& _# `9 D 36. 故障模拟(Fault Simulation ):7 L, ?8 g- d/ t5 _7 s% B5 X, e
在模拟过程中插入故障,根据故障情况下对输入向量的响应和正常状况下的响应相比较,决定输入向量是否有效。
0 D: ?# I; i N( B" O1 K2 N; V 37. 演绎故障模拟(Deductive Fault Simulation ):
( [" i; g0 ~; _1 s/ l+ `% I 对于一个输入向量只对能影响下一级门的输出的那些故障进行计算。
8 _' c# Y# c8 W9 F 38. 同时故障模拟(Concurrent Fault Simulation ):* ~+ p% ^, v; ?- A2 n
在正常电路模拟的同时进行故障及其传播的计算。6 N: {* p) I, v
39. 可测性设计(Design for Test, DFT ):& z9 b$ V3 t2 H7 b s
可测性设计应考虑下列三个方面的问题:(1 )变不可测故障为可测故障;(2 )测试数据生成的时间少;(3 )测试数据少。. e& z }5 j3 ^. U
40. 电路的可测性(Testability):! O$ K5 B, J# y" k7 k; a
包括下列两个方面:(1 )要容易由外部输入信号来控制电路中各节点的电平值,以便能够敏化故障和控制敏化通路上的各控制信号。 (2)要容易建立故障敏化通路,内部故障能构传播到外部输出端,以便能够从外部输出端口观察内部故障是否存在。
9 y" g( G( l3 N: ` 41. 内建自测试(Built-In Self-Test, 简称BIST ):% M3 a0 L6 n( ~/ A, L' E+ g
在集成电路芯片内增加产生激励和做测试分析的电路,使芯片不但能完成逻辑功能,还能在外部给定测试方式命令时进行自我测试分析,并输出结果。
0 [! L% }7 u. Y, j5 U" |9 p |
|
|