CN115048892A - IO module layout method based on module connection relation of FPGA - Google Patents

IO module layout method based on module connection relation of FPGA Download PDF

Info

Publication number
CN115048892A
CN115048892A CN202210723992.5A CN202210723992A CN115048892A CN 115048892 A CN115048892 A CN 115048892A CN 202210723992 A CN202210723992 A CN 202210723992A CN 115048892 A CN115048892 A CN 115048892A
Authority
CN
China
Prior art keywords
module
layout
bank
distributed
modules
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.)
Granted
Application number
CN202210723992.5A
Other languages
Chinese (zh)
Other versions
CN115048892B (en
Inventor
单悦尔
惠锋
张艳飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Zhongwei Yixin Co Ltd
Original Assignee
Wuxi Zhongwei Yixin Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Zhongwei Yixin Co Ltd filed Critical Wuxi Zhongwei Yixin Co Ltd
Priority to CN202210723992.5A priority Critical patent/CN115048892B/en
Publication of CN115048892A publication Critical patent/CN115048892A/en
Application granted granted Critical
Publication of CN115048892B publication Critical patent/CN115048892B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本申请公开了一种FPGA的基于模块连接关系的IO模块布局方法,涉及FPGA技术领域,该方法基于待布IO模块相连的各个预定功能模块的布局位置确定待布IO模块的IO布局位置,使得与其相连的各个预定功能模块之间的各组信号连接关系的综合电路性能最优,该方法从使得综合电路性能最优的角度出发,借由用户输入网表提供的功能模块的连接信息,以及预先固定的预定功能模块的布局位置来协助布局,可以避免常规随机布局带来的问题,从而使得后续的全局布局质量较优。

Figure 202210723992

The present application discloses an IO module layout method based on a module connection relationship of an FPGA, which relates to the technical field of FPGA. The integrated circuit performance of each group of signal connection relationships between each predetermined functional module connected to it is optimal, and the method starts from the perspective of optimizing the performance of the integrated circuit, by inputting the connection information of the functional module provided by the user in the netlist, and The pre-fixed layout positions of the predetermined function modules are used to assist the layout, which can avoid the problems caused by the conventional random layout, thereby making the subsequent global layout quality better.

Figure 202210723992

Description

FPGA的基于模块连接关系的IO模块布局方法IO module layout method based on module connection relationship in FPGA

技术领域technical field

本申请涉及FPGA技术领域,尤其是一种FPGA的基于模块连接关系的IO模块布局方法。The present application relates to the technical field of FPGA, in particular to an IO module layout method based on a module connection relationship of an FPGA.

背景技术Background technique

现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)是一种在日用家电、大型机械乃至航空航天都有广泛使用的芯片。FPGA芯片的使用离不开电子设计自动化(Electronic Design Automation,EDA)工具。布局则是EDA工具中重要的一环,其对EDA工具本身运行速度、所处理电路的最终质量有着很大影响。近年来,FPGA芯片的电路规模快速增长,使其功能更加强大,但同时也给相应的EDA工具带来了挑战。Field-Programmable Gate Array (FPGA) is a chip that is widely used in household appliances, large machinery and even aerospace. The use of FPGA chips is inseparable from Electronic Design Automation (EDA) tools. Layout is an important part of the EDA tool, which has a great impact on the running speed of the EDA tool itself and the final quality of the circuit processed. In recent years, the circuit scale of FPGA chips has grown rapidly, making them more powerful, but at the same time, it has also brought challenges to the corresponding EDA tools.

布局的主要作用就是在优化目标下将用户网表中的实例一一映射到FPGA芯片具有实际物理坐标的布局位置上,解析型布局算法以其可以使用数学方法快速求得全局最优解的特性成为当今布局算法的主流方向之一。The main function of the layout is to map the instances in the user netlist to the layout positions of the FPGA chip with actual physical coordinates under the optimization goal. The analytical layout algorithm can quickly obtain the global optimal solution using mathematical methods. It has become one of the mainstream directions of today's layout algorithms.

在力导向解析式布局算法中,传统做法是先布局IO模块,然后利用固定的IO作为牵引点,将其他模块展开在FPGA芯片上。IO模块的布局位置对后续的布局品质和时序影响非常大,但FPGA中的IO模块数量和类型都较多,完全由用户来指定所有IO模块的布局位置的难度较大,因此目前一般是针对小部分IO模块由用户来指定布局位置,其余的IO模块则由开发软件进行自动布局,一般是随机的将IO模块按照一定的容量规则布局到随机位置,但是这种随机摆放的布局方法很难保证布局质量。In the force-directed analytical layout algorithm, the traditional method is to layout the IO module first, and then use the fixed IO as the traction point to expand other modules on the FPGA chip. The layout position of the IO module has a great influence on the subsequent layout quality and timing. However, there are many IO modules in the FPGA, and it is difficult for the user to specify the layout position of all the IO modules. A small part of the IO modules are laid out by the user, and the rest of the IO modules are automatically laid out by the development software. Generally, the IO modules are randomly laid out to random positions according to a certain capacity rule, but this random layout method is very difficult. It is difficult to guarantee the quality of the layout.

申请内容Application content

本申请人针对FPGA中的IO模块的现有随机布局方法难以保证布局质量的问题,提出了一种FPGA的基于模块连接关系的IO模块布局方法,本申请的技术方案如下:Aiming at the problem that the existing random layout method of the IO module in the FPGA is difficult to guarantee the layout quality, the applicant proposes an IO module layout method based on the module connection relationship in the FPGA. The technical solution of the application is as follows:

一种FPGA的基于模块连接关系的IO模块布局方法,该方法包括:An IO module layout method based on a module connection relationship of an FPGA, the method comprising:

获取FPGA芯片对应的用户输入网表,并确定用户输入网表中的若干个预定功能模块的布局位置;Obtain the user input netlist corresponding to the FPGA chip, and determine the layout positions of several predetermined function modules in the user input netlist;

确定用户输入网表中与预定功能模块相连且未布局的待布IO模块;Determine the IO modules to be distributed that are connected to the predetermined function modules and are not laid out in the user input netlist;

对于每个待布IO模块,基于待布IO模块相连的各个预定功能模块的布局位置确定待布IO模块的IO布局位置,待布IO模块在确定得到的IO布局位置处时与其相连的各个预定功能模块之间的各组信号连接关系的综合电路性能最优;For each IO module to be deployed, the IO layout position of the IO module to be deployed is determined based on the layout position of each predetermined function module connected to the IO module to be deployed, and the IO module to be deployed is connected to each predetermined IO layout position when the IO module to be deployed is determined. The comprehensive circuit performance of each group of signal connection relationships between functional modules is optimal;

