首页> 中国专利> 一种CMOS数字逻辑电路的设计方法

一种CMOS数字逻辑电路的设计方法

摘要

本发明公开了一种CMOS数字逻辑电路的设计方法,其构建待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式对应的“与‑或”树,并获取“与‑或”树的互补树;然后计算“与‑或”树及其互补树各自的“与”结点、“或”结点、叶子对应的沟道宽度;再在计算的沟道宽度的基础上,设计得到最小驱动能力与同一CMOS工艺、规定MOS晶体管的沟道宽度下的CMOS反相器电路的驱动能力一致的CMOS数字逻辑电路;优点是能在已知逻辑功能描述的情况下,通过将逻辑函数表达式转化成对应的“与‑或”树,并且利用“与‑或”树结构快速地计算出MOS晶体管的沟道宽度,从而设计得到的CMOS数字逻辑电路的最小驱动能力与用于比较的CMOS反相器的驱动能力相同。

著录项

  • 公开/公告号CN107517055A

    专利类型发明专利

  • 公开/公告日2017-12-26

    原文格式PDF

  • 申请/专利权人 宁波大学;

    申请/专利号CN201710699513.X

  • 发明设计人 王伦耀;岑旭梦;夏银水;

    申请日2017-08-16

  • 分类号

  • 代理机构宁波奥圣专利代理事务所(普通合伙);

  • 代理人周珏

  • 地址 315211 浙江省宁波市江北区风华路818号

  • 入库时间 2023-06-19 04:08:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-03

    授权

    授权

  • 2018-01-19

    实质审查的生效 IPC(主分类):H03K19/20 申请日:20170816

    实质审查的生效

  • 2017-12-26

    公开

    公开

说明书

技术领域

本发明涉及一种数字逻辑电路设计技术,尤其是涉及一种CMOS数字逻辑电路的设计方法,其通过“与-或”树实现CMOS数字逻辑电路中的MOS晶体管的沟道宽度的快速计算,使得到的CMOS数字逻辑电路的最小驱动能力与相同工艺、规定MOS晶体管的沟道宽度下的CMOS反相器电路的驱动能力相同。

背景技术

数字逻辑电路的功能既可以通过调用基本单元电路,如“与”门、“或”门、“非”门、加法器、选择器等来实现,也可以直接利用pMOS晶体管和nMOS晶体管等MOS晶体管的连接来实现。相比于通过调用基本单元电路实现的数字逻辑电路,利用MOS晶体管直接构造的数字逻辑电路在电路面积、功耗或延时方面往往可以得到进一步的优化。

CMOS数字逻辑电路包括由pMOS晶体管组成的上拉网络和由nMOS晶体管组成的下拉网络两部分,当上拉网络中存在由电源到输出的通路时,输出为高电平;当下拉网络中存在输出到地的通路时,输出为低电平。显然,构成上拉网络的pMOS晶体管或构成下拉网络的nMOS晶体管的沟道越宽,那么CMOS数字逻辑电路的驱动能力也就越强,CMOS数字逻辑电路的时延也就越小。

图1a给出了一个“与-或”树T的结构示意图,图1b给出了图1a所示的“与-或”树T的互补树P的结构示意图。“与-或”树T的互补树P可以通过将“与-或”树T中的“与”结点和“或”结点互换,并将输入取反得到。在图1a和图1b中,方块代表树的根结点,对应于CMOS数字逻辑电路的输出;三角形代表树的叶子,三角形中间的字母表示CMOS数字逻辑电路的输入变量,若输入变量为原变量,则用实线连接叶子,若输入变量为反变量,则用虚线连接叶子;圆圈代表树的内部结点,圆圈中的符号为逻辑运算符号“*”或“+”,带“*”的圆圈称为“与”结点,带“+”的圆圈称为“或”结点。“与-或”树中信号的流向是从叶子流向根结点。对于“与-或”树中的任意“与”结点、“或”结点,靠近叶子的连接线为该结点的输入端,靠近根结点的连接线为该结点的输出端。在用“与-或”树构建CMOS数字逻辑电路时,同“与”结点输入相连的MOS晶体管之间为串联关系,同“或”结点输入相连的MOS晶体管之间为并联关系;树的根结点肩上的字母表示等效沟道宽度,树的内部结点肩上的字母为沟道宽度计算过程中的中间值,树的叶子底上的字母表示该叶子对应的输入变量连接的MOS晶体管的沟道宽度。

