一种逻辑电路的优化方法及优化装置与流程

文档序号:18268510发布日期:2019-07-27 09:24阅读:286来源:国知局
一种逻辑电路的优化方法及优化装置与流程

本发明涉及集成电路技术领域,特别涉及一种逻辑电路的优化方法及优化装置。



背景技术:

在集成电路中,三态缓冲器是通过cmos实现的,如图1所示。当en为0时,输出端out为高阻态z。然而在现场可编程逻辑阵列(fpga)内部是无法实现三态缓冲器,只能用显示查找表(lut)将三态缓冲器实现为近似与的逻辑。高阻态z的逻辑就是悬空,硬件根据输入的值来决定弱上拉或弱下拉输出。

在寄存器传输级(rtl)电路中,有时会需要能产生高阻态的三态缓存器。当三态缓存器直接连接到输出端口时,该三态缓存器能通过fpga器件的输入输出端口来实现。而当三态缓存器没有直接连接到输出端口时,该三态缓存器就不能直接使用fpga器件的输入输出端口来实现,这类三态缓存器称为内部三态缓存器。当三态缓冲器的控制端en为0时,受fpga器件内部资源的影响,高阻态z不能被正确传递出来,只能输出0。因为高阴态z逻辑悬空会导致漏电,会对fpga器件造成未知的影响。因此,针对内部三态缓存器,目前主流的优化方法是将其转换成了与门,但该优化方法会丢失高阻态的逻辑。



技术实现要素:

本发明的目的在于提供一种逻辑电路的优化方法及优化装置,实现三态缓存器输出高阻态。

为了解决上述问题,本申请公开了一种逻辑电路的优化方法,包括:

识别逻辑电路中的至少一个三态缓存器;

判断所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元是否可优化;

若可优化,收集并复制所述所有的逻辑单元;

创建端口三态缓存器,其输出连接所述输出端口;

重构收集的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的数据信号;

重构复制的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的控制信号。

在一个优选例中,判断所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元是否可优化的步骤包括:

检查所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元;

判断所有的逻辑单元中是否存在不可优化的逻辑单元,所述不可优化的逻辑单元包括类型不支持高阻态信号和/或输出路径分支。

在一个优选例中,重构收集的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的数据信号的步骤包括:

将收集的所述所有的逻辑单元中的三态缓存器的数据信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;

将收集的所述所有的逻辑单元的输出连接所述端口三态缓存器的数据信号。

在一个优选例中,重构复制的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的控制信号的步骤包括:

将复制的所述所有的逻辑单元中的三态缓存器的控制信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;

将复制的所述所有的逻辑单元的输出连接所述端口三态缓存器的控制信号。

在一个优选例中,所述所有的逻辑单元包括:二进制多路复用器、独热编码多路复用器、寄存器中的任意一个或多个逻辑单元。

本申请还公开了一种逻辑电路的优化装置包括:

识别模块,配置为识别逻辑电路中的至少一个三态缓存器;

判断模块,配置为判断所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元是否可优化;

收集模块,配置为收集所述所有的逻辑单元;

复制模块,配置为复制所述所有的逻辑单元;

创建模块,配置为创建端口三态缓存器,所述端口三态缓存器输出连接所述输出端口;

第一重构模块,配置为重构收集的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的数据信号;

第二重构模块,配置为重构复制的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的控制信号。

在一个优选例中,所述判断模块检查所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元,判断所有的逻辑单元中是否存在不可优化的逻辑单元,所述不可优化的逻辑单元包括类型不支持高阻态信号和/或输出路径分支。

在一个优选例中,所述第一重构模块将收集的所述所有的逻辑单元中的三态缓存器的数据信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;将收集的所述所有的逻辑单元的输出连接所述端口三态缓存器的数据信号。

在一个优选例中,所述第二重构模块将复制的所述所有的逻辑单元中的三态缓存器的控制信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;将复制的所述所有的逻辑单元的输出连接所述端口三态缓存器的控制信号。

在一个优选例中,所述所有的逻辑单元包括:二进制多路复用器、独热编码多路复用器、寄存器中的任意一个或多个逻辑单元。

本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。

相对于现有技术,本申请具有以下有益效果:

本发明采用复制和重构逻辑单元的方式,实现三态缓存器控制信号逻辑的优化,能支持从内部三态缓存器到输出端口间所经过的不同类型的逻辑单元,并且能支持同一路径上的多个三态缓存器的优化处理。

附图说明

图1示出了现有技术中三态缓冲器的示意图;

图2示出了本发明一实施例中逻辑电路优化方法的流程图;

图3示出了本发明一实施例中收集的所有的逻辑单元的示意图;