对用户输入网表中未布局的剩余IO模块完成布局。Complete the placement of the remaining IO blocks that are not placed in the user input netlist.

其进一步的技术方案为,FPGA芯片中包括若干个BANK,每个BANK内包括若干个IO布局位置;则基于待布IO模块相连的各个预定功能模块的布局位置确定待布IO模块的IO布局位置,包括:Its further technical scheme is that the FPGA chip includes several banks, and each bank includes several IO layout positions; then the IO layout positions of the IO modules to be distributed are determined based on the layout positions of the respective predetermined function modules connected to the IO modules to be distributed. ,include:

基于待布IO模块相连的各个预定功能模块的布局位置确定FPGA芯片中的一个BANK作为目标BANK,待布IO模块在目标BANK内时与其相连的各个预定功能模块之间的各组信号连接关系的综合电路性能最优;One bank in the FPGA chip is determined as the target bank based on the layout position of each predetermined function module connected to the IO module to be deployed. The performance of the integrated circuit is the best;

根据目标BANK内的资源约束条件从中选择一个IO布局位置作为待布IO模块的IO布局位置。According to the resource constraints in the target bank, an IO layout position is selected as the IO layout position of the IO module to be deployed.

其进一步的技术方案为,确定目标BANK的方法包括:Its further technical solution is that the method for determining the target BANK includes:

将FPGA芯片中对应的布局区域内包含的参考功能模块的数量最多的BANK作为目标BANK,参考功能模块是与待布IO模块存在直接的信号连接关系的预定功能模块。The BANK with the largest number of reference functional modules contained in the corresponding layout area in the FPGA chip is taken as the target BANK, and the reference functional module is a predetermined functional module that has a direct signal connection relationship with the IO module to be deployed.

其进一步的技术方案为,确定目标BANK的方法包括:Its further technical solution is that the method for determining the target BANK includes:

将FPGA芯片中对应的区域时序关键度最高的BANK作为目标BANK;其中,一个BANK对应的区域时序关键度是布局位置在BANK对应的布局区域内的所有预定功能模块的路径时序关键度的最优值,或者是根据所有预定功能模块对应的路径时序关键度按照时序计分方法得到的时序计分值;The BANK with the highest timing criticality of the corresponding region in the FPGA chip is used as the target bank; among them, the regional timing criticality corresponding to a BANK is the optimal path timing criticality of all predetermined functional modules whose layout positions are in the layout region corresponding to the BANK. value, or the timing score value obtained according to the timing scoring method according to the path timing criticality corresponding to all predetermined functional modules;

每个预定功能模块的路径时序关键度是预定功能模块与待布IO模块之间的信号连接关系所在的时序路径的时序关键度。The timing criticality of the path of each predetermined functional module is the timing criticality of the timing path where the signal connection relationship between the predetermined functional module and the IO module to be deployed is located.

其进一步的技术方案为,确定目标BANK的方法包括:Its further technical solution is that the method for determining the target BANK includes:

根据一个BANK对应的布局区域内包含的所有预定功能模块的路径时序关键度按照时序计分方法得到BANK的时序计分值;以及,根据一个BANK对应的布局区域内包含的与待布IO模块存在直接的信号连接关系的预定功能模块的数量得到BANK的连接度计分值;According to the path timing criticality of all predetermined functional modules contained in the layout area corresponding to a BANK, the timing score value of the BANK is obtained according to the timing scoring method; The number of predetermined functional modules of the direct signal connection relationship obtains the connectivity score of BANK;

将基于时序计分值和连接度计分值得到的总计分值最高的BANK作为目标BANK;Use the BANK with the highest total score based on the timing score and the connectivity score as the target BANK;

其中,每个预定功能模块对应的路径时序关键度是预定功能模块与待布IO模块之间的信号连接关系所在的时序路径的时序关键度。The timing criticality of the path corresponding to each predetermined functional module is the timing criticality of the timing path where the signal connection relationship between the predetermined functional module and the IO module to be deployed is located.

其进一步的技术方案为,时序计分方法包括:Its further technical solution is that the time series scoring method includes:

对于一个BANK对应的布局区域内包含的每个预定功能模块,若预定功能模块的路径时序关键度达到关键度阈值,则对BANK累加预定分值的时序计分值,每次累加的预定分值均相等或者存在至少两次累加的预定分值不同。For each predetermined function module included in the layout area corresponding to a bank, if the path timing criticality of the predetermined function module reaches the criticality threshold, the time sequence score value of the predetermined score is accumulated for the bank, and the accumulated predetermined score value for each time are equal or there are at least two accumulated predetermined scores that differ.

其进一步的技术方案为,当路径时序关键度达到关键度阈值时,按照预定功能模块的路径时序关键度确定本次累加的预定分值,预定功能模块的路径时序关键度越高、累加的预定分值越大。Its further technical solution is that when the path timing criticality reaches the criticality threshold, the predetermined score to be accumulated this time is determined according to the path timing criticality of the predetermined functional module. The higher the score.

其进一步的技术方案为,一个BANK的总计分值由对应的时序计分值和连接度计分值加权得到,且时序计分值和连接度计分值的权重相等或不相等。A further technical solution is that the total score value of a bank is obtained by weighting the corresponding time series score value and the connectivity score value, and the weights of the time series score value and the connectivity score value are equal or unequal.

其进一步的技术方案为,在加权得到总计分值时,时序计分值的权重高于连接度计分值的权重。A further technical solution thereof is that when the total score is obtained by weighting, the weight of the time series score is higher than the weight of the connectivity score.

其进一步的技术方案为,对用户输入网表中未布局的剩余IO模块完成布局,包括:Its further technical solution is to complete the layout of the remaining IO modules that are not laid out in the user input netlist, including:

基于已确定IO布局位置的所有IO模块和已确定布局位置的预定功能模块的牵引作用,按照用户输入网表对FPGA芯片进行力导向解析式布局得到初始布局结果;Based on the pulling action of all IO modules whose IO layout positions have been determined and the predetermined function modules whose layout positions have been determined, perform force-oriented analytical layout on the FPGA chip according to the user input netlist to obtain the initial layout result;