一个逻辑函数与图1a所示的“与-或”树T有如下对应关系:当逻辑函数的表达式可以表示为常用的乘积项之和形式时,逻辑函数的表达式中的每一个乘积项就对应于树T中的一个“与”结点,其中组成乘积项的变量构成了该“与”结点的输入;逻辑函数的表达式中的所有“或”运算,对应于树T中的的一个“或”结点,“或”结点的输出就是树T的根结点,“或”结点的输入就是各个“与”结点的输出。图1c给出了通过图1a所示的“与-或”树T得到的具有逻辑功能,且α=2,β=1时的CMOS数字逻辑电路,图1a所示的“与-或”树T对应于图1c中上面一个虚线框中所示的CMOS数字逻辑电路的上拉网络,图1b所示的“与-或”树T的互补树P对应于图1c中下面一个虚线框中所示的CMOS数字逻辑电路的下拉网络。因此,如何在已知逻辑功能描述的情况下,通过将逻辑函数的表达式转化成对应的“与-或”树,并且利用“与-或”树可以快速地计算出MOS晶体管的沟道宽度,并以此设计出具有规定驱动能力的CMOS数字逻辑电路是非常值得研究的。

发明内容

本发明所要解决的技术问题是提供一种CMOS数字逻辑电路的设计方法,其能够在已知逻辑功能描述的情况下,通过将逻辑函数表达式转化成对应的“与-或”树,并且利用“与-或”树结构快速地计算出MOS晶体管的沟道宽度,从而设计得到的CMOS数字逻辑电路的最小驱动能力与用于比较的CMOS反相器的驱动能力相同。

本发明解决上述技术问题所采用的技术方案为:一种CMOS数字逻辑电路的设计方法,其特征在于包括以下步骤:

步骤一:已知用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式;设定待设计的CMOS数字逻辑电路的最小驱动能力要与同一CMOS工艺、规定MOS晶体管的沟道宽度下的CMOS反相器电路的驱动能力一致,并设定构成CMOS反相器电路的pMOS晶体管和nMOS晶体管的沟道宽度对应为α个单位和β个单位;其中,α和β的取值均为正整数;

步骤二:检查用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式是否为乘积项之和形式,若为乘积项之和形式,则直接将用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式记为f(X),然后执行步骤三;若不为乘积项之和形式,则将用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式转化为乘积项之和形式来描述,并记为f(X),然后执行步骤三;其中,X表示由n个输入变量构成的集合,n≥1,X中的输入变量为原变量或原变量的反变量,K表示f(X)中的乘积项的总个数,K≥1,1≤k≤K,pk表示f(X)中的第k个乘积项;

步骤三:构建f(X)对应的“与-或”树;然后获取f(X)对应的“与-或”树的互补树;

步骤四:设定f(X)对应的“与-或”树的根结点对应的等效沟道宽度为α,由f(X)对应的“与-或”树的根结点向叶子逐级递推计算f(X)对应的“与-或”树的“与”结点、“或”结点、叶子各自对应的沟道宽度,具体为:对于“与”结点,若该“与”结点的输入的总个数为m,且与该“与”结点的输出相连的结点对应的沟道宽度为λ,则该“与”结点对应的沟道宽度为m×λ;对于“或”结点,该“或”结点对应的沟道宽度等于与该“或”结点的输出相连的结点对应的沟道宽度;对于叶子,该叶子对应的沟道宽度等于与该叶子相连的“或”结点或者“与”结点对应的沟道宽度;其中,m≥1,λ的值为正整数;

