一种查找表工艺映射方法与流程

文档序号:11138046阅读:358来源:国知局
一种查找表工艺映射方法与制造工艺

本发明涉及电子技术领域,尤其涉及一种查找表工艺映射方法。



背景技术:

现场可编程门阵列((Field-Programmable Gate Array,简称FPGA)是一种具有丰富硬件资源、强大并行处理能力和灵活可配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越广泛的应用。随着FPGA的应用越来越广泛,对于FPGA芯片上的器件要求也越来越高。利用FPGA芯片的设计越来越复杂,组合逻辑环出现的频率也越来越频繁,因此,对FPGA的综合优化能力的要求越来越高。传统的工艺映射流程中,将逻辑门电路映射为查找表的前提是所处理的逻辑电路可抽象为一个有向无环图。而在实际过程中,组合逻辑环经常存在于逻辑电路中,具体如图1所示,这些组合逻辑环的出现,给查找表映射带来了不必要的麻烦,因此,寻找一种能够处理包含组合逻辑环的逻辑电路的方法,使其能等效抽象为有向无环图,是亟待解决的问题。



技术实现要素:

为了解决上述问题,本发明提供一种查找表工艺映射方法。

第一方面,本发明提供了一种查找表工艺映射方法,所述方法包括:

当确定逻辑电路存在组合逻辑环时,断开逻辑电路中构成组合逻辑环的第一逻辑门和第二逻辑门之间的一端电路连接;

在第一逻辑门被断开连接的第一输入端插入外部输入,以及在第二逻辑门被断开连接的第二输出端插入外部输出,其中外部输入和外部输出均等效于第一逻辑门的第一输入端的输入,或第二逻辑门的第二输出端的输出;

对断开组合逻辑环后的逻辑电路进行查找表映射;

恢复逻辑电路中的组合逻辑环,并删除外部输入和外部输出。

优选的,断开逻辑电路中构成组合逻辑环的第一逻辑门和第二逻辑门之间的一端电路连接之前,该方法还包括:遍历逻辑电路,查找逻辑电路中的组合逻辑环。

本发明提供的查找表工艺映射方法,在确定逻辑电路中存在组合逻辑环时,首先要断开构成组合逻辑环中第一逻辑门和第二逻辑门之间的一端连接,并在断开连接处,分别插入外部输入和外部输出。然后对断开组合逻辑环后的逻辑电路进行查找映射。通过该方法,实现了对包含组合逻辑环的逻辑电路进行查找表映射。

附图说明

图1为现有技术中的一个存在组合逻辑环的逻辑电路结构示意图;

图2本发明实施例提供的一种查找表工艺映射方法流程示意图;

图3为本发明实施例提供的断开逻辑电路中的组合逻辑环,并插入外部输入和外部输出的逻辑结构示意图;

图4为本发明实施提供的,在图1所示的逻辑电路基础上,分别在输入输出端口加入缓冲器后的逻辑电路结构示意图;

图5为本发明实施例提供的查找表映射后获取的查找表结果示意图;

图6为本发明实施例提供的删除外部输入输出,恢复组合逻辑环后的查找表结果示意图。

具体实施方式

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

图2本发明实施例提供的一种查找表工艺映射方法流程示意图200。如图所示2,该方法包括:

步骤210,当确定逻辑电路存在组合逻辑环时,断开逻辑电路中构成组合逻辑环的第一逻辑门和第二逻辑门之间的一端电路连接。

具体的,如图1所示的一个存在组合逻辑环的逻辑电路结构示意图,当已经确定存在组合逻辑环时,将构成组合逻辑环中的第一逻辑门和第二逻辑门之间的一端电路连接断开。

步骤220,在第一逻辑门被断开连接的第一输入端插入外部输入,以及在第二逻辑门被断开连接的第二输出端插入外部输出。

具体的,在第一逻辑门被断开连接的第一输入端插入外部输入PI_A,在第二逻辑门被断开链接的第二输出端插入外部输出PO_A,具体如图3所示。

读者应理解,这里的PI_A和PO_A其实并没有任何的实际意义,只是想说明将组合逻辑环中的一端电路,即“与”逻辑门A2的输入端b和“与”逻辑门A3的输出端之间的连接电路断开,那么A2的b输入端需要连接一个输入总线,而A3的输出端同样需要连接一个输出总线。而外部输入端PI_A的输入和外部输出端PO_A的输出正是等效于逻辑门A2的b输入端的输入,或逻辑门A3的输出端的输出。此时,逻辑环已经被消除,可以完成查找表的映射过程了。具体如步骤230所述。

步骤230,对断开组合逻辑环后的逻辑电路进行查找表映射。

具体的,具体如图5所示,这里将图3中的逻辑门A0和A2映射到查找表(Look-Up-Table,简称LUT)LUT1上,而将逻辑门A0,A1和A3映射到查找表LUT2上。

具体过程包括:

因为图3中的逻辑门A0和A2映射到图5中的查找表LUT1中,逻辑门A0和A2一共包括了三个输入端,输入端D和输入端C,以及第三输入端PI_A,分别映射到查找表LUT1的三个输入端,而输出端Q映射到LUT1的输出端;

图3中的逻辑门A0,A1和A3映射到查找表LUT2上,逻辑门A0,A1和A3所包括的输入端为输入端D,输入端C以及Q端,输出端为NQ和PI_O。

当然,本文中仅仅是举了一个具体的将逻辑电路映射到查找表的例子,但是逻辑电路可以根据不同的组合,映射为不同的查找表,其他映射方式与本例类似,不再赘述。而具体的如何根据一个逻辑电路确定映射后的查找表,则根据查找表的掩码值确定,即首先根据逻辑电路中的输入值,获取一个逻辑电路输出值的真值表。而这个真值表正是查找表对应的掩码值。当逻辑电路的输入值不同时,可以确定不同的输出值。那么根据这个输出值来确定对应的查找表。

当然,断开组合逻辑环就是为了实现逻辑电路到查找表的映射,在完成映射之后,仍然需要恢复原来逻辑电路中存在的组合逻辑环。因此,该方法还包括步骤240。

步骤240,恢复组合逻辑环,并删除外部输入和外部输出。

具体如图6所示,恢复逻辑电路中的组合逻辑环,并删除外部输入和外部输出。

可选的,在断开逻辑电路中构成组合逻辑环的第一逻辑门和第二逻辑门之间的一端电路连接之前,该方法还包括:步骤205,遍历逻辑电路,查找组合逻辑环。

具体过程为:

在本申请文件中,仅以图1所示的逻辑电路为例进行说明,其他逻辑电路类似,这里不再赘述。

首先,需要说明的是,查找组合逻辑环的方法是图论中的典型方法,每个“逻辑器件”(在下文中均指block或block单元)都对应图(图论中的图)中的一个节点。因此为了表述方便,对于输入输出的接口,我们分别插入了一个缓冲器,其意义就是把接口转化为一个等效的block,从而使得搜索与入队出队的元素都是block,即可将问题等效转化为一个图搜索的问题。

因此,步骤a,在逻辑电路的最初输入输出端口分别插入缓冲器bufferblock。具体如图4所示。图4为本发明实施例提供的,在图1所示的逻辑电路基础上,分别在输入输出端口加入缓冲器后的逻辑电路结构示意图。

首先,因为在查找组合逻辑环的思想是将所有的逻辑门都加入到先进先出的队列A中,然后查找每一个逻辑门的输入输出的block单元,当确定某一个block单元所在的逻辑门,在查找过程中被标记两次时,则说明该block单元所在的逻辑门可能属于构成组合逻辑环的一个逻辑门。而为了能够更好的实现查找到组合逻辑环,在输入端口D和C端分别插入输入缓冲器,例如将其分别命名为IBUF0和IBUF1,而在输出端口Q和NQ端分别插入输出缓存器,并将其命名为OBUF0和OBUF1。

步骤b,将OBUF0和OBUF1加入到先进先出队列A中,并将IBUF0与IBUF1标记为checked。查找组合逻辑环的思想是从输出端查找到输入端,所以需要首先将IBUF0和IBUF1标记为checked,以便于确定查找的终点。

应理解,这里所说的标记为checked,表示该节点,以及该节点的全部输入节点都已完成检查且确定不包含在任何组合逻辑环中,而当一个节点的全部输入都已经被标记为checked时,则说明该节点可以被标记为checked。

而在下文中,将会介绍到某一节点被标记为checking,而checking表示该节点(在图4中具体指的是逻辑门)以及该节点的全部输入节点之前都已经被访问过,但是尚且不能够确定该节点是否在组合逻辑环中。而存在组合逻辑环的充要条件是,一个被标记为checking的节点被再次访问到。

步骤c,按照先进先出的原则,首先从先进先出队列A中取出缓冲器OBUF0,其中OBUF0的block单元并未有任何的标记,包括已经被访问的标记Checking或者已经被检查的标记checked。那么,要首先确定其输入端“与”门A2的block单元是否有被标记,确定A2的block单元同样没有任何标记,所以,暂时不能确定OBUF0是否存在组合逻辑环,不能够将其的block单元标记为checked,只能将其的block单元先标记为checking。并将A2放入到队列A中。

步骤d,从队列A中取出OBUF1,类似的,OBUF1的block单元并没有做过任何标记,而OBUF1的输入为“与”门A3,A3的block单元同样没有做过任何的标记,那么暂时不能够确定OBUF1是否存在组合逻辑环,只能暂时将其标记为checking。并从队列A中取出OBUF1,且将其的输入A3加入到队列A中。

步骤e,从队列A中取出A2,因为A2并未做过任何标记,确定其输入为“与”门A0和“与”门A3。A0和A3同样未做过任何处理,所以,暂时将A2标记为checking,并从队列A中取出A2,且将A0和A3加入到队列中。

步骤f,因为此时队列中包括的是A3,A0和A3,这里,为了更好的区别,将队列中第一次加入的A3命名为A3(1),将第二次加入的A3命名为A3(2)。根据先入先出的顺序,需要取出A3(1),因为此时A3(1)同样未做过任何处理,所以,确定其输入分别为“与”门A1和“与”门A2,因为A1并未做过任何处理,而A2也仅仅标记为checking,而不是checked,所以,同样不能确定A3(1)是否属于构成组合逻辑环中的一个逻辑门,只能暂时将其标记为checking,并将其从队列中取出,将A1和A2加入到队列中。

步骤g,按照先进先出顺序,从队列A中取出A0,因为A0从未被做过任何标记,所以确定其输入为IBUF0和IBUF1,因为之前已经分别标记过IBUF0和IBUF1为checked,所以可以确定A0不属于构成组合逻辑环中的一个逻辑门,可以将其标记为checked,将其从队列中取出。

步骤h,从队列中取出A3(2),因为,之前已经将其标记过checking,而此时又再次被取出,则说明A3(2)属于构成组合逻辑环中的一个逻辑门。即该逻辑电路中存在组合逻辑环。此时,查找完毕。

为了能够更加方便读者理解,这里再次对A3(1)和A3(2)做补充说明:在上述步骤中,A3在队列中共出现两次,第一次出现A3是在步骤d中,并可以将其命名为A3(1),第二次出现A3是在步骤e中,记为A3(2)。

那么,还原一下上文中所有逻辑门加入队列A中顺序应该是:

OBF01和OBF02,A2,A3(1),A0和A3(2)。所以,在步骤g中确定A0不属于构成组合逻辑环的逻辑门之后,那么按照先进先出的顺序,所要取出进行处理的逻辑门应该是A3(2)。即在步骤h中重新取出A3。并且判断出A3已经在队列中被标记过checking,而此次又被取出,则说明A3属于构成组合逻辑环中的一个逻辑门。即该逻辑电路中存在组合逻辑环,需要进行下一步的处理,即消除组合逻辑环,完成查找表的映射。具体消除组合逻辑环的步骤已经在步骤210~220做了详细介绍。

另外,读者应该理解,上述所举的在一个具体的逻辑电路中查找组合逻辑环,消除组合逻辑环,完成查找表映射,以及恢复组合逻辑环的过程,仅仅是一个具体的实施方式。在其他逻辑电路中查找组合逻辑环、消除组合逻辑环完成查找表映射以及恢复组合逻辑环的过程与上文中所介绍的方式类似,这里不再赘述。

此外,还需要说明的是,上述说介绍的查找组合逻辑环的方法,当其应用到一个具体的逻辑电路中时,每次只能查询到一个组合逻辑环。对应的,消除组合逻辑环的方法也同样是每执行一次,消除一个组合逻辑环。因此,当一个逻辑电路中存在多个组合逻辑环时,则需要重复执行上述步骤。直到确认逻辑电路中没有组合逻辑环的存在为止,并且在消除组合逻辑环后,再将插入的IBUF和OBUF从逻辑电路中移除。

本发明提供的查找表工艺映射方法,在确定逻辑电路中存在组合逻辑环时,首先要断开逻辑电路中构成组合逻辑环中第一逻辑门和第二逻辑门之间的一端电路连接,并在断开连接处,分别插入外部输入和外部输出。然后对断开组合逻辑环后的逻辑电路进行查找映射。通过该方法,实现了对包含组合逻辑环的逻辑电路进行查找表映射。

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

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

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

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