对于每个剩余IO模块,基于剩余IO模块相连的各个功能模块在初始布局结果中的布局位置确定剩余IO模块的IO布局位置,剩余IO模块在确定得到的IO布局位置处时与其相连的各个功能模块之间的各组信号连接关系的综合电路性能最优。For each remaining IO module, the IO layout position of the remaining IO module is determined based on the layout position of each functional module connected to the remaining IO module in the initial layout result, and the remaining IO modules are connected to each function when the obtained IO layout position is determined. The comprehensive circuit performance of each group of signal connection relationships between modules is optimal.

其进一步的技术方案为,用户输入网表中包含的预定功能模块的数量不超过第一数量阈值,每个预定功能模块在FPGA芯片上的可布位置的数量不超过第二数量阈值。A further technical solution is that the number of predetermined function modules included in the user input netlist does not exceed a first number threshold, and the number of deployable positions of each predetermined function module on the FPGA chip does not exceed a second number threshold.

其进一步的技术方案为,预定功能模块包括IO模块、IOLGIC模块、IODELAY模块、GTH模块、CMT模块、BUFG模块、MMCM模块、DPLL模块、XPLL模块、PCIE模块、EMAC模块中的至少一种。Its further technical solution is that the predetermined functional module includes at least one of IO module, IOLGIC module, IODELAY module, GTH module, CMT module, BUFG module, MMCM module, DPLL module, XPLL module, PCIE module and EMAC module.

本申请的有益技术效果是:The beneficial technical effects of the present application are:

本申请公开了一种FPGA的基于模块连接关系的IO模块布局方法,该方法从使得综合电路性能最优的角度出发,基于用户输入网表提供的功能模块的连接信息,以及预先固定的预定功能模块的布局位置来协助推导IO模块的IO布局位置,完成IO模块的布局。由于在做IO模块的布局的过程中考虑了综合电路性能,因此可以避免常规随机布局带来的问题,从而使得后续的全局布局质量较优。The present application discloses an IO module layout method based on a module connection relationship in an FPGA. From the perspective of optimizing the performance of the integrated circuit, the method is based on the connection information of the functional modules provided by the user input netlist, and the pre-fixed predetermined functions. The layout position of the module is used to assist in deriving the IO layout position of the IO module and complete the layout of the IO module. Since the comprehensive circuit performance is considered during the layout of the IO module, the problems caused by the conventional random layout can be avoided, so that the quality of the subsequent global layout is better.

在考虑综合电路性能对IO模块布局的过程中,可以根据实际情况对连接度性能和/或时序性能进行考虑,且可以对这两个性能的权重根据情况进行设置,从而对某一性能进行偏重,可以满足不同场景下的电路性能需求。In the process of IO module layout considering the comprehensive circuit performance, the connectivity performance and/or timing performance can be considered according to the actual situation, and the weights of these two performances can be set according to the situation, so that a certain performance can be emphasized. , which can meet the circuit performance requirements in different scenarios.

附图说明Description of drawings

图1是一个实施例中的IO模块布局方法的流程示意图。FIG. 1 is a schematic flowchart of an IO module layout method in one embodiment.

图2是另一个实施例中的IO模块布局方法的流程示意图。FIG. 2 is a schematic flowchart of an IO module layout method in another embodiment.

图3是又一个实施例中的IO模块布局方法的流程示意图。FIG. 3 is a schematic flowchart of an IO module layout method in yet another embodiment.

具体实施方式Detailed ways

下面结合附图对本申请的具体实施方式做进一步说明。The specific embodiments of the present application will be further described below with reference to the accompanying drawings.

本申请公开了一种FPGA的基于模块连接关系的IO模块布局方法,该方方法包括如下步骤,请参考图1所示的流程图:The present application discloses an IO module layout method based on a module connection relationship of an FPGA. The method includes the following steps, please refer to the flowchart shown in FIG. 1 :

步骤100,获取FPGA芯片对应的用户输入网表,并确定用户输入网表中的若干个预定功能模块的布局位置。Step 100: Obtain a user input netlist corresponding to the FPGA chip, and determine the layout positions of several predetermined function modules in the user input netlist.

理论上,预定功能模块可以是用户输入网表中任意的功能模块,通过用户指定即能确定这些预定功能模块的布局位置。但是实际上,若预定功能模块是一些太常规的功能模块,比如CLB模块,则由于这些功能模块数量较多,且在FPGA芯片上的可布位置众多,用户指定其布局位置的难度较大,用户指定的布局位置也未必是优选的布局结果,这些功能模块的模块连接关系在后续可能并不能很好的引导IO模块布局,可能会导致最终的布局质量也无法得到保证。Theoretically, the predetermined function module can be any function module in the user input netlist, and the layout position of these predetermined function modules can be determined by user designation. However, in fact, if the predetermined function modules are some too conventional function modules, such as CLB modules, because of the large number of these function modules and the large number of positions that can be placed on the FPGA chip, it is difficult for users to specify their layout positions. The layout position specified by the user may not be the preferred layout result. The module connection relationship of these functional modules may not guide the layout of the IO module well in the future, which may lead to the final layout quality cannot be guaranteed.

因此在一个实施例中,用户输入网表中包含的预定功能模块的数量不超过第一数量阈值,而每个预定功能模块在FPGA芯片上的可布位置的数量不超过第二数量阈值。也即预定功能模块通常是用户输入网表中一些数量较少且可布位置较少的特殊的功能模块。这些预定功能模块的数量不会太多,因此确定他们的布局位置的难度和工作量不会过大,可操作性较高。另外这些预定功能模块的可布位置较为有限,有些预定功能模块可能有且仅有1个可布位置,因此确定这些预定功能模块的布局位置的难度较低,且一般确定得到的布局位置都是较为符合最终布局结果的布局位置。另外,有很多特殊的功能模块多以IP形式存在,因此其也附带周边逻辑,软件支持IP时,一般先行将IP映射到FPGA芯片,确定合适的布局区域,由此预定功能模块的布局位置即可确定。Therefore, in one embodiment, the number of predetermined function modules included in the user input netlist does not exceed the first number threshold, and the number of deployable positions of each predetermined function module on the FPGA chip does not exceed the second number threshold. That is to say, the predetermined function modules are usually some special function modules in the user input netlist that are small in number and can be placed in fewer positions. The number of these predetermined function modules will not be too large, so the difficulty and workload of determining their layout positions will not be too large, and the operability is high. In addition, the arrangable positions of these predetermined functional modules are relatively limited, and some predetermined functional modules may have and only one arrangable position. Therefore, it is relatively difficult to determine the layout positions of these predetermined functional modules, and generally the determined layout positions are all The layout position that is more in line with the final layout result. In addition, many special functional modules exist in the form of IP, so they also have peripheral logic. When the software supports IP, the IP is generally mapped to the FPGA chip first, and the appropriate layout area is determined. The layout position of the predetermined functional module is can be determined.