同样,设定f(X)对应的“与-或”树的互补树的根结点对应的等效沟道宽度为β,由f(X)对应的“与-或”树的互补树的根结点向叶子逐级递推计算f(X)对应的“与-或”树的互补树的“与”结点、“或”结点、叶子各自对应的沟道宽度,具体为:对于“与”结点,若该“与”结点的输入的总个数为w,且与该“与”结点的输出相连的结点对应的沟道宽度为γ,则该“与”结点对应的沟道宽度为w×γ;对于“或”结点,该“或”结点对应的沟道宽度等于与该“或”结点的输出相连的结点对应的沟道宽度;对于叶子,该叶子对应的沟道宽度等于与该叶子相连的“或”结点或者“与”结点对应的沟道宽度;其中,w≥1,γ的值为正整数;

步骤五:在步骤四的基础上,根据f(X)对应的“与-或”树及其互补树,设计得到最小驱动能力与同一CMOS工艺、规定MOS晶体管的沟道宽度下的CMOS反相器电路的驱动能力一致的CMOS数字逻辑电路。

所述的步骤五的具体过程为:对于f(X)对应的“与-或”树,每个叶子对应于一个pMOS晶体管,且pMOS晶体管的沟道宽度为所对应的叶子的沟道宽度,从叶子逐级向根结点递推,每个“或”结点的所有输入对应的pMOS晶体管之间是并联关系,每个“与”结点的所有输入对应的pMOS晶体管之间是串联关系;对于f(X)对应的“与-或”树的互补树,每个叶子对应于一个nMOS晶体管,且nMOS晶体管的沟道宽度为所对应的叶子的沟道宽度,从叶子逐级向根结点递推,每个“或”结点的所有输入对应的nMOS晶体管之间是并联关系,每个“与”结点的所有输入对应的nMOS晶体管之间是串联关系;将根据f(X)对应的“与-或”树构造的电路作为上拉网络,将根据f(X)对应的“与-或”树的互补树构造的电路作为下拉网络,上拉网络与下拉网络之间串联后就得到CMOS数字逻辑电路,且上拉网络与下拉网络的连接点作为CMOS数字逻辑电路的输出,比较下拉网络的输入变量的形式是否与f(X)中对应输入变量的形式一致,对于下拉网络的任意一个与f(X)中对应输入变量的形式一致的输入变量,直接连接到对应的pMOS晶体管和nMOS晶体管的栅极上,对于下拉网络的任意一个与f(X)中对应输入变量的形式不一致的输入变量,经反相器后连接到对应的pMOS晶体管和nMOS晶体管的栅极上,作为CMOS数字逻辑电路的输入。

与现有技术相比,本发明的优点在于:

1)在CMOS数字逻辑电路设计过程中,不但要求设计得到的CMOS数字逻辑电路的逻辑功能正确,同时也要求CMOS数字逻辑电路在面积、延时、功耗等方面符合要求,本发明方法在CMOS数字逻辑电路设计中,除了保证逻辑功能正确的情况下,还能实现CMOS数字逻辑电路的驱动能力的设置,从而使CMOS数字逻辑电路的延时符合要求。

2)本发明方法利用了“与-或”树,能够实现对CMOS数字逻辑电路中的各MOS晶体管的沟道宽度的估算,由于“与-或”树与逻辑函数存在简单明确的对应关系,因此容易在计算机上编程实现,且具有计算速度快的特点。

3)由于MOS晶体管的沟道宽度与MOS晶体管的面积有关,因此通过本发明方法除了用于CMOS数字逻辑电路的驱动能力设置外,可以用于CMOS数字逻辑电路的面积评估与优化,这些评估与优化是现代电子设计自动化(EDA)中的研究热点。

附图说明

图1a为一个“与-或”树T的结构示意图;

图1b为图1a所示的“与-或”树T的互补树P的结构示意图;

