CN109670268B - 一种多个ip与efpga端口连接方法 - Google Patents
一种多个ip与efpga端口连接方法 Download PDFInfo
- Publication number
- CN109670268B CN109670268B CN201811646325.1A CN201811646325A CN109670268B CN 109670268 B CN109670268 B CN 109670268B CN 201811646325 A CN201811646325 A CN 201811646325A CN 109670268 B CN109670268 B CN 109670268B
- Authority
- CN
- China
- Prior art keywords
- resource
- result
- efpga
- resource group
- ports
- 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/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多个IP与EFPGA的端口连接方法,包括:使用硬件描述语言建立层次化设计工程,基于层次化设计工程中多个IP在欲连接EFPGA上的逻辑关系将多个IP的IO端口映射到顶层模块的端口上;对IP进行优先级排序;将对层次化设计工程运行逻辑综合的结果中优先级最高的IP的每一个IO与EFPGA的IO模块的单侧端口的IO资源组中的任一合法IO资源进行分配;对分配结果进行全局布局、详细布局和绕线得到时序性能结果;至少两次进行分配,并得到至少两个时序性能结果,择优保存;对第二优先级的IP进行至少两次进行分配,并得到至少两个时序性能结果,择优保存;直至各IP均得到最优时序性能结果。用多个IO的位置去替代单一位置的IP,使集成IP的工作规范化和流程化。
Description
技术领域
本发明涉及IP与EFPGA集成连接领域,尤其涉及一种多个IP与EFPGA端口连接方法。
背景技术
目前,在系统集成中经常会有一个内部IP或第三方IP与EFPGA集成连接的要求,IP的端口与EFPGA的输入和输出IO相连接集成新的芯片,集成后的性能是我们很重视的一个重要环节,EFPGA的四边有大量的输入和输出IO,常规的集成连接会综合评估EFPGA的四边IO端口的性能,导致在连接全局布局和详细布局不能兼顾的弊端。
发明内容
本发明的目的在于解决现有技术存在的缺陷。
为达到上述目的,第一方面一种多个IP与EFPGA的端口连接方法,包括步骤:
使用硬件描述语言建立层次化设计工程,层次化设计工程中包含多个IP在欲连接EFPGA上的逻辑关系和顶层模块;
基于多个IP在欲连接EFPGA上的逻辑关系分别将多个IP的IO端口映射到顶层模块的端口上;且顶层模块端口上各IP的IO端口的映射按照各个IP的端口数量和性能要求的综合信息进行优先级排序形成IP序列;
对层次化设计工程运行逻辑综合,输出综合结果;
将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配,第一IP为IP序列中优先级最高的IP,IO资源组为欲连接EFPGA的IO模块的单侧端口的各IO资源;
对分配的结果进行全局布局、详细布局和绕线,得到绕线的时序性能结果;
至少两次将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配,并对分配的结果分别进行全局布局、详细布局和绕线,得到至少两个时序性能结果,选择并保存时序性能结果最优的IO资源的位置信息;
从IO资源组中移除第一IP时序性能结果最优的IO资源形成新的IO资源组,从IP序列中移除第一IP形成新的IP序列;
若新的IP序列中存在IP,则至少两次将综合结果中第一IP的每一个IO与新的IO资源组中的任一合法IO资源进行分配,并对分配的结果分别进行全局布局、详细布局和绕线,得到至少两个时序性能结果,选择并保存时序性能结果最优的新的第一IP的IO资源的位置信息。
优选地,将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配的同时,将IP序列中除第一IP的其余IP与欲连接EFPGA的IO模块的选定单侧端口以外的其余端口的IO资源进行分配。
优选地,多个IP的IO端口的映射与IO资源组进行分配过程中,全部选择欲连接EFPGA的IO模块的同侧端口的IO资源作为IO资源组。
优选地,当IP序列中存在至少两个IP优先级相等时,随机选择其中任一IP的IO端口的映射与IO资源组进行分配。
优选地,IO资源组包括输入资源组和输出资源组;IP的IO端口的映射根据方向性,选择输入资源组或输出资源组中的任一合法IO资源进行分配。
优选地,硬件描述语言为VHDL或Verilog语言。
优选地,层次化设计工程根据欲连接EFPGA进行设计。
本发明的优点在于:能够很好的保证IP与EFPGA集成后的性能,用多个IO的位置去替代单一位置的IP,而不是盲目的定义二者间的连接关系,使集成IP的工作规范化和流程化,并在多个IP的情况下进行逐一优化。
附图说明
为了更清楚说明本发明实施例的技术方案,下面将对实施例描述中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种多个IP与EFPGA的端口连接方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为一种多个IP与EFPGA的端口连接方法流程图。如图1所示,包括:
步骤S101:使用硬件描述语言建立层次化设计工程,层次化设计工程中包含多个IP在欲连接EFPGA上的逻辑关系、顶层模块和底层模块。
步骤S102:基于多个IP在欲连接EFPGA上的逻辑关系分别将多个IP的IO端口映射到顶层模块的端口上;且顶层模块端口上各IP的IO端口的映射按照各个IP的端口数量和性能要求的综合信息进行优先级排序形成IP序列。
步骤S103:对层次化设计工程运行逻辑综合,输出综合结果。
步骤S104:将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配,第一IP为IP序列中优先级最高的IP,IO资源组为欲连接EFPGA的IO模块的单侧端口的各IO资源。
在一个具体实施例中,将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配的同时,将IP序列中除第一IP的其余IP与欲连接EFPGA的IO模块的选定单侧端口以外的其余端口的IO资源进行分配。
当IP序列中存在至少两个IP优先级相等时,随机选择其中任一IP的IO端口的映射与IO资源组进行分配。
IO资源组包括输入资源组和输出资源组;IP的IO端口的映射根据方向性,选择输入资源组或输出资源组中的任一合法IO资源进行分配。
步骤S105:对分配的结果进行全局布局、详细布局和绕线,得到绕线的时序性能结果。
至少两次执行步骤S104-步骤S105,得到至少两个时序性能结果,选择并保存时序性能结果最优的IO资源的位置信息。
步骤S106:从IO资源组中移除第一IP时序性能结果最优的IO资源形成新的IO资源组,从IP序列中移除第一IP形成新的IP序列。
若新的IP序列中存在IP,则对新的IP序列执行步骤S104-步骤S106,直至新的IP序列中不存在IP,而后集成初始IP序列中的多个IP和EFPGA为一个系统整体。
在一个具体实施例中,层次化设计工程使用Verilog语言根据目标EFPGA设计。IP序列中包含IP1、IP2和IP3,将3个IP的IO端口映射到顶层模块的端口上。IP序列中IP1的优先级高于IP2,IP2的优先级高于IP3。使用EFPGA的IO模块的左侧端口进行IO资源分配。基于IP在EFPGA上的逻辑关系将多个IP的IO端口映射到所述顶层模块的端口上,进而对层次化设计工程运行逻辑综合,输出综合结果。同时,将EFPGA的IO模块的左侧端口的各IO资源分为输入资源组和输出资源组。
使用EFPGA的IO模块的左侧端口IO资源对IP1进行分配,进而得到IO资源的位置信息。同时,使用EFPGA的IO模块的除左侧以外端口IO资源对IP2和IP3进行分配,以防止在多次向IP1分配IO资源时产生干扰。
将综合结果中IP1的每一个IO根据方向性选择输入资源组或输出资源组中的任一合法IO资源进行分配。对分配的结果进行全局布局、详细布局和绕线,得到绕线的时序性能结果。
重复100次对综合结果中IP1的的每一个IO根据方向性选择输入资源组或输出资源组中的任一合法IO资源进行分配,并对分配结果进行全局布局、详细布局和绕线,进而得到绕线的时序性能结果。
选出100个时序性能结果中的最优时序性能结果。
从IP序列中移除IP1,从输入资源组和输出资源组中移除IP1的最优时序性能结果对应的IO资源。
使用EFPGA的IO模块的左侧端口IO资源对新的IP序列中具有最高优先级的IP2进行分配,进而得到IO资源的位置信息。同时,使用EFPGA的IO模块的除左侧以外端口IO资源对IP3进行分配,以防止在多次向IP2分配IO资源时产生干扰。
将综合结果中IP2的每一个IO根据方向性选择输入资源组或输出资源组中的任一合法IO资源进行分配。对分配的结果进行全局布局、详细布局和绕线,得到绕线的时序性能结果。
重复100次对综合结果中IP2的的每一个IO根据方向性选择输入资源组或输出资源组中的任一合法IO资源进行分配,并对分配结果进行全局布局、详细布局和绕线,进而得到绕线的时序性能结果。
选出100个时序性能结果中的最优时序性能结果。
从IP序列中移除IP2,从输入资源组和输出资源组中移除IP2的最优时序性能结果对应的IO资源。
此时,IP序列中仅包含IP3。
使用EFPGA的IO模块的左侧端口IO资源对IP3进行分配,进而得到IO资源的位置信息。
将综合结果中IP3的每一个IO根据方向性选择输入资源组或输出资源组中的任一合法IO资源进行分配。对分配的结果进行全局布局、详细布局和绕线,得到绕线的时序性能结果。
重复100次对综合结果中IP3的的每一个IO根据方向性选择输入资源组或输出资源组中的任一合法IO资源进行分配,并对分配结果进行全局布局、详细布局和绕线,进而得到绕线的时序性能结果。
选出100个时序性能结果中的最优时序性能结果。
至此我们得到了IP1、IP2和IP3对于EFPGA的左侧端口的性能最优连接方案。
本发明提供了一种多个IP与EFPGA端口连接方法及用户设计工程,能够很好的保证IP与EFPGA集成后的性能,用多个IO的位置去替代单一位置的IP,而不是盲目的定义二者间的连接关系,使集成IP的工作规范化和流程化,并在多个IP的情况下进行逐一优化。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种多个IP与EFPGA的端口连接方法,其特征在于,包括步骤:
使用硬件描述语言建立层次化设计工程,层次化设计工程中包含多个IP在欲连接EFPGA上的逻辑关系和顶层模块;
基于所述多个IP在欲连接EFPGA上的逻辑关系分别将多个IP的IO端口映射到顶层模块的端口上;且顶层模块端口上各IP的IO端口的映射按照各个IP的端口数量和性能要求的综合信息进行优先级排序形成IP序列;
对层次化设计工程运行逻辑综合,输出综合结果;所述综合结果中包含多组对应多个IP的IO;
将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配;所述第一IP为所述IP序列中优先级最高的IP,所述IO资源组为欲连接EFPGA的IO模块的单侧端口的各IO资源;
对所述分配的结果进行全局布局、详细布局和绕线,得到绕线的时序性能结果;
至少两次将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配,并对分配的结果分别进行全局布局、详细布局和绕线,得到至少两个时序性能结果,选择并保存时序性能结果最优的IO资源的位置信息;
从所述IO资源组中移除第一IP时序性能结果最优的IO资源形成新的IO资源组,从所述IP序列中移除第一IP形成新的IP序列;
若所述新的IP序列中存在IP,则至少两次将综合结果中新的第一IP的每一个IO与新的IO资源组中的任一合法IO资源进行分配,并对分配的结果分别进行全局布局、详细布局和绕线,得到至少两个时序性能结果,选择并保存时序性能结果最优的新的第一IP的IO资源的位置信息。
2.根据权利要求1所述的方法,其特征在于,所述将综合结果中第一IP的每一个IO与IO资源组中的任一合法IO资源进行分配的同时,将所述IP序列中除第一IP的其余IP与欲连接EFPGA的IO模块的选定单侧端口以外的其余端口的IO资源进行分配。
3.根据权利要求1所述的方法,其特征在于,多个IP的IO端口的映射与IO资源组进行分配过程中,全部选择欲连接EFPGA的IO模块的同侧端口的IO资源作为所述IO资源组。
4.根据权利要求1所述的方法,其特征在于,当所述IP序列中存在至少两个IP优先级相等时,随机选择其中任一IP的IO端口的映射与IO资源组进行分配。
5.根据权利要求1所述的方法,其特征在于,所述IO资源组包括输入资源组和输出资源组;所述IP的IO端口的映射根据方向性,选择所述输入资源组或所述输出资源组中的任一合法IO资源进行分配。
6.根据权利要求1所述的方法,其特征在于,所述硬件描述语言为VHDL或Verilog语言。
7.根据权利要求1所述的方法,其特征在于,所述层次化设计工程根据所述欲连接EFPGA进行设计。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811646325.1A CN109670268B (zh) | 2018-12-29 | 2018-12-29 | 一种多个ip与efpga端口连接方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811646325.1A CN109670268B (zh) | 2018-12-29 | 2018-12-29 | 一种多个ip与efpga端口连接方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109670268A CN109670268A (zh) | 2019-04-23 |
CN109670268B true CN109670268B (zh) | 2022-11-25 |
Family
ID=66147644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811646325.1A Active CN109670268B (zh) | 2018-12-29 | 2018-12-29 | 一种多个ip与efpga端口连接方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109670268B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449481B (zh) * | 2021-08-30 | 2022-07-26 | 中科亿海微电子科技(苏州)有限公司 | 嵌入式fpga ip核顶层电路图自动生成方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101821737A (zh) * | 2007-07-23 | 2010-09-01 | 新思公司 | 构架物理综合 |
CN103970939A (zh) * | 2014-04-22 | 2014-08-06 | 南京航空航天大学 | 一种层次化可重构的片上网络建模与仿真系统 |
CN105718679A (zh) * | 2016-01-22 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种fpga的资源布局方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8981813B2 (en) * | 2011-11-30 | 2015-03-17 | Agate Logic, Inc. | Method and apparatus for facilitating communication between programmable logic circuit and application specific integrated circuit with clock adjustment |
-
2018
- 2018-12-29 CN CN201811646325.1A patent/CN109670268B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101821737A (zh) * | 2007-07-23 | 2010-09-01 | 新思公司 | 构架物理综合 |
CN103970939A (zh) * | 2014-04-22 | 2014-08-06 | 南京航空航天大学 | 一种层次化可重构的片上网络建模与仿真系统 |
CN105718679A (zh) * | 2016-01-22 | 2016-06-29 | 深圳市同创国芯电子有限公司 | 一种fpga的资源布局方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于PicoBlaze的多软核网络处理结构研究;李虹霏等;《计算机工程》;20090405(第07期);85-86,89 * |
Also Published As
Publication number | Publication date |
---|---|
CN109670268A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109740247B (zh) | 一种ip与efpga端口连接方法及其优选方法 | |
US10242146B2 (en) | Method and apparatus for placing and routing partial reconfiguration modules | |
KR100887523B1 (ko) | 복수의 메시 네트워크를 할당하는 방법, 변환 및 할당을수행하는 방법, 매체를 포함하는 장치, 프로그래밍 가능한장치, 구성가능한 장치 및 전자 시스템 | |
US20090070773A1 (en) | Method for efficient thread usage for hierarchically structured tasks | |
JP2010527194A (ja) | 動的運動ベクトル分析方法 | |
US7822945B2 (en) | Configuration managing device for a reconfigurable circuit | |
CN105808328A (zh) | 任务调度的方法、装置和系统 | |
US20150311899A1 (en) | Virtualization of programmable integrated circuits | |
KR102552954B1 (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 | |
JP5552196B2 (ja) | 中継装置、中継装置の制御方法、およびコンピュータプログラム | |
TWI539776B (zh) | 資料中心伺服器資源的動態規劃方法 | |
CN109670268B (zh) | 一种多个ip与efpga端口连接方法 | |
CN110187960A (zh) | 一种分布式资源调度方法及装置 | |
US8473881B1 (en) | Multi-resource aware partitioning for integrated circuits | |
Picornell et al. | DCFNoC: A delayed conflict-free time division multiplexing network on chip | |
CN107360031B (zh) | 一种基于优化开销收益比的虚拟网络映射方法 | |
CN104765701A (zh) | 数据访问方法及设备 | |
US9753769B2 (en) | Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof | |
CN109729731B (zh) | 一种加速处理方法及设备 | |
WO2011051784A1 (zh) | 考虑计划组的扫描链的重构方法与装置 | |
CN108108473B (zh) | 数据查询方法以及服务器 | |
CN112631766A (zh) | 项目环境资源的动态调整方法及装置 | |
CN106484492A (zh) | 配置接口的方法和系统 | |
JPH01302850A (ja) | テスト容易化半導体集積回路の製造方法 | |
CN114490007A (zh) | 计算模块、可重构芯片、重构方法、装置、设备及介质 |
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 |