基于这种原则,在一个实施例中,预定功能模块包括IO模块、IOLGIC模块、IODELAY模块、GTH模块、CMT模块、BUFG模块、MMCM模块、DPLL模块、XPLL模块、PCIE模块、EMAC模块中的至少一种。这里的IO模块指的是一些用户指定排布的IO模块。Based on this principle, in one embodiment, the predetermined functional modules include at least one of an IO module, an IOLGIC module, an IODELAY module, a GTH module, a CMT module, a BUFG module, an MMCM module, a DPLL module, an XPLL module, a PCIE module, and an EMAC module. A sort of. The IO module here refers to some IO modules arranged by the user.

对于每个预定功能模块,在确定预定功能模块的布局位置时,主要有两种方法:一种方法是将用户指定的布局位置作为预定功能模块的布局位置。另一种方法是基于已经确定好布局位置的预定功能模块来确定其他预定功能模块的布局位置,比如用户首先指定一些IO模块的布局位置,然后通过其他预定功能模块与这些已经布局好的IO模块之间的连接关系来对其他的预定功能模块进行布局。实际这两种方法可以混合使用。For each predetermined function module, when determining the layout position of the predetermined function module, there are mainly two methods: one method is to use the layout position specified by the user as the layout position of the predetermined function module. Another method is to determine the layout positions of other predetermined function modules based on the predetermined function modules whose layout positions have been determined. For example, the user first specifies the layout positions of some IO modules, and then uses other predetermined function modules to communicate with these already laid out IO modules. The connection relationship between them is used to lay out other predetermined function modules. In practice these two methods can be mixed.

步骤200,确定用户输入网表中与预定功能模块相连且未布局的待布IO模块。也即循环遍历各个预定功能模块的连接端口,找出与其相连且未布局的IO模块,作为待布IO模块。Step 200: Determine the IO modules to be deployed that are connected to the predetermined function modules and are not laid out in the user input netlist. That is, the connection ports of each predetermined function module are traversed in a loop, and the IO modules that are connected to them and not laid out are found as the IO modules to be deployed.

步骤300,对于每个待布IO模块,基于待布IO模块相连的各个预定功能模块的布局位置确定待布IO模块的IO布局位置。待布IO模块在确定得到的IO布局位置处时与其相连的各个预定功能模块之间的各组信号连接关系的综合电路性能最优。Step 300, for each IO module to be deployed, determine the IO layout position of the IO module to be deployed based on the layout positions of each predetermined function module connected to the IO module to be deployed. When the IO module to be deployed is determined at the obtained IO layout position, the comprehensive circuit performance of each group of signal connection relationships between each predetermined function module connected to it is optimal.

步骤400,对用户输入网表中未布局的剩余IO模块完成布局。Step 400: Complete the layout of the remaining IO modules that are not laid out in the user input netlist.

在上述步骤300中,由于IO模块太小、数量众多且连接关系复杂,直接确定使得综合电路性能最优的IO布局位置的难度和计算量较大。考虑到FPGA芯片中大量的IO布局位置往往以BANK的形式存在,每个BANK内包括若干个IO布局位置,每个BANK又决定了电压、单双口、高低速等IO特性。因此在一个实施例中,上述步骤300通过两层递进操作来确定最终的IO布局位置,请参考图2所示的流程图:In the above step 300, since the IO modules are too small, numerous in number and complicated in connection relationship, it is difficult and computationally expensive to directly determine the IO layout position that optimizes the performance of the integrated circuit. Considering that a large number of IO layout positions in FPGA chips often exist in the form of banks, each bank includes several IO layout positions, and each bank determines IO characteristics such as voltage, single and dual ports, and high and low speeds. Therefore, in one embodiment, the above step 300 determines the final IO layout position through two-layer progressive operations, please refer to the flowchart shown in FIG. 2:

步骤310,基于待布IO模块相连的各个预定功能模块的布局位置确定FPGA芯片中的一个BANK作为目标BANK。Step 310: Determine a BANK in the FPGA chip as a target BANK based on the layout positions of each predetermined function module connected to the IO module to be deployed.

确定得到的待布IO模块在目标BANK内时与其相连的各个预定功能模块之间的各组信号连接关系的综合电路性能最优,也即首先以BANK为单位,第一层操作首先从众多的中筛选出待布IO模块的IO布局位置所在的目标BANK。It is determined that when the obtained IO module to be deployed is in the target bank, the comprehensive circuit performance of each group of signal connection relationships between each predetermined function module connected to it is optimal, that is, the first layer of operation is firstly based on the bank, and the first layer operation starts from numerous Filter out the target bank where the IO layout position of the IO module to be deployed is located.

在选定目标BANK时需要考虑综合电路性能,综合电路性能可以是FPGA设计领域的各种重要的性能,在本申请中,主要考虑FPGA设计过程中最常考虑的两类性能:连接度性能和/或时序性能,由此确定目标BANK的方法主要有三种情况:The comprehensive circuit performance needs to be considered when selecting the target bank. The comprehensive circuit performance can be various important performances in the field of FPGA design. In this application, the two most commonly considered performances in the FPGA design process are mainly considered: connectivity performance and / or timing performance, there are three main ways to determine the target BANK:

(1)第一种情况:仅考虑连接度性能。(1) The first case: only the connectivity performance is considered.

在这种情况中,将FPGA芯片中对应的布局区域内包含的参考功能模块的数量最多的BANK作为目标BANK。其中,参考功能模块是与待布IO模块存在直接的信号连接关系的预定功能模块。也即优先考虑具有更多直连而使得连接度性能最优的BANK。In this case, the BANK with the largest number of reference function modules contained in the corresponding layout area in the FPGA chip is used as the target BANK. The reference function module is a predetermined function module that has a direct signal connection relationship with the IO module to be deployed. That is to say, priority is given to BANKs with more direct connections that make the connectivity performance the best.

对于每一个待布IO模块,其可能与一个预定功能模块相连,也可能与多个预定功能模块相连。待布IO模块与其相连的每个预定功能模块可能是直接相连的,也可能是通过间接相连的,该实施例中定义与待布IO模块直接相连的预定功能模块为参考功能模块。For each IO module to be deployed, it may be connected to one predetermined function module, or may be connected to multiple predetermined function modules. The to-be-distributed IO module may be directly connected to each predetermined function module to which it is connected, or may be indirectly connected. In this embodiment, the predetermined function module directly connected to the to-be-distributed IO module is defined as a reference function module.

