可编程逻辑器件重构方法及装置的制造方法
【技术领域】
[0001] 本发明涉及可编程逻辑器件的应用领域,特别地涉及一种可编程逻辑器件重构方 法及装置。
【背景技术】
[0002] 对于FPGA (Field - Programmable Gate Array,现场可编程门阵列)等可编程逻 辑器件,只需要通过开发工具将设计好的电路转化为位流文件导入后便可得到期望的电路 功能,与专用逻辑器件相比节省了流片成本,并且更加灵活,可重复编程以实现不同逻辑功 能。
[0003] 可编程逻辑器件在方便用户使用的同时,也会存在一些缺点,如使用zynq 7000 系列的SoC FPGA进行电路设计时,现有FPGA可重构技术采用配置帧的方式,对基本逻辑单 元(查找表、触发器、CLB、I0B等基本器件)实现细粒度的重构,这种方式需要根据重构后 目标电路生成全部电路的位流文件,并向这些基本器件发送重构需要的位流数据,这些基 本器更新配置完成重构,这类FPGA芯片结构设计实现难度大、芯片面积大、芯片成本高。
[0004] 因此,如何提供一种具备较低成本的可编程逻辑器件重构技术,是本领域技术人 员亟待解决的技术问题。
【发明内容】
[0005] 本发明提供了一种可编程逻辑器件重构方法及装置,以降低可编程逻辑器件的重 构成本。
[0006] 本发明提供了一种可编程逻辑器件重构方法,在一个实施例中,该方法包括:确定 可编程逻辑器件的待重构资源区;将待重构资源区划分为至少一个基本单元,基本单元包 括至少一个可重构器件;分别对各基本单元进行重构。
[0007] 进一步的,上述实施例中的基本单元还包括可重构器件与其他器件之间可重构的 线路连接。
[0008] 进一步的,上述实施例中的可重构器件包括可配置逻辑模块CLB。
[0009] 进一步的,上述实施例中的将待重构资源区划分为至少一个基本单元包括:将待 重构资源区按照物理区域划分为至少一个基本单元;或者,将待重构资源区按照物理区域 及目标功能划分为至少一个基本单元。
[0010] 进一步的,上述实施例中的目标功能包括:基本单元需要实现的功能,或者待重构 资源区需要实现的功能。
[0011] 进一步的,上述实施例中的分别对各基本单元进行重构包括:根据目标功能分别 生成各基本单元的新的位流文件;将各基本单元的新的位流文件配置到对应的基本单元。
[0012] 本发明提供了一种可编程逻辑器件重构装置,在一个实施例中,该装置包括:确定 模块,用于确定可编程逻辑器件的待重构资源区;划分模块,用于将待重构资源区划分为至 少一个基本单元,基本单元包括至少一个可重构器件;重构模块,用于分别对各基本单元进 行重构。
[0013] 进一步的,上述实施例中的基本单元还包括可重构器件与其他器件之间可重构的 线路连接。
[0014] 进一步的,上述实施例中的可重构器件包括可配置逻辑模块CLB。
[0015] 进一步的,上述实施例中的划分模块具体用于:将待重构资源区按照物理区域划 分为至少一个基本单元;或者,将待重构资源区按照物理区域及目标功能划分为至少一个 基本单元。
[0016] 进一步的,上述实施例中的目标功能包括:基本单元需要实现的功能,或者待重构 资源区需要实现的功能。
[0017] 进一步的,上述实施例中的重构模块具体用于根据目标功能分别生成各基本单元 的新的位流文件;将各基本单元的新的位流文件配置到对应的基本单元。
[0018] 本发明的有益效果:
[0019] 本发明提供的方案,根据需要确定可编程逻辑器件中的待重构资源区,并且其划 分为基本单元,基本单元包括至少一个可重构器件,这些可重构器件在写入位流数据后就 可以实现基本的逻辑功能,即每个基本单元都可以实现目标电路的一些功能,在此基础上, 分别对各基本单元进行重构,实现了以基本单元为最小重构单元的重构技术,与现有以基 本器件为最小重构单元的重构技术相比,最小重构范围增大,重构时所需要的控制信号及 数据流数量都将减少,降低了可编程逻辑器件的器件繁杂度及重构成本。
【附图说明】
[0020] 图1为本发明第一实施例提供的可编程逻辑器件重构方法的流程图;
[0021] 图2为本发明第二实施例提供的可编程逻辑器件重构装置的示意图;
[0022] 图3为本发明第三实施例提供的可编程逻辑器件重构方法的流程图;
[0023] 图4为本发明第三实施例中FPGA器件的划分步骤示意图;
[0024] 图5为本发明第三实施例中待重构资源区的重构示意图;
[0025] 图6为本发明第三实施例中单个基本单元的实现示意图。
【具体实施方式】
[0026] 现通过【具体实施方式】结合附图的方式对本发明做出进一步的诠释说明。
[0027] 第一实施例:
[0028] 图1为本发明第一实施例提供的可编程逻辑器件重构方法的流程图,由图1可知, 在本实施例中,本发明提供的可编程逻辑器件重构方法包括以下步骤:
[0029] S101 :确定可编程逻辑器件的待重构资源区;
[0030] 本步骤首先需要确定可编程逻辑器件中支持动态重构的可重构资源区,可编程逻 辑器件的种类很多,本发明以FPGA为例进行说明:用户根据目标电路的复杂度等属性选择 某些型号的FPGA,将该FPGA划分为可重构资源区及不可重构资源区,可重构资源区是指该 区域内的资源具备动态可重构,可以在电路运行中通过时分复用写入不同的位流数据在不 用时间实现不同的功能,不可重构资源区是指该区域的资源在电路运行中不支持动态写入 位流数据以实现不同的功能。
[0031] 在用户根据需要选定FPGA之后,根据器件规格就可以得知器件上可重构资源区 的范围,然后用户就可以根据想要改变的目标电路中的重构子电路的功能及可重构资源区 的范围,在器件上确定出一个或多个待重构资源区,待重构资源区可以是可重构资源区的 一部分(完全属于可重构资源区),也可以包括部分可重构资源区及部分不可重构资源区 (用于实现目标电路中不需要重构的电路功能)。
[0032] S102 :将待重构资源区划分为至少一个基本单元,基本单元包括至少一个可重构 器件;
[0033] 在确定待重构资源区后,将待重构资源区内的资源(包括CLB、可编辑互连线等) 划分为至少一个基本单元,每个基本单元都包括至少一个可重构器件(如CLB),这样就可 以在写入位流文件后实现一些基本功能。
[0034] 不同的基本单元之间的可重构器件数量可以不同,可以根据该基本单元所需要实 现的目标功能进行划分,如果某些基本单元需要实现的目标功能简单,那么就可以仅包括 一个可重构器件,对应的,若一些基本单元需要实现的目标功能比较复杂,就可以包括较多 数量的可重构器件。
[0035] 在一些实施例中,为了便于用户为目标电路所需要实现的目标功能中各子功能分 配对应的基本单元,可以设置为每个基本单元都包括相同数量的可重构器件(这些可重构 器件相互配合可以实现目标电路的一些小功能),这样就保证了每个基本单元在写入位流 数据后都可以实现一定的功能,并且每个基本单元所具备的可重构资源是相同的,在此基 础上,就可以将目标电路分解为很多小功能,并为这些小功能分配对应的基本单元,而不必 先判断这样小功能实现的复杂度,在进行基本单元的划分,划分方式简单。
[0036] S103 :分别对各基本单元进行重构,可以通过开发工具将目标电路的位流文件约 束到基本单元来实现。
[0037] 在一些实施例中,上述实施例中的基本单元还包括可重构器件与其他器件之间可 重构的线路连接。在实际应用中,可重构器件在工作时是需要与其他器件进行通信的,如完 成位流文件的获取、可重构器件之间的工作逻辑关系等,本实施例通过将可重构器件与其 他器件之间可重构的线路连接也划分到基本单元内,使得基本单元的功能更完整,可重构 的线路连接包括可编辑互连线、IOB资源等。
[0038] 在一些实施例中,以FPGA器件为例,上述实施例中的可重构器件为可配置逻辑模 块CLB,当然在一些特殊的应用领域,所使用的FPGA器件内的可重构资源类型不同,对应 的,可重构器件就是这类FPGA器件内的可重构资源。
[0039] 在一些实施例中,上述实施例中的将待重构资源区划分为至少一个基本单元包 括:将待重构资源区按照物理区域划分为至少一个基本单元;或者,将待重构资源区按照 物理区域及目标功能划分为至少一个基本单元。本实施例提供了基本单元的划分方式,按 照物理区域划分、或者按照物理区域及目标功能划分,使得基本单元内的所有器件在物理 位置上是连续的,这样就降低了基本单元内各器件之间的通信繁杂度,进而降低了根据基 本单元的目标功能所生成的位流文件内位流数据的长度及繁杂度,降低了实现可重构的成 本。
[0040] 在一些实施例中,上述实施例中的两个基本单元之间是相邻的,并且不重叠的;当 然也可以是间隔一定区域的,这样间隔区域内就可以通过设置位流文件实现一些具备控 制、存储等功能的固定子电路。
[0041] 在一些实施例中,上述实施例中的某基本单元包括多个(两个及以上)可重构器 件时,这些可重构器件的类型在需要实现的目标功能上是有联系的,如基本单元需要实现 电阻及电容等功能时,其内部器件就可以包括可重构的电阻及电容等。
[0042] 在一些实施例中,上述实施例中的目标功能包括:基本单元需要实现的功能,或者 待重构资源区需要实现的功能。基本单元需要实现的功能是指在目标电路中,基本单元所 写入的位流文件对应的功能,如实现一个特定阻值的电阻功能时,基本单元包括一个可重