图1c为具有逻辑功能,且α=2,β=1时的CMOS数字逻辑电路,其中输入变量均为原变量;

图1d为具有逻辑功能,且α=2,β=1时的CMOS数字逻辑电路,其中输入变量a为反变量,其它为原变量;

图2a为pMOS晶体管与nMOS晶体管的沟道宽度α=2,β=1的CMOS反相器的电路图;

图2b为在同一CMOS工艺下,图1c所示的CMOS数字逻辑电路与图2a所示的CMOS反相器在输出端分别接0.75pF电容下的HSPICE仿真波形图;

图2c为图1c所示的CMOS数字逻辑电路的HSPICE功能仿真波形图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

本发明提出的一种CMOS数字逻辑电路的设计方法,其包括以下步骤:

步骤一:已知用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式;设定待设计的CMOS数字逻辑电路的最小驱动能力要与同一CMOS工艺、规定MOS晶体管的沟道宽度下的CMOS反相器电路的驱动能力一致,并设定构成CMOS反相器电路的pMOS晶体管和nMOS晶体管的沟道宽度对应为α个单位和β个单位;其中,α和β的取值均为正整数,在本实施例中取α=2、β=1。

步骤二:检查用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式是否为乘积项之和形式,若为乘积项之和形式,则直接将用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式记为f(X),然后执行步骤三;若不为乘积项之和形式,则将用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式转化为乘积项之和形式来描述,并记为f(X),然后执行步骤三;其中,X表示由n个输入变量构成的集合,n≥1,X中的输入变量为原变量或原变量的反变量,K表示f(X)中的乘积项的总个数,K≥1,1≤k≤K,pk表示f(X)中的第k个乘积项。

步骤三:构建f(X)对应的“与-或”树,具体过程为:将f(X)中的乘积项之间的所有逻辑“或”运算符号可以合并为“与-或”树中的一个“或”结点,“或”结点的输出就是树的根结点,将f(X)中的每个乘积项对应“与-或”树中的一个“与”结点,将f(X)中的每个乘积项中的各个变量作为“与-或”树中与该乘积项对应的“与”结点连接的叶子,各个“与”结点的输出就是“或”结点的输入;若某个“与”结点只有一个输入,则该“与”结点的输入和输出可以直接相连,并将该“与”结点删除;然后获取f(X)对应的“与-或”树的互补树,具体过程为:同时将“与-或”树中的“与”结点变成“或”结点、将“与-或”树中的“或”结点变成“与”结点,并且输入取反后就得到“与-或”树的互补树。

步骤四:设定f(X)对应的“与-或”树的根结点对应的等效沟道宽度为α,由f(X)对应的“与-或”树的根结点向叶子逐级递推计算f(X)对应的“与-或”树的“与”结点、“或”结点、叶子各自对应的沟道宽度,具体为:对于“与”结点,若该“与”结点的输入的总个数为m,且与该“与”结点的输出相连的结点对应的沟道宽度为λ,则该“与”结点对应的沟道宽度为m×λ;对于“或”结点,该“或”结点对应的沟道宽度等于与该“或”结点的输出相连的结点对应的沟道宽度;对于叶子,该叶子对应的沟道宽度等于与该叶子相连的“或”结点或者“与”结点对应的沟道宽度;其中,m≥1,λ的值为正整数。

同样,设定f(X)对应的“与-或”树的互补树的根结点对应的等效沟道宽度为β,由f(X)对应的“与-或”树的互补树的根结点向叶子逐级递推计算f(X)对应的“与-或”树的互补树的“与”结点、“或”结点、叶子各自对应的沟道宽度,具体为:对于“与”结点,若该“与”结点的输入的总个数为w,且与该“与”结点的输出相连的结点对应的沟道宽度为γ,则该“与”结点对应的沟道宽度为w×γ;对于“或”结点,该“或”结点对应的沟道宽度等于与该“或”结点的输出相连的结点对应的沟道宽度;对于叶子,该叶子对应的沟道宽度等于与该叶子相连的“或”结点或者“与”结点对应的沟道宽度;其中,w≥1,γ的值为正整数。