FPGA芯片中有多个不同的布局区域(Region),在确定预定功能模块的布局位置后,即能确定各个预定功能模块所在的布局区域。而每个布局区域都有相对应的BANK,对应关系是预先确定和固定好的,常见的可能一个布局区域对应于一个BANK。因此在得到各个预定功能模块的布局位置后,就可以统计得到各个布局区域内包含的预定功能模块的数量。对于一个待布IO模块来说,也可以统计得到各个布局区域内包含的该待布IO模块对应的参考功能模块的数量,也即可以确定不同的BANK对应的布局区域包含的参考功能模块的数量,将其中包含的参考功能模块的数量最多的BANK作为目标BANK。若有多个BANK对应的布局区域包含的参考功能模块的数量都最多且相等,则从中任选一个作为目标BANK。There are multiple different layout regions (Regions) in the FPGA chip. After the layout positions of the predetermined function modules are determined, the layout regions where each predetermined function module is located can be determined. Each layout area has a corresponding bank, and the corresponding relationship is predetermined and fixed. It is common that a layout area may correspond to a bank. Therefore, after obtaining the layout positions of each predetermined function module, the number of the predetermined function modules contained in each layout area can be obtained by statistics. For a to-be-distributed IO module, the number of reference function modules corresponding to the to-be-distributed IO module contained in each layout area can also be obtained by statistics, that is, the number of reference function modules contained in the layout areas corresponding to different banks can be determined. , the BANK with the largest number of reference function modules contained therein is used as the target BANK. If the layout areas corresponding to multiple banks contain the largest and equal number of reference function modules, select one of them as the target bank.

比如在一个实例中,一个待布IO模块连接6个预定功能模块,分别记为A、B、C、D、E、F,其中F不与待布IO模块直接相连,其他5个预定功能模块均与待布IO模块直接相连而形成的参考功能模块。A、B、C位于布局区域1内,D和E位于布局区域2内。布局区域1对应于BANK1,布局区域2对应于BANK2,则在该实例中,最终选择BANK1作为目标BANK。For example, in an example, an IO module to be deployed is connected to 6 predetermined function modules, which are respectively recorded as A, B, C, D, E, and F. Among them, F is not directly connected to the IO module to be deployed, and the other 5 predetermined function modules are The reference function modules formed by being directly connected with the IO modules to be distributed. A, B, and C are located in layout area 1, and D and E are located in layout area 2. Layout area 1 corresponds to BANK1, and layout area 2 corresponds to BANK2. In this example, BANK1 is finally selected as the target BANK.

(2)第二种情况:仅考虑时序性能。(2) The second case: only the timing performance is considered.

在这种情况中,将FPGA芯片中对应的区域时序关键度最高的BANK作为目标BANK,也即优先考虑使得时序最优的BANK。预定功能模块、BANK、布局区域三者之间的对应关系如上第一种情况所述,该实施例不再赘述。In this case, the BANK with the highest timing criticality in the corresponding region in the FPGA chip is used as the target BANK, that is, the BANK that makes the timing optimal is given priority. The correspondence between the predetermined function module, the bank, and the layout area is as described in the first case above, which is not repeated in this embodiment.

一个BANK对应的区域时序关键度基于布局位置在该BANK对应的布局区域内的预定功能模块的路径时序关键度来确定。每个预定功能模块对应的路径时序关键度是该预定功能模块与待布IO模块之间的信号连接关系所在的时序路径的时序关键度,时序路径的时序关键度可以采用slack值来衡量。The timing criticality of a region corresponding to a bank is determined based on the timing criticality of a path of a predetermined function module whose layout position is in the layout region corresponding to the bank. The timing criticality of the path corresponding to each predetermined functional module is the timing criticality of the timing path where the signal connection relationship between the predetermined functional module and the IO module to be deployed is located. The timing criticality of the timing path can be measured by the slack value.

基于布局位置在一个布局区域内的预定功能模块的路径时序关键度确对应的BANK的区域时序关键度有多种情况:(1)该布局区域内的所有预定功能模块对应的路径时序关键度的最优值直接作为BANK的区域时序关键度。(2)根据所有预定功能模块对应的路径时序关键度按照时序计分方法得到时序计分值,将得到的时序计分值作为BANK的区域时序关键度。Based on the path timing criticality of a predetermined functional module whose layout position is in a layout area, there are many situations in which the corresponding regional timing criticality of the bank is determined: (1) The path timing criticality corresponding to all predetermined functional modules in the layout area The optimal value is directly used as the regional timing criticality of BANK. (2) According to the timing criticality of the paths corresponding to all the predetermined functional modules, the timing scoring value is obtained according to the timing scoring method, and the obtained timing scoring value is used as the regional timing criticality of the BANK.

在一个实施例中,时序计分方法为:对于一个BANK对应的布局区域内包含的每个预定功能模块,若该预定功能模块的路径时序关键度达到关键度阈值,则对BANK累加预定分值的时序计分值,每次累加的预定分值均相等或者存在至少两次累加的预定分值不同。In one embodiment, the timing scoring method is: for each predetermined functional module included in the layout area corresponding to a BANK, if the path timing criticality of the predetermined functional module reaches a criticality threshold, then add a predetermined score to the BANK The time-series score value is equal, the predetermined score value accumulated each time is the same, or there are at least two accumulated predetermined score values that are different.

比如在一个实例中,以每次累加的预定分值均相等为2分为例,假设一个BANK对应的布局区域内包含三个预定功能模块,其中两个预定功能模块对应的路径时序关键度均达到关键度阈值,而另一个预定功能模块对应的路径时序关键度未达到关键度阈值,则通过两次累加得到BANK的时序计分值为4分。For example, in an example, the predetermined score accumulated each time is equal to 2 as an example, it is assumed that the layout area corresponding to a bank contains three predetermined function modules, and the path timing criticality corresponding to the two predetermined function modules is equal to If the criticality threshold is reached, but the timing criticality of the path corresponding to another predetermined functional module does not reach the criticality threshold, the timing score of the BANK is obtained by two accumulations of 4 points.

