数字集成电路的设计形式全定制设计 (ASIC)或基于标准单元的设计
( CBIC);
半定制设计或基于门阵列的设计( GA);
基于可编程器件( PLD)的设计;
全定制设计 (ASIC)
通过对每一个晶体管进行优化设计实现;
所有的工艺掩模都需要从头设计;
可以最大限度地实现电路性能的优化;
设计周期很长,设计时间和成本非常高;
主要用于一些特殊部件的设计,例如微处理器、高压器件,A/D转换器、传感器等。
典型的 CBIC设计电路中各功能模块分布在芯片的不同位置,
中间为全局布线区。
典型的 CBIC设计在每个功能模块以内,规范排布了大量的基本单元,其间由局部布线区进行隔离。
典型的 CBIC设计一个基本单元的结构及逻辑
1'1 BAZ
CBIC设计层次对标准单元的设计通常按照性能优化原则,通过调整每个晶体管的宽度,可以在性能和面积上做到最大限度的优化;
在统一规范条件下对各种常用的逻辑功能单元
(各种组合逻辑或时序逻辑单元)进行设计,
形成库单元;
CBIC设计层次对标准单元的设计标准单元可以设计为高度相等的块,宽度可以根据逻辑功能的不同加以调整;电源接孔和输入 /输出接孔统一设计到特定的区域,便于进行相互连接。
库单元设计完毕可以形成对应的工艺掩模文档,
可以在以后的设计中重复使用( IP复用);
CBIC设计层次功能模块的设计:
直接在库中调用基本单元进行功能模块的设计作为功能模块的设计;
主要从逻辑上考虑尽量减少逻辑单元的用量;
根据逻辑连接关系,仔细排布各逻辑单元的相互位置,使全局的长线布线数量为最少,同时使块内最长的布线最小化。
CBIC设计层次全局布局布线的设计根据各功能块之间的关系和布线数量的需求,
布置各功能块在芯片上的位置,设计各布线区的宽度和连线走向,这也会涉及到标准单元的布局处理;
对于输出到较长互联线的逻辑单元,需要考虑设计具有足够驱动能力的输出缓冲单元。
CBIC设计特点在 CBIC的设计中,电路的各种尺度参数都可以比较自由的调整,设计的灵活性很大,可以实现性能优化的设计方式,对电路的面积和时间延迟能够进行有效的优化处理;
需要设计所有的图形掩模,设计周期和成本都比较高。
半定制设计:基于门阵列( GA)的设计为了简化版图设计,提高设计效率,可以采用标准门单元进行初步设计,待设计通过验证后,再对各局部功能单元进行优化;
对于产量规模不大的器件,也可以直接采用这种方式进行生产。
典型的门阵列形式通道式门阵列 无通道式门阵列无通道门阵列的设计芯片分割为大量相同的标准模块,每个模块内部有标准的晶体管阵列和布线区;
无通道门阵列的设计设计时主要进行各晶体管的连线设计门阵列的设计特点在 GA中,各晶体管和门单元的尺度已经预先形成,宽度不能随意调整;(必要时可以通过晶体管的并联改变宽度);设计优化工作就主要体现在功能块的逻辑设计和相互布线优化的问题上。
门阵列的设计特点在功能块的逻辑设计时,应尽量将功能单元分割为由 2-3输入基本逻辑表达的形式,
尽量寻求公共项,减少正反变量之和,从而减小单元门的使用量。
布线设计是 GA设计的重点,对功能块进行合理的分割和布局,能够有效减少全局布线(长线)的使用量。
门阵列上的逻辑单元利用门阵列设计的加法器 (局部)
基于可编程逻辑器件的设计利用已有的逻辑运算器件进行编程设计,不需要加工任何掩模或连线,可以反复修改设计,设计周期和风险最低;
通常用于检验功能设计的正确性;
目前主要采用 CPLD和 FPGA两类 PLD器件进行设计。
复杂可编程逻辑器件,CPLD
采用简单的 PLD器件组合形成由逻辑单元块、全局连线区和 IO单元构成复杂可编程逻辑器件,CPLD
逻辑单元块由“与或”阵列和输出宏单元构成
CPLD设计特点逻辑的实现主要由逻辑阵列块中的乘积项组合构成,在一个逻辑阵列块中可以包含上百条字线,通过十余条输入线对字线进行连接编程,
可以实现各种组合逻辑功能;
通过可编程的输出宏单元控制,能够实现各类组合或时序的输出和反馈。
CPLD编程的工艺实现主要采用 EPROM技术。
CPLD设计特点不设计任何器件,只是对连接进行编程;
CPLD逻辑块以内的编程连接可以看作标准的短线连接,而逻辑块外的连接则为标准的长线连接。每根连接线的电容及延迟是固定的。
在设计时,应该适当分割逻辑功能,以减少长线的用量。
CPLD设计特点
CPLD的乘积项编程可以容纳较多的输入,组合逻辑的功能比较强,可以直接设计较大规模的组合功能模块;
但由于每个宏单元只有一个触发器,时序的功能相对较弱,应从设计途径上尽量减少触发器的使用量。
CPLD设计特点例:设计一个串行数据检测器,检测一个特定的 48位数据;
如果采用移位寄存器进行串并转换设计,
需要 48个触发器;采用有限状态机( FSM)方式进行设计,只需要 6个触发器;
用 CPLD进行设计时,应采用 FSM方式进行设计。
现场可编程门阵列,FPGA
基于查找表的可编程逻辑块构成
FPGA设计特点每个 LAB都相当于一个可编程的 MSI模块,通常由一个查找表( LUT)和一组可编程输出控制逻辑构成(包含一个触发器)。
1片 CPLD含有的 LAB最多几十个,而一片 FPGA可以含有几十万个 LAB,具有更大的灵活性和更强的功能。
FPGA设计特点组合逻辑通常采用 4输入查找表( LUT)实现;
查找表实际上是一个具有 16个存储单元的静态存储器阵列,每个存储器存储对应逻辑真值表输出的一个值,电路输入 /输出关系实际上是采用最小项和(标准和)形式表达的,因此在利用 FPGA进行设计时,应着重考虑如何将系统分割为 4输入逻辑。
FPGA设计特点
FPGA采用 SRAM进行逻辑编程,数据需要保存,
通常与 FLASH配合使用。
由于 SRAM单元的电容通常比 CPLD逻辑阵列的连线电容大,通常 FPGA的速度可能会比 CPLD低一些。
FPGA设计特点在 LAB以外的连线区,FPGA通常设置了不同长度的布线,利用这些布线,可以取得不同的电路速度。因此利用 FPGA进行设计需要在一定程度上考虑布局布线的优化问题。将系统合理地分割为功能块,在块内采用短线连接(快速通道),减少块间的长线连接,有助于使电路具有更好的功能。