图4示出了本发明一实施例中复制的所有的逻辑单元的示意图;

图5示出了本发明一实施例中重构收集的所有的逻辑单元的示意图;

图6示出了本发明一实施例中重构复制的所有的逻辑单元的示意图;

图7示出了本发明一实施例中逻辑电路优化装置的流程图。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。

参考图2所示,本申请的第一实施方式本申请公开了一种逻辑电路的优化方法,包括:

步骤101,识别逻辑电路中的至少一个内部三态缓存器(internalthree-statebuffer)。

步骤102,判断所述三态缓存器至所述逻辑电路输出端口(outputport)之间所有的逻辑单元是否可优化。在一个优选例中,所述所有的逻辑单元包括:二进制多路复用器(binarymultiplexer)、多路复用器(multiplexer)、独热编码多路复用器(one-hotmultiplexer)、寄存器(register)中的任意一个或多个逻辑单元。

步骤103,若可优化,进入步骤104,收集所述所有的逻辑单元。若不可优化,进入步骤108。在一个优选例中,步骤103包括:

检查所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元;

判断所有的逻辑单元中是否存在不可优化的逻辑单元,所述不可优化的逻辑单元包括类型不支持高阻态信号和/或输出路径分支。如果不存在不可优化的逻辑单元,则所述所有的逻辑单元均可优化,进入步骤104。若存在至少一个逻辑单元不可优化,则进入步骤108。

步骤105,创建端口三态缓存器,所述端口三态缓存器的输出连接所述输出端口。所述端口三态缓存器特指直接与逻辑电路的输入/输出端口相连的三态缓存器,并且能够映射到fpga器件的物理io端口上。

步骤106,重构收集的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的数据信号;在一个优选例中,步骤106包括:

将收集的所述所有的逻辑单元中的三态缓存器的数据信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;

将收集的所述所有的逻辑单元的输出连接所述端口三态缓存器的数据信号。

步骤107,重构复制的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的控制信号。

在一个优选例中,步骤107包括:

将复制的所述所有的逻辑单元中的三态缓存器的控制信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;

将复制的所述所有的逻辑单元的输出连接所述端口三态缓存器的控制信号。

步骤108,检查是否还存在未知的三态门缓冲器,如有,返回步骤101,再次对逻辑电路进行优化。若没有,则结束优化方法。

更具体的,参考图3所示,首先搜索逻辑电路的内部三态缓存器,任取一个内部三态缓存器u1,三态缓存器u1包括连接数据信号d1的输入端i、连接控制信号en的使能控制端、输出端o,内部三态缓存器u1的输出到逻辑电路输出端口dout所经过的所有逻辑单元包括多路复用器u2、寄存器u3。多路复用器是一种可以从多个模拟或数字数据信号中选择一个信号进行输出的器件。图3的实施例中,多用复用器u2包括连接数据信号的2个输入端i0、i1,连接控制信号s的控制端和一个输出端o,输入端i0连接数据信号d2,输入端i1连接三态缓存器u1的输出端o。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。图3的实施例中,寄存器u3包括连接数据信号的输入端d、连接时钟信号clk的时钟信号控制端、设置端set、复位端rst及输出端q,输入端d连接多路复用器u2的输出端o,设置端连接设置信号as,复位端rst连接复位信号ar。之后,检查从内部三态缓存器u1到输出端口dout所经过的逻辑单元多路复用器u2、寄存器u3是否可优化,如果多路复用器u2、寄存器u3是可优化,则收集内部三态缓存器u1、多路复用器u2、寄存器u3及其相互之间的连接关系。如果多路复用器u2、寄存器u3不可优化,则选取新的内部三态缓存器进行重新优化。

在本发明的其他实施例中,所述逻辑电路还以包括二进制多路复用器、独热编码多路复用器等逻辑单元。二进制多路复用器是一种选择信号采用二进制编码的多路复用器。例如,一个八选一的二进制多路复用器,其选择端为3位二进制编码,用sel表示;其数据输入端个数为8,分别用i0、i1、i2、i3、i4、i5、i6、i7表示;当sel的编码为000,选择i0作为输出;当sel的编码为001,选择i1作为输出;当sel的编码为010,选择i2作为输出;依此类推。独热编码多路复用器是一种选择信号采用独热编码的多路复用器。例如,一个八选一的独热编码多路复用器,其选择端为8位二进制编码,用sel表示;其数据输入端个数为8,分别用i0、i1、i2、i3、i4、i5、i6、i7表示;当sel的编码为00000001,选择i0作为输出;当sel的编码为00000010,选择i1作为输出;当sel的编码为00000100,选择i2作为输出;依此类推。本领域的技术人员可以根据实际需要对逻辑单元进行选择。

