时序逻辑电路设计.docx
- 文档编号:10275547
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:19
- 大小:907.38KB
时序逻辑电路设计.docx
《时序逻辑电路设计.docx》由会员分享,可在线阅读,更多相关《时序逻辑电路设计.docx(19页珍藏版)》请在冰豆网上搜索。
时序逻辑电路设计
引言
人类社会进步,各种仪器测试设备的以电子设备代替成为趋势,各类测试仪器都希望通过电子设备来实现。
电子设备在实现相应参数的测量时,具有简单容易操作,而且数据便于计算机处理等优点。
目前科技的飞速进展与集成电路的发展应用,有密不可分的关系。
十九世纪工业革命主要以机器节省人力,二十世纪的工业的革命则主要以电脑为人脑分劳。
而电脑的发展归于集成电路工业。
集成电路是将各种电路器件集成于半导体表面而形成的电路。
近年来集成电路几乎成为所有电子产品的心脏。
由于集成电路微小化的趋向,使电子产品得以“轻、薄、短、小”。
故集成电路工业又称微电子工业。
差不多在同时数字计算机的发展提供了应用晶体管的庞大潜在市场。
20世纪90年代以后,电子科学和技术取得了飞速的发展,其标志就是电子计算机的普及和大规模集成电路的广泛应用。
在这种情况下,传统的关于数字电路的内容也随之起了很大的变化,在数字电路领域EDA工具已经相当成熟,无论是电路内容结构设计还是电路系统设计,以前的手工设计都被计算机辅助设计或自动设计所取代。
通过长期的学习微电子专业理论知识,我们应该多动手实践把理论知识与实践相结合,加强对理论知识的把握。
本文是十进制同步计数器的设计,对十进制同步计数器的设计进行电路原理图设计以及仿真,版图设计,版图验证。
1设计技术要求
(1)项目名称:
十进制同步计数器的设计
(2)使用工艺:
2.0um硅栅工艺(tanner)或者1.0um硅栅工艺(cadence)
(3)供电电源:
5V
(4)输入要求:
异步清除,CMOS电平
(5)进行原理图设计,并完成电路的仿真
(6)版图设计,完成LVS一致性检验,生成相应的GDSII文档
2设计构思及理论
2.1设计思路
十进制同步计数器的设计可以细化成下列步骤:
1建立最简原始状态图。
2确定触发器级数,进行状态编码。
3用状态装换卡诺图化简,求状态方程和输出方程。
4查自启动特性。
5确定触发类型,求驱动方程。
6画逻辑图。
时序逻辑电路的设计就是根据给出的具体逻辑问题,求出实现其功能的电路,所得到的结果应力求简单。
当选用小规模集成电器设计时,电路简单的标准是所用的触发器和门电路的数目最少,而且触发器和门电路的输入端数目也最少。
而使用中、大规模集成电路时,电路简单的标准使用的集成电路数目、种类最少。
而且互相间的互连线也最少。
在进行原理图的设计时应该遵循组合逻辑电路的设计规律和方法,避免出现不必要的错误。
组合逻辑电路的设计过程,一般分为如下三步进行:
1.由逻辑问题抽象出真值表
2.由真值表写出逻辑表达式并通过卡诺图进行化简
3.由化简后的逻辑表达式设计出最后的组合逻辑电路
图1时序逻辑电路设计过程
2.2设计构思的理论依据
计数器是利用电子学的方法测出一定时间内输入的脉冲数目将结果以数字显示。
计数器的种类也非常繁多,根据计数器中触发器时钟端的连接方式,分为同步计数器和异步计数器;根据计数器方式分为二进制计数器、十进制计数器和任意进制计数器,根据计数器的状态变化规律分为加法计数器、减法计数器和加/减计数器。
十进制同步计数器计数从0~9,当输出为9时,在下一个脉冲作用下,进位输出为1,如果预置ABCD大于二进制数1001,在几个CLK作用下也能回到计数状态,即同步十进制计数器具有自启动功能。
十进制同步计数器输入输出端口及功能:
时钟CLK,当CLK的上升沿到来时,计数器加一;清零端CLRN即复位端,当CLRN为0时,输出
、
、
及
置0;预置控制端口LND,当LND为0时,计数器输出值等于预置输入值,当LND为1时,计数器计数从预置数开始;预置输入A、B、C及D,即实现任意进制的必要输入;计数保持输入ENT及ENP,当二者有一个为零时,停止计数,保持计数值;计数器输出
、
、
及
;进位端
,当计数值到达9时进位输出为一,否则为0。
十进制同步计数器功能表如下表所示:
计数
输出
0
L
L
L
L
1
L
L
L
H
2
L
L
H
L
3
L
L
H
H
4
L
H
L
L
5
L
H
L
H
6
L
H
H
L
7
L
H
H
H
8
H
L
L
L
9
H
L
L
H
表1十进制同步计数功能表
3十进制同步计数器的原理图设计及仿真分析
3.1电路原理图设计思路及功能分析
组合逻辑电路设计就是在给定逻辑功能及要求的条件下,通过多方面的设计方法,
得到满足功能要求,而且是最简单的逻辑电路。
具体设计的步骤:
1.逻辑抽象,就是对设计对象的输出与输入信号之间的因果关系,用逻辑函数的表示方法表示出来,其中真值表是表示逻辑函数的常用方法。
2.写逻辑函数表达式,即根据真值表按最小项或最大项规则写出设计电路的标准表达式。
3.函数化简,通过公式法和卡诺图法化简得最简逻辑表达式。
4.表达式转换,把简化后的逻辑表达式转换为满足设计要求的形式,例如化简为只用非门,或非门,与非门等基本逻辑门的形式以满足设计要求。
本次设计根据给定的条件实现十进制同步计数器计数的功能,必需要用到八个D触发器。
在设计好的十进制同步计数器计数正常输出端接一个反相器,就可以实现互补输出。
设计好基本电路原理后,先进行电路原理图(图3)仿真,看得到输出结果是否分析一致。
因为是组合逻辑电路的设计,因此在设计时要考虑到组合逻辑电路设计中经常会出现的问题,例如竞争和冒险现象。
组合逻辑电路的冒险是过渡性冒险,从冒险的波形上,可分为静态冒险和动态冒险。
输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出信号产生了毛刺,这种冒险是静态冒险。
若输出的稳态值为0,出现了正的尖脉冲毛刺,称为静态0险象。
若输出稳态值为1,出现了负的尖脉冲毛刺,则称为静态1冒险。
输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为动态险象(冒险)。
避免函数冒险的最简单的方法是同一时刻只允许单个输入变量发生变化,或者采用取样的办法。
根据以上规则,最终可以得出电路设计原理图如下:
图2十进制同步计数器原理图
3.2电路原理图设计
做完MAXPLUSⅡ的仿真得到输出结果满足设计要求后,用TANNER软件编辑电路原理图如附图1所示。
S—Edit提供使用者阶层性的设计环境,最高层的文件是设计文件,所有的模块电路,各个电路的符号、单元,甚至属性都可以包括在一个设计文件内。
可以自己建立自己所拥有的单元库,然后再以参考单元库的方式将所要的单元包括进来。
S-Edit的文件名称为*.sdb,一个SDB文件包括设计的信息与设定的信息,可以同时打开好几个设计文件,但是在同一个时间只可以看其中的一个设计文件。
在设计文件数据库中的每个设计都是个模块,它可以是个基本单元,如晶体管;可以是个逻辑单元,如反相器;可以是个功能区块,如算数逻辑运算单元;也可以是我们的目标系统。
在设计文件数据库中不必包含我们所有设计上会使用到的模块,当然必须要有包含这些模块的一个(或多个)文件,当成我们设计时的单元库。
该设计文件中包含三个模块,每个模块的构成包括电路符号与电路本身,当所设计的模块是最基本的单元,如电阻晶体管等,它是不需要有电路部分的,该模块用符号来表示该单元。
如果我们所设计的模块希望能被其他模块电路调用使用,在设计完电路后面还要设计输入输出端口相对应的电路符号,这样才能被正常使用。
当设计的模块太大,要一次将所有的设计显示在窗口中会显得不适用,并且在处理上会使速度变慢,这时就要通过TannerToolsPro提供的页面功能。
I.模块(Module)
模块是S-Edit设计文件中的主要单元,它可以是所设计的一个功能单元,如晶体管、基本逻辑门、功能区块、放大器电路,甚至是你的全部系统。
模块包含以下两种基本单元:
Primitivbes利用绘图工具所绘制的几何对象;instances使用设计文件中的其他模块。
.页面(Page)
页面功能提供使用者将设计的电路分成数个区块,以便窗口的显示。
当你的模块设计太大或太复杂时,要一次将所有的电路显示在窗口中时,会显得不容易观看,而且在处理的速度上会变慢,这时就需要考虑将设计分散到不同的页面中,让窗口一次只显示适当大小的电路,方便设计的进行与处理。
TannerToolsPro就提供了页面的功能,方便使用者处理页面间电路的连接问题。
TannerToolspro内定的页面命名是从Page0依次往上递增,使用者可以通过Page->Rename来更改页面名称。
当使用者要建立另一个新的页面时,使用Page->New命令会打开新页面的对话窗口,这时你可以使用内定名称,也可以输入你要的名称。
当模块的设计有好几个页面时,可以通过Page->Open来打开该模块中的某个页面。
.显示模式
S-Edjt有两种显示模式,电路图模式和符号图模式。
当创建一个基本元件(如晶体管)或较大的功能单元(如反向器)的例化体时,我们用符号来代表在较大的模块中的较小的元件或单元。
要创建或修改符号,须在符号图模式下工作。
在建立模块的连接时,要在电路图模式下工作。
电路图表示基本元件(如晶体管)与较大的功能单元(如反向器或门)的连接关系。
要创建或观看线路图,须在电路图模式下工作。
用view->SymbolMode命令和View->SchematicMode命令来实现在两种显示模式问转换。
也可以用问号键(?
)来实现这种转换
符号图模式
符号由几何体,端口,与属性组成。
要创建一个符号,Modul->new命令),并进入符号图模式。
用注释工具条中的Box·(长方形),Polygon(多边形)以及Comment(注解)等工具创建模块的图形表示。
先创建一个新的模块(用Line(线段),Circle(圆),用电路图工具条上的端口工具放置端口,作为模块与其它设计对象的连接点。
属性工具用来规定模块在输出网表中的描述。
模块的属性可以表征像长度,宽度,以及周长之类的物理参数:
也可以描述如器件类型和注解之类的非物理量;还可以用来指定元件在S贝CE,NetTIgn,或TPR等网表中输出字符串的精确形式,以及注释模块在网表输出是否处在等级结构的最低级别。
电路图模式
电路图定义模块中的原始体和较低级别模块的连接。
电路图表示较小的单元或基本元件(如晶体管)怎样连成较高级别的单元(如反向器)。
电路图由五种基本元件组成:
以符号形式出现的模块例化体。
模块例化体有管脚。
管脚是用来与其它对象连接的连接点。
连线:
连线用来完成模块间的连接。
端口:
端口表示电路图对外的输入和输出。
在电路图中的端口必须与该端口在符号图中的名称和类型相对应。
端口还起注释电路图中节点的作用。
注释对象,包括boxes(长方形),circles(圆),polygons(多边形),1ines(线段),以及comments(注解)。
注释对象用来说明电路图。
Labels(标号),用来注释和命名电路图中的节点。
与端口不同,由标号注释的节点不表示模块的输入和输出,不与模块符号的端口相对应。
3.3原理图仿真
电路原理图计好后,其功能是否正确,性能是否优越,必须通过电路模拟才能进行验证。
在电路原理图上,通过添加移位/置入STLD信号,控制输入端;添加串行数据输入控制端SER,控制输出端;添加时钟CLK;添加输入数据信号A到H(各信号情况见附图2)。
保存文件后点击编译进行仿真,若原理图或者仿真的测试设置有误,仿真会中断并提示错误,根据软件的提示对仿真设置进行修改,修改完成后,保存文件,再次进行仿真,直到设置正确出现仿真波形为止。
调用T-spice仿真软件进行仿真(仿真时间长度为5000ns,maximumtimestep为:
100ns。
),得到输出信号Q和Q_为下图3所示。
通过分析,电路功能是正确的,能很好的实现十进制同步计数器计数功能,但输出存在毛刺。
仿真结果分析:
如图3所示。
当CLRN为零时,计数器输出为零,当CLRN为高电平时计数器从零开始计数。
当LDN出现低电平时,输出为预置值1100,且计数值保持不变,当LDN高电平到来时计数开始,计数开始后,经过两个时钟,计数输出又回到正常计数当中。
计数器计数从0~9,输出为9时,在下一个脉冲的作用下,进位端输出为一。
ENT和ENP保持计数功能,二者有一个为0时,计数器保持输出值,但此时,LDN的低电平可控制去输出为预置值,直到ENT、ENP及LND都为一时才开始计数。
主要由
、
决定,当二者都为一时,输出为一。
当预置端,为小于或等于1001的二进制数时,可以等到2进制、3进制直到十进制的不同进制的计数器。
将多片同步十进制进行级联就可以等到任意进制的计数器。
图3仿真结果输出波形图
4版图设计
集成电路版图设计是指将前端设计产生的门级网表通过EDA设计工具进行布局布线和进行物理验证并最终产生供制造用的GDSII数据的过程。
其主要工作职责有:
芯片物理结构分析、逻辑分析、建立后端设计流程、版图布局布线、版图编辑、版图物理验证、联络代工厂并提交生产数据。
作为连接设计与制造的桥梁,合格的版图设计人员既要懂得IC设计、版图设计方面的专业知识,还要熟悉制程厂的工作流程、制程原理等相关知识。
IC版图是一组相互套合的图形,各层版图相应于不同的工艺步骤,每一层版图用不同的图案来表示,根据逻辑与电路功能和性能要求以及工艺水平要求来设计光刻用的掩膜版图,实现IC设计的。
复杂的集成电路系统的设计问题分解为复杂性较低的设计级别,这个级别可以再分解到复杂性更低的设计级别;这样的分解一直继续到使最终的设计级别的复杂性足够低,也就是说,能相当容易地由这一级设计出的单元逐级组织起复杂的系统。
一般来说,级别越高,抽象程度越高;级别越低,细节越具体。
从层次和域表示分层分级设计思想:
1.域,有行为域:
集成电路的功能;结构域:
集成电路的逻辑和电路组成;物理域:
集成电路掩膜版的几何特性和物理特性的具体实现2.层次:
系统级、算法级、寄存器传输级(也称RTL级)、逻辑级与电路级。
4.1版图设计思路
对照电路原理图,初步形成版图设计的思路:
1、整体设计:
确定版图主要模块和焊盘的布局。
这个布局图应该和功能框图或电路图大体一致,然后根据模块的面积大小进行调整。
布局设计的另一个重要的任务是焊盘的布局。
焊盘的安排要便于内部信号的连接,要尽量节省芯片面积以减少制作成本。
焊盘的布局还应该便于测试,特别是晶上测试。
2、分层设计:
按照电路功能划分整个电路,对每个功能块进行再划分,每一个模块对应一个单元。
从最小模块开始到完成整个电路的版图设计,设计者需要建立多个单元。
这一步就是自顶向下的设计。
这样做有很多好处,最为突出的优点是当在整个电路多次出现的某一个模块需要修改时,直接在下一层次修改该模块,上一层的所有同样单元就一并得到修改,结构严谨、层次清晰。
4.2布局
经过考虑一番,把整个版图划分为8个小模块,再把8个小模块划分为2个大模块,每个小模块都是相同的模块,因此作完一个后,其他用到的3个小模块就可以直接复制使用了。
同理做好一个大模块后,另一个大模块也可以直接复制使用。
采用标准单元设计方法,根据逻辑原理图,将相应的标准单元从单元库中调出,先做一个模块,采用行式结构,排列成行。
具体步骤:
首先,直接调用单元库里面已经设计好的NAND2(二输入与非门)逻辑单元门INV(反相器)、NOR2(二输入或非门)和DFF(D触发器),做成一个模块。
然后,把做好了的小模块直接复制使用,作成另外3个模块。
接着,以花费最小面积,方便布线为目的,摆放好这4个模块。
以上已制做好一个大模块,直接复制使用放置在它的右边,以花费最小面积为准。
4.3布线
了解一些规则:
1:
metal1最小线宽是3Microns,Metal2最小线宽是3Microns;2:
Metal1之间的最小距离是3Microns;Metal2之间的最小距离是4Microns;3:
Metal1跟Ploy的接触孔是2Microns的方块,Metal1和Metal2覆盖接触孔2Microns;Metal1跟的Metal2接触孔是2Microns的方块,Metal1和Metal2覆盖接触孔2Microns。
首先始在模块内部进行布线,Metal1走水平方向,Metal2走垂直方向。
然后就是模块跟模块之间的布线,Metal1走水平方向,Metal2走垂直方向。
最好是电源线的互连及地线的互连。
经过布局和布线后得出的版图如图4所示:
5DRC(设计规则检查)
版图编辑要按照一定的设计规则来进行,也就是要通过DRC(DesignRuleChecker)检查。
编辑好的版图通过了设计规则的检查后,有可能还有错误,这些错误不是由于违反了设计规则,而是可能与实际线路图不一致。
版图中少连了一根铝线这样的小毛病对整个芯片来说是致命的,所以编辑好的版图中要不时地进行设计规则检查。
运行DRC,程序就按照Diva规则检查文件运行,发现错误时,会在错误的地方做出标记(mark),并且做出解释(explain)。
设计者就可以根据提示来进行修改。
需要注意的是,DRC要在画图过程中经常进行,及时发现问题及时修改,不要等到版图基本完成后在做,这时再出现的错误往往很难修改,因为各个器件的位置已经相对固定,对于电路一处的改动往往牵连到多个相邻的器件,从而造成更多的问题。
执行完DRC出现了以下的提示框:
还要通过LVS(LayoutVersusSchematic)验证。
同时,编辑好的版图通过寄生参数提取程序来提取出电路的寄生参数,电路仿真程序可以调用这个数据来进行后模拟。
执行DRC程序,对每个单元版图进行设计规则检查,并修改错处。
在画版图的过程中根据提示框的内容可以知道执行DRC程序没有发现版图设计规则错误,可以转入下一阶段的版图验证工作。
图4十进制同步计数器计数存器版图图5DRC结果报告
6LVS(版图与原理图的对比)
编辑好的版图通过了设计规则的检查后,有可能还有错误,这些错误不是由于违反了设计规则,而是可能与实际线路图不一致。
版图中少连了一根铝线这样的小毛病对整个芯片来说是致命的,所以编辑好的版图还要通过LVS(LayoutVersusSchematic)验证。
在电路方面的错误,要用到Tanner提供的另外两种功能:
Extract和LVS。
首先执行EXT程序,对版图进行包括电路拓扑结构、元件及其参数的提取。
设计规则检查只检验几何图形的正确与否。
Extract是系统根据版图和工艺文件提取版图的电路特性,也就是“认出”版图代表什么电路器件,NMOS或是PMOS,还是其他。
电路提取后的版图作为单元的另外一种试图(Extracted)保存下来。
接着,执行LVS程序,将提取出的版图与电路图进行对照,并进行修改直到版图和电路图完全一致。
LVS就是把Extracted与单元的另外一种视图schematic比较,检查版图实现的电路是否有错。
结果如下:
图6十进制同步计数器LVS结果
7设计心得体会
从TANNER电路原理图设计,仿真到版图设计以及版图验证,做了一次全定制电路设计流程,得到充分锻炼。
组合逻辑电路设计就是在给定逻辑功能及要求的条件下,通过多方面的设计方法,
得到满足功能要求,而且是最简单的逻辑电路。
在版图设计方面,关于layout布局布线经验总结:
(一)布局前的准备
1.查看捕捉点设置是否正确。
2.Cell名称不能以数字开头。
否则无法做DRACULA检查。
3.布局前考虑好出PIN的方向和位置4布局前分析电路,完成同一功能的MOS管画在一起。
5.对两层金属走向预先订好。
一个图中栅的走向尽量一致,不要有横有竖。
6.对pin分类,vdd,vddx注意不要混淆,不同电位(衬底接不同电压)的n井分开.混合信号的电路尤其注意这点。
(二)布局时注意事项
1.DEVICE的个数是否和原理图一至(有并联的管子时注意);各DEVICE的尺寸是否和原理图一至。
一般在拿到原理图之后,会对布局有大概的规划,先画DEVICE,(DIVECE之间不必用最小间距,根据经验考虑连线空间留出空隙)再连线。
画DEVICE后从EXTRACTED中看参数检验对错。
对每个device器件的各端从什么方向,什么位置与其他物体连线必须先有考虑(与经验及floorplan的水平有关)。
2.如果一个cell调用其它cell,被调用的cell的vssx,vddx,vssb,vddb如果没有和外层cell连起来,要打上PIN,否则通不过diva检查.尽量在布局低层cell时就连起来。
3.尽量用最上层金属接出PIN。
4.接出去的线拉到cell边缘,布局时记得留出走线空间。
4.金属连线不宜过长。
5.小尺寸的mos管孔可以少打一点。
6.LABEL标识元件时不要用y0层,mapfile不认。
7.栅上的孔最好打在栅的中间位置。
8.Contact面积允许的情况下,能打越多越好,尤其是input/output部分,因为电流较大.但如果contact阻值远大于diffusion则不适用.传导线越宽越好,因为可以减少电阻值,但也增加了电容值。
9.金属连接孔可以嵌在diffusion的孔中间。
10.两段金属连接处重叠的地方注意金属线最小宽度。
11.连线接头处一定要重叠,画的时候将该区域放大可避免此错误。
12.摆放各个小CELL时注意不要挤得太近,没有留出走线空间。
最后线只能从DEVICE上跨过去。
13.芯片内部的电源线/地线和ESD上的电源线/地线分开接;数模信号的电源线/地线分开。
谢辞
本次课题是十进制同步计数器计数的设计,对十进制同步计数器计数进行电路原理图设计,通过仿真版图设计,版图验证。
在完成课程设计的过程中,通过查阅多种资料,对十进制同步计数器计数设计方法与性能参数的测试有所充分了解、掌握,充分锻炼了实践动手能力。
在设计过程中遇到不少困难,得到了老师和同学们不少的帮助,在此特别感谢老师给予的耐心指导,也感谢课程设计的过程中给予过我帮助的同学们。
我通过这次课程设计过程,巩固了自己在《数字逻辑电路》、《IC设计》及《VLSI设计基础》课程中所学的知识,进一步了解到了版图的设计流程,提高了自己的电路设计以及逻辑分析能力,也同时提高了版图绘制能力。
同时通过本次设计,掌握了一些版图走线和最优化的设计技巧。
首先,要感谢的是我们的指导老师张法碧老师和翟江辉老师,他们指导和启发我设计和完成了这次课设,并且为我们提供软件安装及基本单元库。
其次,我要感谢我的好朋友陆小敏、徐海波和莫月中,是他们为我提供了课程设计的各种相关信息,不厌其烦的为我解决做课程设计中遇到的种种问题,在此对他们致以最崇高的敬意和最真诚的感谢。
参考文献
[1]李伟华.VLSI设计基础.北京:
电子工业出版社,2002.6
[2]王志功等.集成电路设计.北京:
电子工业出版社,2006
[3]小林芳直.数字逻辑电路的ASIC设计.北京:
科学出版社.2004
[4]猪饲国夫.数字系统设计.北京:
科学出版社,2004
[5]廖裕评.TannerPro集成电路设计与布局实战指导.北京:
科学出版社,2004
[6]周润德.数字集成电路.北京:
电子工业出版社,2004
附录
附图1十进制同步计数器原理图
附图2仿真结果输出波形图
附图3十进制同步计数器计数存器版图
附图4十进制同步计数器LVS结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时序 逻辑电路 设计