若存在至少两次累加的预定分值不同,则一种情况是:(1)按照预定功能模块的模块类型确定本次累加的预定分值,不同类型的预定功能模块在路径时序关键度同样达到关键度阈值的情况下累加的预定分值不一样,具体的对应关系可以预先对应配置。另一种情况是:(2)按照预定功能模块的路径时序关键度确定本次累加的预定分值,预定功能模块的路径时序关键度越高、累加的预定分值越大。If there are at least two different accumulated predetermined scores, then one situation is: (1) Determine the current accumulated predetermined score according to the module type of the predetermined function module, and the different types of predetermined function modules also reach the path timing criticality. In the case of the criticality threshold, the accumulated predetermined scores are different, and the specific corresponding relationship can be correspondingly configured in advance. Another situation is: (2) Determine the accumulated predetermined score this time according to the path timing criticality of the predetermined functional module, the higher the path timing criticality of the predetermined functional module, the greater the accumulated predetermined score.

(3)第三种情况:同时考虑时序性能和连接度性能。(3) The third case: consider both timing performance and connectivity performance.

根据一个BANK对应的布局区域内包含的所有预定功能模块的路径时序关键度按照时序计分方法得到BANK的时序计分值;以及,根据一个BANK对应的布局区域内包含的与待布IO模块存在直接的信号连接关系的预定功能模块的数量得到BANK的连接度计分值。According to the path timing criticality of all predetermined functional modules contained in the layout area corresponding to a BANK, the timing score value of the BANK is obtained according to the timing scoring method; The number of predetermined functional modules with direct signal connection relationship obtains the connectivity score of BANK.

在这第三种情况中,得到时序计分值的方法与上述第二种情况是类似的,具体有多种实现方式,该实施例不再详细赘述。而得到连接度计分值的部分,确定每个BANK对应的布局区域内包含的与待布IO模块存在直接的信号连接关系的预定功能模块,也即参考功能模块的数量的方法与上述第一种情况类似,只不过在该实施例中,不像第一种情况一样直接取参考功能模块的数量最多的一个BANK,而是根据参考功能模块的数量得到各个BANK的连接度计分值,得到连接度计分值的具体方法也与时序计分值一样有多种计分方式,该实施例提供如下几种方式:(1)BANK的连接度计分值与该BANK对应的布局区域内包含的参考功能模块的数量成正相关关系,连接度计分值由每个参考功能模块的分值累加得到,包含的参考功能模块的数量越多,该BANK的连接度计分值就越大。与时序计分值类似,每个参考功能模块的分值可以相同也可以不同。一种实现方式是,模块类型不同的两个参考功能模块的分值不同,可以预先设。定。则在这种计分方式中,以一个实例说明,假设每个参考功能模块的分值相同均为2分,则当一个该BANK对应的布局区域内包含4个参考功能模块时,该BANK的连接度计分值为8分。(2)当BANK对应的布局区域内包含的参考功能模块的数量超过预定数量阈值时,给BANK记预先设定的连接度计分值,否则给BANK记0分的连接度计分值,在这种方式中,所有包含的参考功能模块的数量超过预定数量阈值的BANK的连接度计分值都相等。比如对应的布局区域内包含的参考功能模块的数量超过2个的BANK的连接度计分值都为1分,而不超过2个的BANK的连接度计分值都记为0分。In the third case, the method for obtaining the timing score value is similar to the above-mentioned second case, and there are various implementation manners, which will not be described in detail in this embodiment. The part that obtains the score value of connectivity is to determine the predetermined functional modules included in the layout area corresponding to each bank that have a direct signal connection relationship with the IO modules to be deployed, that is, the method of referring to the number of functional modules is the same as the above-mentioned first method. The situation is similar, except that in this embodiment, instead of directly taking the BANK with the largest number of reference functional modules as in the first case, the connectivity score of each BANK is obtained according to the number of reference functional modules, and the result is The specific method of the connectivity score is the same as the sequence score, and there are multiple scoring methods. This embodiment provides the following methods: (1) The connectivity score of a BANK and the layout area corresponding to the BANK contain The number of reference functional modules is positively correlated, and the connectivity score is obtained by accumulating the score of each reference functional module. The more the number of reference functional modules included, the greater the connectivity score of the BANK. Similar to the timing score, the score for each reference functional block can be the same or different. An implementation manner is that the scores of two reference function modules with different module types are different and can be preset. Certainly. In this scoring method, an example is used to illustrate that, assuming that the score of each reference function module is the same as 2 points, then when a layout area corresponding to the bank contains 4 reference function modules, the bank's The connectivity score is 8 points. (2) When the number of reference function modules contained in the layout area corresponding to BANK exceeds the predetermined number threshold, record the pre-set connectivity score for BANK; In this way, all BANKs whose number of included reference functional modules exceeds the predetermined number threshold have the same connectivity score. For example, the connectivity score of a bank with more than 2 reference functional modules contained in the corresponding layout area is 1 point, and the connectivity score of a bank with no more than 2 is recorded as 0 score.

将基于时序计分值和连接度计分值得到的总计分值最高的BANK作为目标BANK。一个BANK的总计分值由对应的时序计分值和连接度计分值加权得到,且时序计分值和连接度计分值的权重相等或不相等。比较常见的,考虑到时序对于FPGA布局的重要性更高,因此在加权得到总计分值时,时序计分值的权重高于连接度计分值的权重。The BANK with the highest total score based on the time series score and the connectivity score is used as the target BANK. The total score value of a BANK is obtained by weighting the corresponding time series score value and connectivity score value, and the weights of the time series score value and the connectivity score value are equal or unequal. More commonly, considering that timing is more important to the FPGA layout, when the total score is obtained by weighting, the weight of the timing score is higher than the weight of the connectivity score.

步骤320,根据目标BANK内的资源约束条件从中选择一个IO布局位置作为待布IO模块的IO布局位置,也即在得到目标BANK后,执行第二层操作最终筛选出最终的IO布局位置。待布IO模块有其自身的特性需求,比如对于电压、高低速有特性需求,再比如待布IO模块传输的信号类型也决定了其特性需求。而每个BANK内也有自身的资源约束条件,BANK包含的IO布局位置的总数量是有限的,满足相应的特性需求的IO布局位置的数量更是少,比如BANK内只有特定的几个IO布局位置可以用于摆放时钟信号进来的IO模块,一旦这些IO布局位置已被占用,再有时钟信号进来的IO模块就无法摆放了。因此需要根据目标BANK内的资源约束条件来确定最终的IO布局位置。Step 320, select an IO layout position as the IO layout position of the IO module to be deployed according to the resource constraints in the target bank, that is, after obtaining the target bank, perform the second layer operation and finally filter out the final IO layout position. The IO module to be deployed has its own characteristic requirements, such as the characteristic requirements for voltage, high and low speed, and the type of signal transmitted by the IO module to be deployed also determines its characteristic requirements. Each BANK also has its own resource constraints. The total number of IO layout locations contained in a BANK is limited, and the number of IO layout locations that meet the corresponding feature requirements is even less. For example, there are only a few specific IO layouts in a BANK. The position can be used to place the IO modules coming in with clock signals. Once these IO layout positions are occupied, IO modules with incoming clock signals cannot be placed. Therefore, the final IO layout position needs to be determined according to the resource constraints in the target bank.

当目标BANK内存在至少一个满足待布IO模块的特性需求的IO布局位置时,从中任选一个作为该待布IO模块的IO布局位置。当目标BANK内不存在满足待布IO模块的特性需求的IO布局位置时,返回步骤310,按照使得综合电路性能从优至低的顺序重新确定目标BANK,也即在第二个循环中,将使得综合电路性能次优的BANK作为目标BANK,直至最后得到待布IO模块的IO布局位置。When there is at least one IO layout position in the target bank that meets the characteristic requirements of the IO module to be deployed, select one of them as the IO layout position of the IO module to be deployed. When there is no IO layout position in the target bank that meets the characteristic requirements of the IO modules to be deployed, return to step 310, and re-determine the target bank in the order that the performance of the integrated circuit is from best to lowest, that is, in the second loop, make The BANK with the sub-optimal performance of the integrated circuit is used as the target BANK until the IO layout position of the IO module to be distributed is finally obtained.

在上述步骤400中,对于剩余IO模块,一种方法是在FPGA芯片上对剩余IO模块在空余的IO布局位置上进行随机布局。但是IO模块的摆放位置对后续的布局质量和时序影响甚大,应当尽可能避免随机布局,因此在一个实施例中,对剩余IO模块的布局方法包括如下步骤,请参考图3:In the above step 400, for the remaining IO modules, one method is to randomly arrange the remaining IO modules on the vacant IO layout positions on the FPGA chip. However, the placement of the IO modules has a great impact on the subsequent layout quality and timing, and random layout should be avoided as much as possible. Therefore, in one embodiment, the layout method for the remaining IO modules includes the following steps, please refer to Figure 3:

步骤410,基于已确定IO布局位置的所有IO模块和已确定布局位置的预定功能模块的牵引作用,按照用户输入网表对FPGA芯片进行力导向解析式布局得到初始布局结果,在这一步,可以根据实际需要对力导向解析式布局进行若干次迭代求解。Step 410: Based on the pulling action of all the IO modules whose IO layout positions have been determined and the predetermined function modules whose layout positions have been determined, perform a force-oriented analytical layout on the FPGA chip according to the user-input netlist to obtain an initial layout result. In this step, you can: The force-directed analytical layout is iteratively solved several times according to actual needs.

步骤420,对于每个剩余IO模块,基于剩余IO模块相连的各个功能模块在初始布局结果中的布局位置确定剩余IO模块的IO布局位置,使得剩余IO模块在确定得到的IO布局位置处时与其相连的各个功能模块之间的各组信号连接关系的综合电路性能最优。该步骤的具体实现方式与上述步骤300确定待布IO模块的IO布局位置的布局方法类似,该实施例不再详细赘述。Step 420, for each remaining IO module, determine the IO layout position of the remaining IO modules based on the layout positions of the respective functional modules connected to the remaining IO modules in the initial layout result, so that the remaining IO modules can match the IO layout position obtained when the remaining IO modules are determined. The comprehensive circuit performance of each group of signal connection relationships between the connected functional modules is optimal. The specific implementation of this step is similar to the layout method for determining the IO layout position of the IO module to be deployed in the above step 300, and details are not repeated in this embodiment.

Claims (12)

1. An IO module layout method based on module connection relation of FPGA is characterized by comprising the following steps:
acquiring a user input netlist corresponding to an FPGA chip, and determining the layout positions of a plurality of preset functional modules in the user input netlist;
determining an IO module to be distributed which is connected with a preset function module and is not distributed in the user input netlist;
for each IO module to be distributed, determining the IO layout position of each preset function module connected with the IO module to be distributed based on the layout position of each preset function module connected with the IO module to be distributed, wherein the comprehensive circuit performance of each group of signal connection relations between the IO module to be distributed and each preset function module connected with the IO module to be distributed is optimal when the IO module to be distributed is at the determined IO layout position;
and finishing layout on the residual IO modules which are not laid out in the user input netlist.
2. The method of claim 1, wherein the FPGA chip includes a plurality of BANKs, each BANK including a plurality of IO layout locations therein; determining the IO layout position of the IO module to be distributed based on the layout positions of the predetermined function modules connected to the IO module to be distributed, including:
determining one BANK in the FPGA chip as a target BANK based on the layout position of each preset functional module connected with the IO module to be distributed, wherein the comprehensive circuit performance of each group of signal connection relations between the IO module to be distributed and each preset functional module connected with the IO module to be distributed is optimal when the IO module to be distributed is in the target BANK;
and selecting an IO layout position from the target BANK as the IO layout position of the IO module to be distributed according to the resource constraint condition.
3. The method of claim 2, wherein determining the target BANK comprises:
and taking the BANK with the largest number of reference functional modules contained in the corresponding layout area in the FPGA chip as the target BANK, wherein the reference functional module is a preset functional module which has a direct signal connection relation with the IO module to be distributed.
4. The method of claim 2, wherein determining the target BANK comprises:
taking the BANK with the highest corresponding regional time sequence criticality in the FPGA chip as the target BANK; the method comprises the following steps that a regional time sequence criticality corresponding to a BANK is the optimal value of the path time sequence criticality of all preset functional modules of which the layout positions are in a layout region corresponding to the BANK, or a time sequence scoring value obtained according to the path time sequence criticality corresponding to all the preset functional modules and a time sequence scoring method;
the route time sequence criticality of each preset function module is the time sequence criticality of a time sequence route where the signal connection relation between the preset function module and the IO module to be distributed is located.
5. The method of claim 2, wherein determining the target BANK comprises:
obtaining a timing sequence scoring value of a BANK according to a timing sequence scoring method according to the path timing sequence criticality of all preset functional modules contained in a layout area corresponding to the BANK; obtaining the connection degree score of the BANK according to the number of preset functional modules which are contained in a layout area corresponding to the BANK and have direct signal connection relation with the IO modules to be distributed;
taking the BANK with the highest total score obtained based on the time sequence score and the connection score as the target BANK;
the route time sequence criticality corresponding to each preset function module is the time sequence criticality of a time sequence route where the signal connection relation between the preset function module and the IO module to be distributed is located.
6. The method of claim 4 or 5, wherein the time sequence scoring method comprises:
for each preset functional module contained in a layout area corresponding to a BANK, if the path time sequence criticality of the preset functional module reaches a criticality threshold, accumulating time sequence scores of preset scores for the BANK, wherein the preset scores accumulated each time are equal or the preset scores accumulated at least twice are different.
7. The method according to claim 6, wherein when the path timing criticality reaches a criticality threshold, the predetermined score accumulated this time is determined according to the path timing criticality of the predetermined functional module, and the higher the path timing criticality of the predetermined functional module is, the larger the accumulated predetermined score is.
8. The method of claim 5, wherein the total score of a BANK is weighted by the corresponding time series score and the connectivities score, and the time series score and the connectivities score are weighted equally or unequally.
9. The method of claim 8, wherein the time-series score value is weighted higher than the connection score value when the total score value is weighted.
10. The method of claim 1, wherein said completing placement of remaining IO modules not placed in said user input netlist comprises:
based on the traction action of all IO modules with determined IO layout positions and predetermined function modules with determined layout positions, performing force-oriented analytical layout on the FPGA chip according to the user input netlist to obtain an initial layout result;
and for each residual IO module, determining the IO layout position of the residual IO module based on the layout position of each functional module connected with the residual IO module in the initial layout result, wherein the comprehensive circuit performance of each group of signal connection relations between the residual IO module and each functional module connected with the residual IO module is optimal when the residual IO module is at the determined IO layout position.
11. The method of claim 1, wherein the number of predetermined functional modules included in the user input netlist does not exceed a first number threshold, and the number of routable locations of each predetermined functional module on the FPGA chip does not exceed a second number threshold.
12. The method of claim 11, wherein the predetermined function module comprises at least one of an IO module, an IOLGIC module, an IODELAY module, a GTH module, a CMT module, a BUFG module, an MMCM module, a DPLL module, an XPLL module, a PCIE module, and an EMAC module.
CN202210723992.5A 2022-06-24 2022-06-24 FPGA IO module layout method based on module connection relationship Active CN115048892B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210723992.5A CN115048892B (en) 2022-06-24 2022-06-24 FPGA IO module layout method based on module connection relationship

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210723992.5A CN115048892B (en) 2022-06-24 2022-06-24 FPGA IO module layout method based on module connection relationship

