CN109086467B - 可编程逻辑器件的i/o单元布局方法及装置、介质及设备 - Google Patents
可编程逻辑器件的i/o单元布局方法及装置、介质及设备 Download PDFInfo
- Publication number
- CN109086467B CN109086467B CN201710447827.0A CN201710447827A CN109086467B CN 109086467 B CN109086467 B CN 109086467B CN 201710447827 A CN201710447827 A CN 201710447827A CN 109086467 B CN109086467 B CN 109086467B
- Authority
- CN
- China
- Prior art keywords
- unit
- group
- cell
- virtual
- programmable logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种可编程逻辑器件的I/O单元布局方法及装置、介质及设备,所述方法包括:获取可编程逻辑器件的结构,以及所述可编程逻辑器件中的I/O库组的属性;获取每一个I/O单元的类型;根据每一个I/O单元的类型,设定虚拟I/O库组,且所述虚拟I/O库组的数量与所有I/O单元所对应的电气标准的数量相同;根据I/O单元的类型将所有I/O单元进行分组,得到多个I/O单元组;根据预设的约束条件构建目标方程,确定所述目标方程是否存在I/O单元布局的可行解,并在存在所述I/O单元布局的可行解时进行I/O单元布局。上述方案能够提高I/O单元布局的效率。
Description
技术领域
本发明涉及集成电路领域,尤其涉及一种可编程逻辑器件的I/O单元布局方法及装置、介质及设备。
背景技术
可编程逻辑器件,例如现场可编程门阵列(Field Programmable Gate Array,FPGA),均可以支持多种不同的输入/输出(In/Out,I/O)标准。每一种标准包含一系列的属性,例如是否需要参考电压、参考电压的类型、是否需要输入电压或输出电压、输入电压或输出电压的大小、终端类型等。
现有的可编程逻辑器件将大量的I/O单元组合在有限数量的I/O库(Bank)中,I/OBank是指多个I/O单元的集合,且一个Bank中所使用的I/O单元的电压标准兼容。在实际应用中,一个普通的可编程逻辑器件最多可以包含12个I/O Bank。
在对I/O单元进行布局时,通常按照一定的约束条件,将不同的I/O单元约束组合在不同的I/O Bank中。现有的I/O单元布局方法中,首先找到一个能够满足约束的情况下合理布局固定单元的解,之后布局其他的I/O单元以满足所有的约束条件。
现有技术中,在进行I/O单元布局时,通常采用启发式算法,例如模拟退火算法、二分匹配算法、装箱算法等。然而,在采用启发式算法时,可能无法得到一个可行解,造成无法进行I/O单元布局,导致I/O单元布局效率低下。
发明内容
本发明实施例解决的技术问题是如何提高I/O单元布局的效率。
为解决上述技术问题,本发明实施例提供一种可编程逻辑器件的I/O单元布局方法,包括:获取可编程逻辑器件的结构,以及所述可编程逻辑器件中的I/O库组的属性;获取每一个I/O单元的类型;根据每一个I/O单元的类型,设定虚拟I/O库组,且所述虚拟I/O库组的数量与所有I/O单元所对应的电气标准的数量相同;根据I/O单元的类型将所有I/O单元进行分组,得到多个I/O单元组;根据预设的约束条件构建目标方程,确定所述目标方程是否存在I/O单元布局的可行解,并在存在所述I/O单元布局的可行解时进行I/O单元布局。
可选的,所述构建目标方程,确定是否存在可行解,包括:计算所述目标方程中所需I/O库数量;判断所述所需I/O库数量是否超出实际器件提供的I/O库总数;当所述所需I/O库数量未超出实际器件提供的I/O库总数时,确定存在可行解;当所述所需I/O库数量超出实际器件提供的I/O库总数时,确定不存在可行解。
可选的,所述确定是否存在可行解,包括:采用整数线性规划方法确定所述目标方程是否存在可行解。
可选的,所述预设的约束条件包括:资源约束条件、容量约束条件,所述资源约束条件为:所述容量约束条件为:其中,M为I/O单元类型的总数,Xik为I/O单元组Gi中放入虚拟I/O Bank组Bk的I/O单元的数量,Ni为I/O单元组Gi的总数;Aik为二进制兼容性矩阵的元素,适于表征I/O单元组Gi和虚拟I/O Bank组Bk是否相互兼容;虚拟I/O Bank组Bk表征为类型为k为虚拟I/O Bank组,定义为Bk={Yk,Tk},Tk定义为Tk={Sk,Ck},Sk表征类型为k的I/O单元的电气标准,Ck表征实际器件的一个Bank可以容纳k类型的I/O单元的最大数目,Yk表征Tk类型的虚拟I/O Bank组的Bank个数。
可选的,在得到所述目标方程的解之后,还包括:将虚拟I/O库映射到实际器件提供的物理库中。
可选的,所述I/O单元的类型包括:I/O单元的输入输出电压、参考电压以及终端类型。
可选的,所述I/O单元的电气标准为所述I/O单元的电平标准。
可选的,所述预设的约束条件包括二进制兼容性矩阵,所述二进制兼容性矩阵适于表示每一个I/O单元的电气标准与其他的I/O单元的电气标准是否兼容,且所述二进制兼容性矩阵采用如下步骤生成:根据所有I/O单元的类型,构建所述I/O单元组与所述虚拟I/O库组的二进制兼容性矩阵。
本发明实施例还提供了一种可编程逻辑器件的I/O单元布局装置,包括:第一获取单元,用于获取可编程逻辑器件的结构,以及所述可编程逻辑器件中的I/O库组的属性;第二获取单元,用于获取每一个I/O单元的类型;设定单元,用于根据每一个I/O单元的类型,设定虚拟I/O库组,且所述虚拟I/O库组的数量与所有I/O单元所对应的所有电气标准的数量相同;分组单元,用于根据I/O单元的类型将所有I/O单元进行分组,得到多个I/O单元组;目标方程建立单元,用于根据预设的约束条件构建目标方程;可行解确定单元,用于确定所述目标方程是否存在I/O单元布局的可行解;布局单元,用于当所述目标方程存在I/O单元布局的可行解时进行I/O单元布局。
可选的,所述可行解确定单元,用于计算所述目标方程中所需I/O库数量;判断所述所需I/O库数量是否超出实际器件提供的I/O库总数;当所述所需I/O库数量未超出实际器件提供的I/O库总数时,确定存在可行解;当所述所需I/O库数量超出实际器件提供的I/O库总数时,确定不存在可行解。
可选的,所述可行解确定单元,用于采用整数线性规划方法确定所述目标方程是否存在可行解。
可选的,所述预设的约束条件包括:资源约束条件、容量约束条件,其中:所述资源约束条件为:所述容量约束条件为:其中,M为I/O单元类型的总数,Xik为I/O单元组Gi中放入虚拟I/O Bank组Bk的I/O单元的数量,Ni为I/O单元组Gi的总数;Aik为二进制兼容性矩阵的元素,适于表征I/O单元组Gi和虚拟I/O Bank组Bk是否相互兼容;虚拟I/O Bank组Bk表征为类型为k为虚拟I/O Bank组,定义为Bk={Yk,Tk},Tk定义为Tk={Sk,Ck},Sk表征类型为k的I/O单元的电气标准,Ck表征实际器件的一个Bank可以容纳k类型的I/O单元的最大数目,Yk表征Tk类型的虚拟I/O Bank组的Bank个数。
可选的,所述可编程逻辑器件的I/O单元布局装置还包括:映射单元,用于将虚拟I/O库映射到实际提供的物理库中。
可选的,所述I/O单元的类型包括:I/O单元的输入输出电压、参考电压以及终端类型。
可选的,所述I/O单元的电气标准为所述I/O单元的电平标准。
可选的,所述预设的约束条件包括二进制兼容性矩阵,所述二进制兼容性矩阵适于表示每一个I/O单元的电气标准与其他的I/O单元的电气标准是否兼容,且所述二进制兼容性矩阵采用如下步骤生成:根据所有I/O单元的类型,构建所述I/O单元组与所述虚拟I/O库组的二进制兼容性矩阵。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一种所述的可编程逻辑器件的I/O单元布局方法的步骤。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一种所述的可编程逻辑器件的I/O单元布局方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
根据每一个I/O单元的类型设定虚拟I/O库组,并将所有I/O单元进行分组,得到多个I/O单元组。根据预设的约束条件构建目标方程,确定目标方程是否存在I/O单元布局的可行解,并在存在I/O单元布局的可行解时进行I/O单元的布局。也即:上述方案在确定目标方程存在可行解之后才进行I/O单元的布局,而不是直接进行I/O单元布局,从而可以避免因不存在可行解而直接进行I/O单元布局而导致的I/O单元布局效率较低的问题。
附图说明
图1是本发明实施例中的一种可编程逻辑器件的I/O单元布局方法的流程图;
图2是本发明实施例中的一种可编程逻辑器件的I/O单元布局装置的结构示意图。
具体实施方式
现有技术中,在进行I/O单元布局时,通常采用启发式算法,例如模拟退火算法、二分匹配算法、装箱算法等。然而,在采用启发式算法时,可能无法得到一个可行解。若直接对I/O单元进行布局,则由于不存在可行解,导致无法对I/O单元进行布局的情况,造成I/O单元布局效率低下。
在本发明实施例中,根据每一个I/O单元的类型设定虚拟I/O库组,并将所有I/O单元进行分组,得到多个I/O单元组。根据预设的约束条件构建目标方程,确定目标方程是否存在I/O单元布局的可行解,并在存在I/O单元布局的可行解时进行I/O单元的布局。也即:上述方案在确定目标方程存在可行解之后才进行I/O单元的布局,而不是直接进行I/O单元布局,从而可以避免因不存在可行解而直接进行I/O单元布局而导致的I/O单元布局效率较低的问题。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
本发明实施例提供了一种可编程逻辑器件的I/O单元布局方法,参照图1,以下通过具体步骤进行详细说明。
步骤S101,获取可编程逻辑器件的结构,以及所述可编程逻辑器件中的I/O库组的属性。
步骤S102,获取每一个I/O单元的类型。
下面对步骤S101~S102进行说明。
在具体实施中,可以预先获取集成电路的设计信息,从而获取所设计的集成电路中的可编程逻辑器件的结构以及可编程逻辑器件中的I/O Bank组的属性。通过预设的电气标准从集成电路的设计信息中识别出每一个I/O单元的电气信息,以此来获取每一个I/O单元的类型。每一个I/O单元的类型可以包括I/O单元的电气标准以及与I/O单元连接的终端类型。
在实际应用中,可以在终端设备中安装有用于读取集成电路的设计信息的应用软件。在执行本发明实施例中提供的可编程逻辑器件的I/O单元布局方法之前,开发人员可以预先将设计完成的集成电路图等输入至相应的应用软件,通过相应的应用软件来读取集成电路的设计信息,并通过电气标准识别出每一个I/O单元的类型。
在具体实施中,可以以电平标准作为电气标准,通过电平标准识别出每一个I/O单元的输入输出电压、参考电压、中断类型等属性,以此来获取每一个I/O单元的类型。
在实际应用中,可以根据集成电路芯片中的各器件所固有的Bank来识别出每一个Bank所需的电平标准以及支持这些电平标准的容量大小,参照表1。
表1中,第一列为电平标准的名称。第二列为参考电压的大小,“无”表示为此电平标准不需要配置参考电压,需要说明的是,当某一个电平标准需要配置参考电压时,器件中的Bank可以预留出几个放置普通I/O单元的位置进行参考电压的配置。第三列为输入电压的大小,“无”表示为此电平标准不需要配置输入电压。第四列为输出电压的大小,“无”标识为此电平标准不需要配置输出电压。第五列为终端类型,其中单端终端和分列式终端均需要Bank中预留2个I/O单元的位置来配置终端类型。第六列为器件中的Bank可容纳此电平标准的I/O单元的数量,其中U为Bank所包含的普通I/O单元的数量,Vref为Bank中需要配置参考电压时预留出的I/O单元的数量,Vd为Bank中需要配置终端类型时预留出的I/O单元的数量。当Bank不需要配置参考电压以及终端类型中的至少一种时,预留出的I/O单元的位置可以配置为普通的I/O单元。
表1
步骤S103,根据每一个I/O单元的类型,设定虚拟I/O库组。
在具体实施中,在根据每一个I/O单元的类型设定虚拟I/O库(Bank)组时,设定的虚拟I/O Bank组的数量与所有I/O单元所对应的电气标准的数量相同。
设定I/O单元所对应的电气标准为I/O单元的电平标准,则可以根据每一个I/O单元的电平标准,设定虚拟I/O Bank组的数量与所有I/O单元所对应的电平标准的数量相同。换句话说,可以根据步骤S101中所获取到的所有I/O单元对应的电平标准的数量,来设定虚拟I/O Bank组。
例如,所有I/O单元所对应的电平标准包括LVCMOS25、LVDS25、PCI33_3、GTL、GTL_DCI、GTLP_DCI、HSTL_I_D、LVDCI_18以及LVDCI_33等9种,因此,设定虚拟I/O Bank组的数量为9。
在具体实施中,放置在同一Bank中的任意两个I/O单元的电平标准对应的输出电压相同,任意两个I/O单元的电平标准对应的输入电压相同,任意两个I/O单元的电平标准对应的参考电压相同;且两个同为单端终端的不同电平标准的I/O单元不能放置在同一Bank,两个同为分列式终端的不同电平标准的I/O单元也不能放置在同一Bank。
例如,I/O单元1的电平标准为LVCMOS25,I/O单元2的电平标准为GTL,则从表1中可知,I/O单元1的电平标准LVCMOS25对应的参考电压与I/O单元2的电平标准GTL对应的参考电压不同,因此,在设定虚拟I/O Bank组时,不能将I/O单元1与I/O单元2放置在同一Bank中。
步骤S104,根据I/O单元的类型将所有I/O单元进行分组,得到多个I/O单元组。
在具体实施中,在每一个I/O单元组中,所有的I/O单元的电气标准可以相同。例如,I/O单元的电气标准为电平标准,则在每一个I/O单元组中,所有的I/O单元具有同样的电平标准。
步骤S105,根据预设的约束条件构建目标方程。
在具体实施中,预设的约束条件可以包括资源约束条件以及容量约束条件,其中,资源约束条件为:不同的虚拟I/O Bank中的某一类型I/O单元的总数与同一类型I/O单元组中的I/O单元的总数相同;容量约束条件为:虚拟I/O Bank中的I/O单元的总数不大于实际器件提供的Bank所能容纳的最大I/O单元数。
在具体实施中,预设的约束条件还可以包括二进制兼容性矩阵。
在具体实施中,二进制兼容性矩阵中的每一个元素适于表示一个I/O单元的电气标准与其他的I/O单元的电气标准是否兼容。也就是说,二进制兼容性矩阵用于表示I/O单元组与虚拟I/O Bank组是否兼容。
参照表2,给出了一种表1中的电平标准的二进制兼容矩阵。
表2
表2中,“1”表示为两个电平标准相互兼容,“0”表示为两个电平标准不兼容。
具体而言,设定第k个I/O单元的类型为Tk,Tk={Sk,Ck},Sk表征类型为k的I/O单元的电气标准,Ck表征实际器件的一个Bank可以容纳k类型的I/O单元的最大数目;设定第k个虚拟I/O Bank组为Bk,Bk={Yk,Tk},Yk表征Tk类型的虚拟I/O Bank组的Bank个数。设定第i个I/O单元组为Gi,且Gi={Ni,Ti},Ni为相同类型的Ti的I/O单元的总数目,i的取值范围为1~M,M位I/O单元类型的总数。
故,资源约束条件可以参照下式(1):
容量约束条件可以参照下式(2):
式(1)中,Xik为I/O单元组Gi中放入虚拟I/O Bank组Bk的I/O单元的数量;式(2)中,Aik为二进制兼容性矩阵的元素,适于表征I/O单元组Gi和虚拟I/O Bank组Bk是否相互兼容。
在具体实施中,约束条件还可以包括兼容性约束条件。对于已经有指定位置的I/O单元,如果其他电气标准的I/O单元与已指定位置的I/O单元相互不兼容,则指定位置的I/O单元所在位置的虚拟Bank对于不能与此I/O单元兼容的其他电气标准的容量设置为0。
在获取到二进制兼容性矩阵之后,根据预设的约束条件,即可构建目标方程。在具体实施中,构建目标方程的目标是得到最少的Bank数。
在具体实施中,构建得到的目标方程为F=min(Nvb),目标方程的可行解为:
其中,Nvb为所述目标方程的解。
从式(3)中可以得知,目标方程的可行解Nvb可以确定虚拟I/O Bank的个数,以及在每个虚拟I/O Bank中所需放置的每组I/O单元的个数。
步骤S106,确定所述目标方程是否存在I/O单元布局的可行解,并在存在所述I/O单元布局的可行解时进行I/O单元布局。
在具体实施中,可以采用如下方式确定目标方程是否存在I/O单元布局的可行解:计算目标方程中所需I/O Bank的数量;判断所需I/O Bank的数量是否超出实际器件提供的I/O Bank总数;当所需I/O Bank数量未超出实际器件提供的I/O Bank总数时,确定存在可行解;当所需I/O Bank数量超出实际器件提供的I/O Bank总数时,确定不存在可行解。
在具体实施中,可以采用整数线性规划方法来求解目标方程。在采用整数线性规划方法求解目标方程时,得到的可行解的数目可能为一个,也可能为多个。当目标方程的可行解为多个时,开发者可以根据实际的应用需求从中选取一个并进行I/O单元布局,并在进行I/O单元布局的同时进行进一步优化。
在本发明实施例中,通过整数线性规划方法求解目标方程所得到的可行解为虚拟I/O Bank的数量以及每个虚拟I/O Bank中所需放置的每组I/O单元的数量。在得到可行解之后,还可以将虚拟I/O Bank映射到实际器件的物理Bank中。
在映射过程中,可能会出现无法正常映射等异常情况。当出现异常情况时,可以生成相应的错误报告,以提醒开发人员设计中可能出现的错误以及其他不符合集成电路设计的规则的地方。
在现有技术中,在进行I/O单元的布局时,通常采用启发式算法。然而,启发式算法无法保证能够得到一个可行解。在完成集成电路芯片设计之后,若直接采用启发式算法进行I/O单元的布局,则当I/O单元不存在可行解时,采用启发式算法无法完成对I/O单元的布局,导致I/O单元布局效率低下。
而在本发明实施例中,根据每一个I/O单元的类型设定虚拟I/O库组,并将所有I/O单元进行分组,得到多个I/O单元组。构建I/O单元组与虚拟I/O库组的二进制兼容性矩阵,并根据预设的约束条件构建目标方程,确定目标方程是否存在I/O单元布局的可行解,并在存在I/O单元布局的可行解时进行I/O单元的布局,也即:上述方案在确定目标方程存在可行解之后才进行I/O单元的布局,而不是直接进行I/O单元布局。由此可见,本发明实施例中提供的可编程逻辑器件的I/O单元布局方法有效能够提高I/O单元布局效率。
参照图2,给出了本发明实施例中的一种可编程逻辑器件的I/O单元布局装置,包括:第一获取单元201、第二获取单元202、设定单元203、分组单元204、目标方程建立单元205、可行解确定单元206以及布局单元207,其中:
第一获取单元201,用于获取可编程逻辑器件的结构,以及所述可编程逻辑器件中的I/O库组的属性;
第二获取单元202,用于获取每一个I/O单元的类型;
设定单元203,用于根据每一个I/O单元的类型,设定虚拟I/O库组,且所述虚拟I/O库组的数量与所有I/O单元所对应的所有电气标准的数量相同;
分组单元204,用于根据I/O单元的类型将所有I/O单元进行分组,得到多个I/O单元组;
目标方程建立单元205,用于根据预设的约束条件构建目标方程;
可行解确定单元206,用于确定所述目标方程是否存在I/O单元布局的可行解;
布局单元207,用于当所述目标方程存在I/O单元布局的可行解时进行I/O单元布局。
在具体实施中,所述可行解确定单元206,可以用于计算所述目标方程中所需I/O库数量;判断所述所需I/O库数量是否超出实际器件提供的I/O库总数;当所述所需I/O库数量未超出实际器件提供的I/O库总数时,确定存在可行解;当所述所需/O库数量超出实际器件提供的I/O库总数时,确定不存在可行解。
在具体实施中,所述可行解确定单元206,可以用于采用整数线性规划方法确定所述目标方程是否存在可行解。
在具体实施中,所述预设的约束条件可以包括:资源约束条件、容量约束条件,其中:所述资源约束条件为:所述容量约束条件为:其中,M为I/O单元类型的总数,Xik为I/O单元组Gi中放入虚拟I/O Bank组Bk的I/O单元的数量,Ni为I/O单元组Gi的总数;Aik为二进制兼容性矩阵的元素,适于表征I/O单元组Gi和虚拟I/OBank组Bk是否相互兼容;虚拟I/O Bank组Bk表征为类型为k为虚拟I/O Bank组,定义为Bk={Yk,Tk},Tk定义为Tk={Sk,Ck},Sk表征类型为k的I/O单元的电气标准,Ck表征实际器件的一个Bank可以容纳k类型的I/O单元的最大数目,Yk表征Tk类型的虚拟I/O Bank组的Bank个数。
在具体实施中,所述可编程逻辑器件的I/O单元布局装置还可以包括:映射单元(图2中未示出),用于将虚拟I/O库映射到实际提供的物理库中。
在具体实施中,所述I/O单元的类型可以包括:I/O单元的输入输出电压、参考电压以及终端类型。
在具体实施中,所述I/O单元的电气标准可以为所述I/O单元的电平标准。
在具体实施中,所述预设的约束条件包括二进制兼容性矩阵,所述二进制兼容性矩阵适于表示每一个I/O单元的电气标准与其他的I/O单元的电气标准是否兼容,且所述二进制兼容性矩阵采用如下步骤生成:根据所有I/O单元的类型,构建所述I/O单元组与所述虚拟I/O库组的二进制兼容性矩阵。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行本发明上述实施例中提供的所述的可编程逻辑器件的I/O单元布局方法的步骤。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行本发明上述实施例中提供的所述的可编程逻辑器件的I/O单元布局方法的步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (12)
1.一种可编程逻辑器件的I/O单元布局方法,其特征在于,包括:
获取可编程逻辑器件的结构,以及所述可编程逻辑器件中的I/O库组的属性;获取每一个I/O单元的类型;
根据每一个I/O单元的类型,设定虚拟I/O库组;
根据I/O单元的类型将所有I/O单元进行分组,得到多个I/O单元组,且每一个I/O单元组中的I/O单元的电气标准相同;
根据预设的约束条件构建目标方程,确定所述目标方程是否存在I/O单元布局的可行解,并在存在所述I/O单元布局的可行解时进行I/O单元布局;
所述构建目标方程,确定是否存在可行解,包括:计算所述目标方程中所需I/O库数量;判断所述所需I/O库数量是否超出实际器件提供的I/O库总数;当所述所需I/O库数量未超出实际器件提供的I/O库总数时,确定存在可行解;当所述所需I/O库数量超出实际器件提供的I/O库总数时,确定不存在可行解;
所述确定是否存在可行解,包括:采用整数线性规划方法确定所述目标方程是否存在可行解;所述预设的约束条件包括:资源约束条件、容量约束条件,所述资源约束条件为:所述容量约束条件为:其中,M为I/O单元类型的总数,Xik为I/O单元组Gi中放入虚拟I/O Bank组Bk的I/O单元的数量,Ni为I/O单元组Gi的总数;Aik为二进制兼容性矩阵的元素,适于表征I/O单元组Gi和虚拟I/O Bank组Bk是否相互兼容;虚拟I/OBank组Bk表征为类型为k为虚拟I/O Bank组,定义为Bk={Yk,Tk},Tk定义为Tk={Sk,Ck},Sk表征类型为k的I/O单元的电气标准,Ck表征实际器件的一个Bank可以容纳k类型的I/O单元的最大数目,Yk表征Tk类型的虚拟I/OBank组的Bank个数;
2.如权利要求1所述的可编程逻辑器件的I/O单元布局方法,其特征在于,在得到所述目标方程的解之后,还包括:将虚拟I/O库映射到实际器件提供的物理库中。
3.如权利要求1或2所述的可编程逻辑器件的I/O单元布局方法,其特征在于,所述I/O单元的类型包括:I/O单元的输入输出电压、参考电压以及终端类型。
4.如权利要求3所述的可编程逻辑器件的I/O单元布局方法,其特征在于,所述I/O单元的电气标准为所述I/O单元的电平标准。
5.如权利要求1所述的可编程逻辑器件的I/O单元布局方法,其特征在于,所述预设的约束条件包括二进制兼容性矩阵,所述二进制兼容性矩阵适于表示每一个I/O单元的电气标准与其他的I/O单元的电气标准是否兼容,且所述二进制兼容性矩阵采用如下步骤生成:根据所有I/O单元的类型,构建所述I/O单元组与所述虚拟I/O库组的二进制兼容性矩阵。
6.一种可编程逻辑器件的I/O单元布局装置,其特征在于,包括:
第一获取单元,用于获取可编程逻辑器件的结构,以及所述可编程逻辑器件中的I/O库组的属性;
第二获取单元,用于获取每一个I/O单元的类型;
设定单元,用于根据每一个I/O单元的类型,设定虚拟I/O库组,且所述虚拟I/O库组的数量与所有I/O单元所对应的所有电气标准的数量相同;
分组单元,用于根据I/O单元的类型将所有I/O单元进行分组,得到多个I/O单元组;
目标方程建立单元,用于根据预设的约束条件构建目标方程;
可行解确定单元,用于确定所述目标方程是否存在I/O单元布局的可行解;布局单元,用于当所述目标方程存在I/O单元布局的可行解时进行I/O单元布局;
所述构建目标方程,确定是否存在可行解,包括:计算所述目标方程中所需I/O库数量;判断所述所需I/O库数量是否超出实际器件提供的I/O库总数;当所述所需I/O库数量未超出实际器件提供的I/O库总数时,确定存在可行解;当所述所需I/O库数量超出实际器件提供的I/O库总数时,确定不存在可行解;
所述确定是否存在可行解,包括:采用整数线性规划方法确定所述目标方程是否存在可行解;所述预设的约束条件包括:资源约束条件、容量约束条件,所述资源约束条件为:所述容量约束条件为:其中,M为I/O单元类型的总数,Xik为I/O单元组Gi中放入虚拟I/O Bank组Bk的I/O单元的数量,Ni为I/O单元组Gi的总数;Aik为二进制兼容性矩阵的元素,适于表征I/O单元组Gi和虚拟I/O Bank组Bk是否相互兼容;虚拟I/OBank组Bk表征为类型为k为虚拟I/O Bank组,定义为Bk={Yk,Tk},Tk定义为Tk={Sk,Ck},Sk表征类型为k的I/O单元的电气标准,Ck表征实际器件的一个Bank可以容纳k类型的I/O单元的最大数目,Yk表征Tk类型的虚拟I/OBank组的Bank个数;
7.如权利要求6所述的可编程逻辑器件的I/O单元布局装置,其特征在于,还包括:映射单元,用于将虚拟I/O库映射到实际提供的物理库中。
8.如权利要求6或7所述可编程逻辑器件的I/O单元布局装置,其特征在于,所述I/O单元的类型包括:I/O单元的输入输出电压、参考电压以及终端类型。
9.如权利要求8所述的可编程逻辑器件的I/O单元布局装置,其特征在于,所述I/O单元的电气标准为所述I/O单元的电平标准。
10.如权利要求6所述的可编程逻辑器件的I/O单元布局装置,其特征在于,所述预设的约束条件包括二进制兼容性矩阵,所述二进制兼容性矩阵适于表示每一个I/O单元的电气标准与其他的I/O单元的电气标准是否兼容,且所述二进制兼容性矩阵采用如下步骤生成:根据所有I/O单元的类型,构建所述I/O单元组与所述虚拟I/O库组的二进制兼容性矩阵。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器运行时执行权利要求1~5任一项所述的可编程逻辑器件的I/O单元布局方法的步骤。
12.一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1~5任一项所述的可编程逻辑器件的I/O单元布局方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710447827.0A CN109086467B (zh) | 2017-06-14 | 2017-06-14 | 可编程逻辑器件的i/o单元布局方法及装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710447827.0A CN109086467B (zh) | 2017-06-14 | 2017-06-14 | 可编程逻辑器件的i/o单元布局方法及装置、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086467A CN109086467A (zh) | 2018-12-25 |
CN109086467B true CN109086467B (zh) | 2023-05-02 |
Family
ID=64839446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710447827.0A Active CN109086467B (zh) | 2017-06-14 | 2017-06-14 | 可编程逻辑器件的i/o单元布局方法及装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086467B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103633993A (zh) * | 2013-03-05 | 2014-03-12 | 中国科学院电子学研究所 | 一种包含可定制熔丝配置模块的可编程逻辑电路 |
CN105408830A (zh) * | 2013-05-15 | 2016-03-16 | 塔科图特科有限责任公司 | 用于具有壳体集成功能的电子设备的使能装置及其方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6351144B1 (en) * | 1999-07-15 | 2002-02-26 | Altera Corporation | Programmable logic device with unified cell structure including signal interface bumps |
US20050086234A1 (en) * | 2003-10-15 | 2005-04-21 | Sierra Wireless, Inc., A Canadian Corporation | Incremental search of keyword strings |
US20090128189A1 (en) * | 2007-11-19 | 2009-05-21 | Raminda Udaya Madurawe | Three dimensional programmable devices |
CN101231674A (zh) * | 2008-01-17 | 2008-07-30 | 复旦大学 | 现代可编程逻辑器件软件系统的层次化布局建模方法 |
CN103366029B (zh) * | 2012-03-31 | 2016-04-06 | 中国科学院微电子研究所 | 一种现场可编程门阵列芯片布局方法 |
CN104182556B (zh) * | 2013-05-22 | 2018-01-05 | 京微雅格(北京)科技有限公司 | 芯片的布局方法 |
US9251300B2 (en) * | 2013-10-25 | 2016-02-02 | Altera Corporation | Methods and tools for designing integrated circuits with auto-pipelining capabilities |
WO2015149301A1 (zh) * | 2014-04-02 | 2015-10-08 | 华为技术有限公司 | 传输信号的方法和装置 |
CN104734954B (zh) * | 2015-03-27 | 2019-05-10 | 华为技术有限公司 | 一种用于软件定义网络的路由确定方法和装置 |
CN105187851A (zh) * | 2015-07-31 | 2015-12-23 | 北京邮电大学 | 一种面向海量编码多媒体数据的速度可调节加密方法以及采用该方法的视频处理平台 |
CN105634974B (zh) * | 2015-12-31 | 2019-03-01 | 杭州华为数字技术有限公司 | 软件定义网络中的路由确定方法和装置 |
CN106843751B (zh) * | 2016-12-27 | 2019-11-29 | 华为技术有限公司 | 放置存储卷的方法和设备 |
-
2017
- 2017-06-14 CN CN201710447827.0A patent/CN109086467B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103633993A (zh) * | 2013-03-05 | 2014-03-12 | 中国科学院电子学研究所 | 一种包含可定制熔丝配置模块的可编程逻辑电路 |
CN105408830A (zh) * | 2013-05-15 | 2016-03-16 | 塔科图特科有限责任公司 | 用于具有壳体集成功能的电子设备的使能装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109086467A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111950225B (zh) | 一种芯片布局方法、装置、存储介质和电子设备 | |
JP2008059438A (ja) | 記憶システム、そのデータ再配置方法、データ再配置プログラム | |
CN107807982A (zh) | 一种异构数据库的一致性校验方法及装置 | |
US9210219B2 (en) | Systems and methods for consistent hashing using multiple hash rings | |
TW201218343A (en) | Power grid optimization | |
US10635765B2 (en) | Cluster drawing on divided display region allocated to cluster | |
CN105975289A (zh) | 获取硬件版本信息的方法与装置 | |
CN111079917A (zh) | 张量数据分块存取的方法及装置 | |
US20130054217A1 (en) | Circuit simulation acceleration using model caching | |
CN108805174A (zh) | 聚类方法及装置 | |
CN109521292A (zh) | 一种模块化多电平换流器的电容器组寿命评估方法与装置 | |
CN114330180A (zh) | 芯片封装方法、装置、计算机设备和存储介质 | |
CN113919266B (zh) | 可编程器件的时钟规划方法、装置、电子设备及存储介质 | |
CN109165723B (zh) | 用于处理数据的方法和装置 | |
CN109325603B (zh) | 故障请求处理方法、装置及终端设备 | |
CN109086467B (zh) | 可编程逻辑器件的i/o单元布局方法及装置、介质及设备 | |
CN109888847B (zh) | 多馈入交直流混联电网的优化运行方法、装置及系统 | |
CN105074668A (zh) | 测试设计辅助装置、测试设计辅助方法、程序和计算机可读介质 | |
CN108846009B (zh) | 一种ceph中副本数据存储方法及装置 | |
US10997353B2 (en) | Integrated circuit design method and non-transitory computer readable medium thereof | |
CN115659443A (zh) | 几何形状流数据处理方法和装置、计算设备和存储介质 | |
CN109245948A (zh) | 安全感知的虚拟网络映射方法及其装置 | |
CN108984426B (zh) | 用于处理数据的方法和装置 | |
CN113779926A (zh) | 一种电路的检测方法、装置、电子设备及可读存储介质 | |
US10031982B2 (en) | Rule based data normalization utilizing multi-key sorting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |