一种寄存器的综合优化方法与流程

文档序号:11134263阅读:735来源:国知局
一种寄存器的综合优化方法与制造工艺

本发明涉及电子技术领域,尤其涉及一种寄存器的综合优化方法。



背景技术:

随着现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)芯片的发展,利用FPGA芯片的设计越来越复杂,出于节省芯片面积,降低芯片功耗、提升设计性能的考虑,对FPGA的综合优化的能力的要求越来越高。而传统的综合优化过程中,只能针对组合逻辑进行优化,而对于寄存器,只能将其视为“黑盒”,在逻辑优化的过程中保持不变。也即是在现有技术中,缺乏针对寄存器这类时序模块的优化能力,从而使得综合优化的结果往往达不到最优效果,甚至造成资源浪费。因此,在综合优化的过程中,寻找一种可以实现寄存器的综合优化的方法,是亟待解决的问题。



技术实现要素:

为了解决上述问题,本发明提供了一种寄存器的综合优化方法,所述方法包括:

当寄存器的第一控制端口置为第一电平值时,若所述寄存器的输入端口始终输入第二电平值,或将第二控制端口置为第三电平值后,所述寄存器的输出端口输出第二电平值,其中,所述第一电平值是使所述第一控制端口无效的电平值,所述第二电平值是与当所述第二控制端口有效时所述寄存器输出的值相等的电平值,所述第三电平值是使所述第二控制端口有效的电平值,且所述第二控制端口执行的功能与所述第一控制端口的执行的功能相反;

利用第二电平值等效替代所述寄存器的输出值。

优选的,当所述第一控制端口为所述寄存器的置位端时,所述第二控制端口为复位端;

或者

当所述第一控制端口为复位端时,所述第二控制端口为置位端。

优选的,当所述第一控制端口为置位端时,所述第二电平值为低电平值;

或者,

当所述第一控制端口为复位端时,所述第二电平值为高电平值。

进一步优选的,所述方法还包括:将所述寄存器的输入端口与输出端口相连接,当所述寄存器的第一控制端口置为第一电平值,且将所述第二控制端口置为第三电平值后,利用第四电平值等效替代所述寄存器的输出值,其中,所述第四电平值是与所述第二电平值等效的电平值。

本发明提供的一种寄存器的综合优化方法,将寄存器的输出等效转化为常量,由此将一个常量输出代替整个寄存器的输出,即可以将寄存器在布尔网表中删除,而且大大节省了FPGA芯片面积,降低芯片功耗、提升了FPGA的设计性能。

附图说明

图1为本发明提供的一种具体实现寄存器综合优化的结构示意图;

图2为本发明提供的另一种具体实现寄存器综合优化的结构示意图;

图3为本发明提供的又一种具体实现寄存器综合优化的结构示意图;

图4为本发明提供的再一种具体实现寄存器综合优化的结构示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。典型FPGA的开发流程一般包括功能定义/器件选型、设计输入、功能仿真、综合优化、综合后仿真、工艺映射、布局布线、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。

所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。

而本发明提供的一种寄存器的综合优化方法,正是属于FPGA的综合优化阶段,主要是将寄存器的输出值转化为常量值的情况下,将寄存器从布尔网表中删除,而利用一个常量值等效替代寄存器的输出值。将寄存器等效为常量输出后,通常这个常量可以结合剩余的组合逻辑进行进一步的组合逻辑优化。由此,可以节省芯片面积,降低芯片功耗、提升设计性能。而具体在哪些情况下才能够将寄存器的输出值等效为一个常量值,将在下文中说明:

具体包括:

当寄存器的第一控制端口置为第一电平值,且寄存器的输入端输入第二电平值后,将第二控制端口置为第三电平值,其中,第一电平值是是第一控制端口无效的电平值。第三电平值是使第二控制端口有效的电平值,且第二控制端口执行的功能与第一控制端口的执行的功能相反。

此时,寄存器的输出值已经变为一个常量值,也即第二电平值,因此可以将该寄存器删除,利用第二电平值等效替代寄存器的输出值。

例如,当第一控制端口为置位端时,第二控制端口因为执行的功能是与第一控制端口执行的功能相反,所以,毫无疑问,第二控制端口为复位端。并且,这里仅在置位端和复位端输入为高电平值时为有效,而输入为低电平值时为无效为例说明。其他情形则可以根据实际情况而定。