Publications (2)

Publication Number Publication Date
CN115048892A true CN115048892A (en) 2022-09-13
CN115048892B CN115048892B (en) 2025-03-18

Family

ID=83164156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210723992.5A Active CN115048892B (en) 2022-06-24 2022-06-24 FPGA IO module layout method based on module connection relationship

Country Status (1)

Country Link
CN (1) CN115048892B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306431A (en) * 2023-05-23 2023-06-23 中科亿海微电子科技(苏州)有限公司 FPGA layout method and device based on module and data flow

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080151678A1 (en) * 2006-12-22 2008-06-26 Fujitsu Limited Memory device, memory controller and memory system
US20130283221A1 (en) * 2012-04-18 2013-10-24 Taiwan Semiconductor Manufacturing Co., Ltd. Method for input/output design of chip
CN111753484A (en) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 Layout method of multi-die structure FPGA (field programmable Gate array) based on circuit performance
CN111753482A (en) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 Layout method of multi-die structure FPGA with automatic IO distribution

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080151678A1 (en) * 2006-12-22 2008-06-26 Fujitsu Limited Memory device, memory controller and memory system
US20130283221A1 (en) * 2012-04-18 2013-10-24 Taiwan Semiconductor Manufacturing Co., Ltd. Method for input/output design of chip
CN111753484A (en) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 Layout method of multi-die structure FPGA (field programmable Gate array) based on circuit performance
CN111753482A (en) * 2020-06-30 2020-10-09 无锡中微亿芯有限公司 Layout method of multi-die structure FPGA with automatic IO distribution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PRITHA BANERJEE: "Fast Placement and Floorplanning Methods in Modern Reconfigurable FPGAs", PROQUEST DISSERTATION & THESES, 31 December 2009 (2009-12-31), pages 1 - 198 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306431A (en) * 2023-05-23 2023-06-23 中科亿海微电子科技(苏州)有限公司 FPGA layout method and device based on module and data flow
CN116306431B (en) * 2023-05-23 2023-09-12 中科亿海微电子科技(苏州)有限公司 FPGA layout method and device based on module and data flow

Also Published As

Publication number Publication date
CN115048892B (en) 2025-03-18

Similar Documents

Publication Publication Date Title
CN110795908B (en) Skew-driven bus-aware general routing approach
CN113408224B (en) FPGA layout method for realizing layout legalization by utilizing netlist local re-synthesis
US20230325573A1 (en) Method and system for generating layout design of integrated circuit
US7149992B2 (en) Method for faster timing closure and better quality of results in IC physical design
US8181139B1 (en) Multi-priority placement for configuring programmable logic devices
CN115048892A (en) IO module layout method based on module connection relation of FPGA
CN107209793B (en) Intellectual property block design with folded blocks and duplicated pins for 3D integrated circuits
US20020199158A1 (en) Method and apparatus for designing a clock distributing circuit, and computer readable storage medium storing a design program
CN107563095A (en) A kind of non-linear layout method of large scale integrated circuit
CN113919266A (en) Clock planning method and device for programmable device, electronic equipment and storage medium
US9940422B2 (en) Methods for reducing congestion region in layout area of IC
CN114297959A (en) FPGA routing method to improve routing efficiency by splitting the net
US8443326B1 (en) Scan chain re-ordering in electronic circuit design based on region congestion in layout plan
US10970452B2 (en) System for designing semiconductor circuit and operating method of the same
CN113128149B (en) Power consumption-based netlist partitioning method for multi-die FPGA
JPWO2004046975A1 (en) Electronic circuit design timing improvement method, program and apparatus
US7328422B2 (en) Design support apparatus, design support program and design support method for supporting design of semiconductor integrated circuit
JP2010073073A (en) Layout design method, apparatus and program
JP2014170595A (en) Layout design method and layout design support program
JPH077142A (en) Semiconductor integrated circuit and design assisting system therefor
US11681846B1 (en) Sub-FPGA level compilation platform with adjustable dynamic region for emulation/prototyping designs
CN117294641A (en) Global signal routing method based on probability cost
TWI396103B (en) Method for data clustering
CN120181004A (en) Scan chain reordering method, computer device and storage medium
Iyer et al. A Partitioning-Based CAD Flow for Interposer-Based Multi-Die FPGAs

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