步骤五:在步骤四的基础上,根据f(X)对应的“与-或”树及其互补树,设计得到最小驱动能力与同一CMOS工艺、规定MOS晶体管的沟道宽度下的CMOS反相器电路一致的CMOS数字逻辑电路,具体过程为:对于f(X)对应的“与-或”树,每个叶子对应于一个pMOS晶体管,且pMOS晶体管的沟道宽度为所对应的叶子的沟道宽度,从叶子逐级向根结点递推,每个“或”结点的所有输入对应的pMOS晶体管之间是并联关系,每个“与”结点的所有输入对应的pMOS晶体管之间是串联关系;对于f(X)对应的“与-或”树的互补树,每个叶子对应于一个nMOS晶体管,且nMOS晶体管的沟道宽度为所对应的叶子的沟道宽度,从叶子逐级向根结点递推,每个“或”结点的所有输入对应的nMOS晶体管之间是并联关系,每个“与”结点的所有输入对应的nMOS晶体管之间是串联关系;将根据f(X)对应的“与-或”树构造的电路作为上拉网络,将根据f(X)对应的“与-或”树的互补树构造的电路作为下拉网络,上拉网络与下拉网络之间串联后就得到CMOS数字逻辑电路,且上拉网络与下拉网络的连接点作为CMOS数字逻辑电路的输出,比较下拉网络的输入变量的形式是否与f(X)中对应输入变量的形式一致,对于下拉网络的任意一个与f(X)中对应输入变量的形式一致的输入变量,直接连接到对应的pMOS晶体管和nMOS晶体管的栅极上,对于下拉网络的任意一个与f(X)中对应输入变量的形式不一致的输入变量,经反相器后连接到对应的pMOS晶体管和nMOS晶体管的栅极上,作为CMOS数字逻辑电路的输入。

以下为对本发明方法进行试验,以验证本发明方法的可行性与有效性。

1)假设用于表示待设计的CMOS数字逻辑电路的逻辑功能的逻辑函数表达式为且输入均为原变量;设定待设计的CMOS数字逻辑电路的最小驱动能力与同一CMOS工艺、规定MOS晶体管的沟道宽度下的CMOS反相器电路的驱动能力一致,并设定构成CMOS反相器电路的pMOS晶体管和nMOS晶体管的沟道宽度对应为α个单位和β个单位;其中,α和β的取值均为正整数,在本实施例中取α=2、β=1。

2)检查发现并非为乘积项之和形式,因此将转化成乘积项之和形式来描述,为:

3)将转换成“与-或”树,如图1a所示;然后获取“与-或”树的互补树,如图1b所示。

4)设定图1a的“与-或”树的根结点对应的等效沟道宽度为α,计算图1a的“与-或”树的“与”结点、“或”结点、叶子各自对应的沟道宽度,由根结点出发首先碰到的是“或”结点,该“或”结点对应的沟道宽度等于与该“或”结点的输出相连的结点(即根结点)对应的沟道宽度,即该“或”结点对应的沟道宽度为α;“或”结点的输入是一个“与”结点和一个叶子,其中叶子对应的沟道宽度就等于“或”结点对应的沟道宽度,即该叶子对应的沟道宽度为α,而“与”结点有m=3个输入,且与该“与”结点的输出相连的结点(“或”结点)对应的沟道宽度为α,因此该“与”结点对应的沟道宽度等于“或”结点对应的沟道宽度的3倍,即为3α;“与”结点的输入是三个叶子,每个叶子对应的沟道宽度等于与该叶子相连的“与”结点对应的沟道宽度,即为3α。