参考图4所示,复制收集的内部三态缓存器u1、多路复用器u2、寄存器u3及其相互之间的连接关系,形成复制的内部三态缓存器u1_2、多路复用器u2_2、寄存器u3_2,其连接关系与收集的内部三态缓存器u1、多路复用器u2、寄存器u3完全相同。

参考图5所示,创建新的三态缓存器u4,该三态缓存器u4为端口三态缓存器,即所述端口三态缓存器u4的输出端作为逻辑电路的输出dout。

继续参考图5所示,重构收集的逻辑单元u1、u2、u3,将内部三态缓存器u1的数据信号d1连接至与内部三态缓存器u1相连的多路复用器u2的输入端i1,寄存器u3的输出端连接至端口三态缓存器u4的输入端,保持收集的逻辑单元u1、u2、u3的其他连接关系不变,例如,保持多路复用器u2、寄存器u3之间的连接关系不变。

参考图6所示,重构复制的逻辑单元u1_2、u2_2、u3_2,将三态缓存器的控制信号en连接至复制的多路复用器u1_2的输入端i1,多路复用器u1_2的输入端i0连接高电平1,复制的寄存器u3_2的输出端q连接至端口三态缓存器的使能控制端,为其提供控制信号,复位端rst接低电平0,设置信号as、复位信号ar通过逻辑或门u5连接至设置端set,复制的逻辑单元u1_2、u2_2、u3_2之间的其他连接关系保持不变,例如,保持复制的多路复用器u2_2、寄存器u3_2之间的连接关系不变。

需要说明的是,优化之前的逻辑单元u1、u2、u3工作过程中,多路复用器u2的控制信号s为高电平1,寄存器u3的设置信号ar、复位信号as为低电平0,三态缓存器u1的控制信号en为低电平0时,三态缓存器u1的输出端为高阻态(highimpedance)z,但其输出的高阻态z不能正确传递出来。经过优化之后的逻辑电路,控制逻辑保持不变,即:多路复用器u2的控制信号s为高电平1,寄存器u3的设置信号ar、复位信号as为低电平0,三态缓存器u1的控制信号en为低电平0,使得多路复用器u2_2的输出为低电平0,寄存器u3_2的输出端q输出低电平0,创建的端口三态缓存器u4的控制信号为低电平0,输出高阻态z,从而使得逻辑电路的输出端dout输出高阻态z。

本发明采用复制和重构逻辑单元的方式,实现三态缓存器控制信号逻辑的优化,能支持从内部三态缓存器到输出端口间所经过的不同类型的逻辑单元。此外,当逻辑电路中存在多个内部三态缓存器时,可以同时对多个内部缓存器进行优化,也可以逐个对内部三态缓存器进行优化。

参考图7所示,本申请的第二实施例中还公开了一种逻辑电路的优化装置包括:

识别模块,配置为识别逻辑电路中的至少一个三态缓存器;

判断模块,配置为判断所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元是否可优化;

收集模块,配置为收集所述所有的逻辑单元;

复制模块,配置为复制所述所有的逻辑单元;

创建模块,配置为创建端口三态缓存器,所述端口三态缓存器输出连接所述输出端口;

第一重构模块,配置为重构收集的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的数据信号;

第二重构模块,配置为重构复制的所述所有的逻辑单元,将其输出连接所述端口三态缓存器的控制信号。

在一个优选例中,所述判断模块检查所述三态缓存器至所述逻辑电路输出端口之间所有的逻辑单元,判断所有的逻辑单元中是否存在不可优化的逻辑单元,所述不可优化的逻辑单元包括类型不支持高阻态信号和/或输出路径分支。

在一个优选例中,所述第一重构模块将收集的所述所有的逻辑单元中的三态缓存器的数据信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;将收集的所述所有的逻辑单元的输出连接所述端口三态缓存器的数据信号。

在一个优选例中,所述第二重构模块将复制的所述所有的逻辑单元中的三态缓存器的控制信号作为连接该三态缓存器的后续逻辑单元的输入,并移除该三态缓存器;将复制的所述所有的逻辑单元的输出连接所述端口三态缓存器的控制信号。

在一个优选例中,所述所有的逻辑单元包括:二进制多路复用器、多路复用器、独热编码多路复用器、寄存器中的任意一个或多个逻辑单元。

第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。

需要说明的是,本领域技术人员应当理解,上述逻辑电路优化装置的实施方式中所示的各模块的实现功能可参照前述逻辑电路优化方法的相关描述而理解。逻辑电路优化装置的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例逻辑电路优化装置如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

相应地,本申请的另一实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。

在本说明书提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。

在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1