那么在一种情况中,具体如图1所示,当寄存器的第一控制端口为置位端,第二控制端口为复位端,第一电平值为使第一控制端口无效时的电平值,在本实施例中为低电平值“0”,而第二电平值是与第二控制端口有效时,与输出端口输出值相等的值,即当复位端口有效时,寄存器的输出值永远为低电平值“0”,那么第二电平值则为低电平值“0”。第三电平值为使第二控制端口有效的电平值,在本实施例中具体指的是高电平值“1”。当然,这里默认寄存器的其他端口(例如图中的使能信号端口,时钟信号端口等)均处于正常工作情况下。下文中的情形同样默认寄存器的其他端口均处于正常工作情况下。下文中将不再赘述。

图1(a)中,若置位端置为低电平值“0”时,而输入端始终输入低电平值“0”时。寄存器的输出端口输出值则一直为低电平值“0”,而且不发生改变。那么,此时的寄存器的输出值就可以用一个常量值“0”替代,寄存器也可以从布尔网表中删除了。

或者,如图1(b)所示,当寄存器的置位端口为低电平值“0”时,而复位端为高电平值“1”。那么,无论寄存器的输入端口输入的信号为高电平值还是低电平值。输出端口输出的值均为低电平值“0”。那么,寄存器的输出端口输出值同样可以用一个常量值“0”替代。此时,寄存器同样可以从布尔网表上删除了。

第二种情况,具体如图2所示,当寄存器的第一控制端口为复位端,而第二控制端口为置位端。同样的,第一电平值为使第一控制端口无效时的电平值,在本实施例中为低电平值“0”,而第二电平值是与第二控制端口有效时,与输出端口输出值相等的值,即当置位端口有效时,寄存器的输出值永远为高电平值“1”,那么第二电平值则为高电平值“1”。第三电平值为使第二控制端口有效的电平值,在本实施例中具体指的是高电平值“1”。

图2(a)中,若复位端为低电平“0”时,输入端始终输入高电平值“1”。寄存器的输出端口输出值则同样一直为高电平值“1”,而不发生任何改变。那么此时的寄存器的输出值就可以用一个常量值“1”替代,寄存器就可以从布尔网表中删除了。

或者,图2(b)中,当寄存器的复位端为低电平值“0”时,而置位端为高电平值“1”时,无论寄存器的输入端口输入的信号为高电平值还是低电平值,输出端口的值均为高电平值“1”。那么,寄存器的输出端口输出值同样可以用一个常量值“1”替代,此时寄存器可以从布尔网表上删除了。

可选的,将寄存器的输出值等效为常量值的情况还可以包括如下情形。前提是将寄存器的输入端口和输出端口相连接。

当寄存器的第一控制端口置为第一电平值,且将第二控制端口置为第三电平值后,利用第四电平值等效替代寄存器的输出值,其中,第四电平值是与第二电平值等效的电平值。

具体的,第三种情况,具体如图3所示,当第一控制端口为置位端,第二控制端口为复位端。与第一种情况类似的,置位端和复位端均为高电平“1”有效,低电平“0”无效。

在置位端置为低电平“0”,而在复位端没有置为高电平“1”之前,输出值同样会保持不变,但是输出值要根据之前的输出值X而定。而当复位端置为高电平“1”后,无论之前的输出值“X”为什么值,之后的输出值都将固定为第四电平值“0”。这里的第四电平值是与第一种情况中对应的第二电平值等效的电平值。此时的寄存器的输出值就可以用一个常量值,即第四电平值“0”替代,寄存器也可以从布尔网表中删除了。

第四种情况,具体如图4所示,当第一控制端口为复位端,第二控制端口为置位端。与第二种情况类似的,置位端和复位端均为高电平“1”有效,低电平“0”无效。

在复位端置为低电平“0”,而在置位端没有置为高电平“1”之前,输出值同样会保持不变,但是输出值要根据之前的输出值X而定。而当置位端置为高电平“1”后,无论之前的输出值“X”为什么值,之后的输出值都将固定为第四电平值“1”。这里的第四电平值是与第二种情况中的第二电平值等效的电平值。

此时的寄存器的输出值就可以用一个常量值,即第四电平值“1”替代,寄存器也可以从布尔网表中删除了。

通过上述四种情况可以,寄存器的输出值均可以利用一个“常量值”替代,作为输入端口信号输入到与寄存器连接的其他设备中,而寄存器则可以完全删除掉。由此,就可以大大的节省了FPGA芯片面积,降低芯片功耗、提升了FPGA的设计性能。

读者应该理解,在本发明的具体实施例中所列举的四种具体利用常量等效替代一个寄存器的情形,仅仅是本申请文件中列举的有限的可能,但是并不代表只有这几种情形才可以利用常量值等效寄存器,其他类似的或者与本申请文件所列举的例子等效的方案同样是本申请文件所保护的范围,这里不再一一举例说明。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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