同样,设定图1b所示的“与-或”树的互补树的根结点对应的等效沟道宽度为β,计算互补树的“与”结点、“或”结点、叶子各自对应的沟道宽度,由根结点出发首先碰到的是“与”结点,由于该“与”结点的输入的总个数为2,即一个叶子和一个“或”结点,且与该“与”结点的输出相连的结点(即根结点)对应的沟道宽度为β,因此该“与”结点对应的沟道宽度为2β,其中叶子对应的沟道宽度等于该“与”结点对应的沟道宽度,即为2β,“或”结点对应的沟道宽度等于与该“或”结点的输出相连的结点(即“与”结点)对应的沟道宽度,也为2β;对于“或”结点的输入为三个叶子,叶子对应的沟道宽度等于与该叶子相连的“或”结点对应的沟道宽度,即为2β。

5)根据图1a的“与-或”树与图1b的互补树,设计得到的最小驱动能力与同一CMOS工艺下的CMOS反相器电路的驱动能力一致的CMOS数字逻辑电路如图1c所示,上虚线框为上拉网络,下虚线框为下拉网络,取α=2、β=1,比较下拉网络的输入变量的形式是否与f(X)中对应输入变量的形式一致,对于下拉网络的任意一个与f(X)中对应输入变量的形式一致的输入变量,直接连接到对应的pMOS晶体管和nMOS晶体管的栅极上,对于下拉网络的任意一个与f(X)中对应输入变量的形式不一致的输入变量,经反相器后连接到对应的pMOS晶体管和nMOS晶体管的栅极上,作为CMOS数字逻辑电路的输入。在本实施例中,下拉网络的输入变量均为原变量,因此,当f(X)的输入变量均为原变量时,下拉网络的所有输入变量的取值形式与f(X)的输入变量一致,可以将下拉网络的所有输入变量作为CMOS数字逻辑电路的输入,得到图1c所示的CMOS数字逻辑电路;当f(X)的输入变量中变量a以反变量作为输入,其它为原变量作为输入时,需要对下拉网络的变量a经反相器后再连接到pMOS晶体管和nMOS晶体管的栅极上,得到图1d所示的CMOS数字逻辑电路。

为了验证利用本发明方法得到的CMOS数字逻辑电路的驱动能力是否与设想的结果一致,用HSPICE软件进行仿真。在同一CMOS工艺下(具体为SMIC 0.18um工艺库,1.8vTT工艺角),图1c所示的CMOS数字逻辑电路与图2a所示的CMOS反相器在输出端分别接0.75pF电容下对输出波形的上升和下降边沿进行了仿真,结果见图2b,图2b中v(not)为图2a所示的CMOS反相器在输出端接0.75pF电容下的输出波形,v(f)为图1c所示的CMOS数字逻辑电路在输出端接0.75pF电容下的输出波形。由于图1c所示的CMOS数字逻辑电路中的MOS晶体管的沟道宽度是在α=2、β=1时的结果,而图2a所示的CMOS反相器中的pMOS晶体管和nMOS晶体管的沟道宽度也是α=2,β=1,因此,图1c所示的CMOS数字逻辑电路与图2a所示的CMOS反相器在同一CMOS工艺下,理论上应该具有相同的驱动能力,在仿真结果中应表现为当两个电路在相同负载电容下,输出波形应该具有一样的下降和上升边沿。在仿真时,预设a=b=0,c=1,使得图1c所示的CMOS数字逻辑电路的逻辑功能与图2a所示的CMOS反相器一致,且只有1条通路实现电源到输出,或者地到输出的导通;因此,此时图1c所示的CMOS数字逻辑电路的输出驱动能力是最小的。从图2b的仿真结果来看,两个电路的输出波形的上升和下降边沿几乎一样,从而验证了本发明方法的正确性。另外,图2c给出了图1c所示的CMOS数字逻辑电路的HSPICE功能仿真波形图,由图2c不难发现图1c所示的CMOS数字逻辑电路的逻辑功能正确,其中V(a)、V(b)、V(c)、V(d)和V(f)分别表示图1c所示的CMOS数字逻辑电路的输入变量a、b、c、d和输出f的波形。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号