CN113821192A - 基于可视化界面的动态部分重构系统自动化设计方法 - Google Patents
基于可视化界面的动态部分重构系统自动化设计方法 Download PDFInfo
- Publication number
- CN113821192A CN113821192A CN202010570727.9A CN202010570727A CN113821192A CN 113821192 A CN113821192 A CN 113821192A CN 202010570727 A CN202010570727 A CN 202010570727A CN 113821192 A CN113821192 A CN 113821192A
- Authority
- CN
- China
- Prior art keywords
- design
- reconstruction system
- automatically
- dynamic
- dynamic partial
- 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.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000000007 visual effect Effects 0.000 title claims abstract description 19
- 238000005457 optimization Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims abstract description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000011161 development Methods 0.000 abstract description 5
- 238000012938 design process Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于可视化界面的动态部分重构系统自动化设计方法,属于FPGA系统设计的技术领域。该方法首先开发可视化界面,指导用户输入FPGA动态部分重构系统设计流程各阶段的设计描述;接着在后台将用户描述自动转换为可执行的脚本命令,并存入相应脚本文件中;然后在后台自动读取和运行脚本文件,生成全局位流和所有部分位流;最后在后台自动生成批处理文件并运行,将所选择位流配置到FPGA开发板。本发明将复杂的动态部分重构系统设计流程转化为可视化界面的简单操作,大大提高了设计的自动化程度,提升了设计效率和设计方案的优化程度,促进了资源的合理利用;同时,方便初学者快速进行动态部分重构系统设计。
Description
技术领域
本发明涉及FPGA动态部分重构系统设计的方法,尤其涉及一种基于可视化界面的动态部分重构系统自动化设计方法,属于FPGA系统设计的技术领域。
背景技术
目前,Xilinx公司的主流FPGA开发工具包括Xilinx ISE Design Suite和Vivado。ISE是Xilinx公司的主流硬件设计工具,支持目前所有的Xilinx FPGA产品。Vivado是Xilinx公司2012年发布的集成设计环境,其综合和实现速度比ISE有较大提升;但是,它目前仅支持Xilinx 7系列FPGA的开发,不支持其他系列FPGA的设计和开发。
ISE和Vivado均提供对动态部分重构系统设计的支持。但是,现有动态部分重构系统设计流程存在诸多不足,如:动态部分重构系统设计软件PlanAhead的操作界面中功能众多,动态部分重构设计流程各步骤所需工具比较分散,且操作过程复杂,需要熟练的设计工程师才能完成;划分可重构区域位置和大小时,需要人工查看每个模块资源需求情况,手动进行多次试验才能完成,且不能保证划分方案为最优;设计过程中生成多个部分位流时,需要人工多次重复操作才能完成;部分重构设计操作不能自动化实现,设计效率较低,且可能因操作步骤过多而导致因人为因素出错。本发明专利是针对上述问题提出的一种基于可视化界面、自动化程度较高的FPGA动态部分重构系统设计方法。
发明内容
本发明的目的在于针对上述问题和不足,提出一种基于可视化界面的动态部分重构系统自动化设计方法,能够自动完成动态部分重构系统的设计,并生成全局位流和所有部分位流。本发明以可视化界面的形式,将动态部分重构系统设计流程的每个操作步骤顺序呈现于用户;用户只需按照提示,输入相应设计描述,即可通过后台生成、读取和运行命令脚本,以及运行定制算法的形式,自动完成动态部分重构系统设计。因此,本发明大大简化了动态部分重构系统设计的流程,提高了动态部分重构系统设计的自动化程度,提升了动态部分重构系统设计的效率和设计方案的优化程度,促进了资源的更合理利用;同时,降低了FPGA动态部分重构系统设计过程中用户的工作量,方便初学者快速进行动态部分重构系统设计。
为了实现上述目的,本发明采取的技术方案是:一种基于可视化界面的动态部分重构系统自动化设计方法,其特征在于,包括以下几个步骤:
(1)开发动态部分重构系统设计GUI界面,指导用户输入FPGA动态部分重构系统设计流程各阶段的设计描述,并按顺序自动执行FPGA动态部分重构系统设计流程;
(2)将在(1)所述GUI界面中进行的动态部分重构系统设计流程的每个操作步骤,通过后台自动转换为可执行的脚本命令,并按照操作顺序,依次存入相应脚本文件中;
(3)在(1)所述GUI界面中通过按钮控制,在后台自动读取和运行(2)中生成的脚本文件,生成全局位流和每个可重构区域所需的部分位流;
(4)在(1)所述GUI界面中通过按钮控制,选择需要配置的位流,在后台自动生成批处理文件并运行,将所选位流配置到FPGA中。
进一步地,所述步骤(1)的具体实现方法如下:
(1.1)开发动态部分重构系统设计GUI界面,接收用户设计输入源文件,并自动创建综合设计工程,生成相应网表文件和综合报告等,完成顶层电路设计;
(1.2)在(1.1)所述GUI界面中通过按钮和对话框,提示用户指定工程路径、网表文件和约束文件,并自动创建动态部分重构设计工程;
(1.3)在(1.1)所述GUI界面中通过按钮控制,对顶层模块的综合报告进行分析,自动显示系统中所有功能模块列表,提示用户选择可重构模块,并为每个可重构模块选择需要实现的功能网表;
(1.4)在(1.1)所述GUI界面中通过按钮控制,使用所开发可重构区域自动划分算法,自动分析每个可重构功能模块所需资源情况,确定优化的可重构区域划分方案,并返回各可重构区域的资源坐标信息;
(1.5)在(1.1)所述GUI界面中通过按钮控制,使用所开发位流生成策略最优化算法,根据(1.3)和(1.4)中信息,自动为每个可重构区域所需功能网表选择最优配置策略。
进一步地,所述步骤(2)的具体实现方法为:在后台创建脚本文件,根据用户描述将动态部分重构设计流程各阶段的每个操作步骤转化为脚本语句,依次存入相应的脚本文件中。
进一步地,所述步骤(3)中,脚本文件在ISE命令窗口执行,执行过程中在后台调用PlanAhead工具,自动实现动态部分重构系统设计流程的每个操作步骤。
进一步地,所述步骤(4)中,批处理文件执行过程中,通过调用iMPACT工具,将所选位流配置到FPGA中。
拟采取方案中,整个动态部分重构设计流程采用自动化处理的方式,以可视化界面的形式呈现。与传统的设计流程相比,本方案不需要进行复杂的设计操作、无需手动划分可重构区域,也不需要手工反复操作生成部分位流;用户只需在友好的可视化界面中,输入最基本的设计描述,即可自动完成动态部分重构系统设计,大大降低了设计复杂度和操作难度,提升了设计效率和设计方案的优化程度;同时,降低了动态部分重构系统设计的门槛,方便初学者快速入门和掌握。
附图说明
图1为本发明所述方法的流程图
具体实施方式
下面详细描述本发明的实施例,本实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。本实施例在Xilinx公司的Virtex-7系列FPGA上设计一个动态部分重构系统,所述动态部分重构系统包含一个顶层模块两个可重构区域,每个可重构区域能够通过动态部分重构配置为两种不同功能。参照说明书附图对本发明基于可视化界面的动态部分重构系统自动化设计流程作以下详细地说明。如图1所示,本实施例基于可视化界面的动态部分重构系统自动化设计方法,包括以下步骤。
(1)开发动态部分重构系统设计GUI界面,指导用户输入FPGA动态部分重构系统设计流程各阶段的设计描述,并按顺序自动执行FPGA动态部分重构系统设计流程。所述GUI界面将动态部分重构系统设计描述输入归结为五个阶段:设计顶层电路、创建动态部分重构设计工程、配置可重构模块、划分可重构区域和配置位流生成策略;每个阶段的名称呈现于所述GUI界面的一个显示区域,且其主要操作均以按钮的形式呈现。
(1.1)设计顶层电路:在(1)所述GUI界面的“设计顶层电路”显示区域中,点击“生成网表”按钮,将弹出“生成网表”的对话框。根据所述对话框的提示信息,首先点击“添加资源”按钮,添加系统的顶层文件和四种功能模块的源文件;然后点击“确定”按钮,即可在后台自动创建和运行综合设计工程,并生成相应网表文件和综合报告等,完成顶层电路设计。
(1.2)创建动态部分重构设计工程:在(1)所述GUI界面的“创建动态部分重构设计工程”显示区域中,进行以下操作:
(1.2a)点击“工程路径”按钮,设置动态部分重构设计工程的创建位置;
(1.2b)点击“选择平台型号”按钮,选择Virtex-7作为FPGA芯片型号;
(1.2c)点击“添加网表及约束”按钮,弹出“添加网表及约束”的对话框;
(1.2d)根据(1.2c)所述对话框的提示信息,首先点击“添加顶层网表”按钮,选择(1.1)中生成的顶层网表;接着点击“添加约束文件”按钮,选择所需的约束文件;最后点击“确定”按钮,即可在后台自动创建部动态重构设计工程。
(1.3)配置可重构模块:在(1)所述GUI界面的“配置可重构模块”显示区域中,进行以下操作:
(1.3a)点击“分析.syr/.srp文件”按钮和“分析.v/vhd”按钮,依次选择(1.1)中生成的综合报告(.srp)以及用户设计的HDL源文件,后台将自动识别系统中两个子模块的名称m1和m2并呈现于列表控件中;
(1.3b)在(1.3a)所述列表控件中,选择m1子模块,并点击“添加”按钮,弹出“添加网表”对话框;
(1.3c)在(1.3b)所述对话框中,根据提示信息点击“选择”按钮,添加m1所需的两种功能网表;
(1.3d)重复(1.3b)和(1.3c)的操作步骤,为m2子模块添加功能网表。
(1.4)划分可重构区域:在(1)所述GUI界面的“划分可重构区域”显示区域中,点击“划分区域”按钮,将自动运行可重构区域划分算法,为每个可重构模块划分区域。所述可重构区域划分算法主要包括以下步骤:
(1.4a)导出每个可重构模块所添加功能网表的物理资源报告,自动分析并提取其所需资源情况,并返回每个可重构模块所需最大资源数量(BRAM、CLB以及DSP等);
(1.4b)制定划分规则,选定FPGA芯片上固定区域作为动态部分重构资源划分区域,并从所述固定区域边界开始,利用空闲资源搜索的方法,寻找到满足可重构模块资源需求的最佳区域;
(1.4c)分别返回所划分的区域中三类资源(BRAM、CLB以及DSP)的坐标。
(1.5)配置位流生成策略:在(1)所述GUI界面的“配置位流生成策略”显示区域中,点击“配置策略”按钮,在后台自动运行所开发的位流生成策略最优化算法。所述位流生成策略最优化算法采取最少循环次数和最大更新的原则,确保以最快的速度自动为系统生成全局位流,并为每个可重构区域生成所有部分位流。
所述位流生成策略最优化算法取每个可重构区域所需配置功能数目的最大值作为循环次数,每次循环对应一种位流生成策略。本实施实例中,自动将循环次数设置为2,返回两种位流生成策略信息。
(2)在(1)所述GUI界面中进行的动态部分重构系统设计流程的每个操作步骤,均在后台自动转换为可执行的脚本命令,并按照操作顺序,依次存入相应脚本文件中。本实施实例中,对应步骤(1.1)-(1.5),分别在后台创建了5个脚本文件:topdes.tcl、dprprj.tcl、confdpr.tcl、planprr.tcl和confbcs.tcl。如,dprprj.tcl为步骤(1.2)生成的脚本文件,其主要内容如下:
create_project PlanAhead path1-part xc7vx485tffg1761-2
表示在“path1”规定的工程文件路径下,创建一个“xc7vx485tffg1761-2”为对象的PlanAhead工程;
set_property board vc707[current_project]
表示设置开发板型号为“vc707”;
set_property design_mode GateLvl[current_fileset]
表示将当前文件集设置为默认的门级;
add_files-norecurse path2/top.ngc
表示向所创建的工程中,添加网表top.ngc(path2为top.ngc所在路径);
set_property is_partial_reconfig true[current_project]
表示将工程属性设置为可以动态部分重构。
(3)在(1)所述GUI界面中通过按钮控制,点击“生成位流”按钮,将自动调用ISE命令窗口,通过后台调用相应PlanAhead工具,顺序运行(2)中生成的五个脚本文件中的脚本命令。运行完毕,弹出“生成位流成功”的对话框,生成了2个全局位流文件和4个部分位流文件。
(4)在(1)所述GUI界面中通过按钮控制,点击“下载位流”按钮,弹出“选择位流文件”对话框。在所述对话框中选择需要配置的位流文件,点击“确定”按钮,则在后台生成批处理文件v1.bat和v2.bat,并自动运行。v1.bat在后台启动iMPACT工具执行v2.bat,通过JTAG对位流进行配置。运行完毕,弹出“配置成功”对话框,表明已将所选位流配置到指定FPGA中。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.基于可视化界面的动态部分重构系统自动化设计方法,所述设计方法基于MFC对话框获得可视化界面,其特征在于,包括以下步骤:
(1)开发动态部分重构系统设计GUI界面,指导用户输入FPGA动态部分重构系统设计流程各阶段的设计描述,并按顺序自动执行FPGA动态部分重构系统设计流程;
(2)将在(1)所述GUI界面中进行的动态部分重构系统设计流程的每个操作步骤,通过后台自动转换为可执行的脚本命令,并按照操作顺序,依次存入相应脚本文件中;
(3)在(1)所述GUI界面中通过按钮控制,在后台自动读取和运行(2)中生成的脚本文件,生成全局位流和每个可重构区域所需的部分位流;
(4)在(1)所述GUI界面中通过按钮控制,选择需要配置的位流,在后台自动生成批处理文件并运行,将所选位流配置到FPGA中。
2.根据权利要求1所述的基于可视化界面的动态部分重构系统自动化设计方法,其特征在于,所述步骤(1)的具体实现方法如下:
(1.1)开发动态部分重构系统设计GUI界面,接收用户设计输入源文件,并自动创建综合设计工程,生成相应网表文件和综合报告等,完成顶层电路设计;
(1.2)在(1.1)所述GUI界面中通过按钮和对话框,提示用户指定工程路径、网表文件和约束文件,并自动创建动态部分重构设计工程;
(1.3)在(1.1)所述GUI界面中通过按钮控制,对顶层模块的综合报告进行分析,自动显示系统中所有功能模块列表,提示用户选择可重构模块,并为每个可重构模块选择需要实现的功能网表;
(1.4)在(1.1)所述GUI界面中通过按钮控制,使用所开发可重构区域自动划分算法,自动分析每个可重构功能模块所需资源情况,确定优化的可重构区域划分方案,并返回各可重构区域的资源坐标信息;
(1.5)在(1.1)所述GUI界面中通过按钮控制,使用所开发位流生成策略最优化算法,根据(1.3)和(1.4)中信息,自动为每个可重构区域所需功能网表选择最优配置策略。
3.根据权利要求1所述的基于可视化界面的动态部分重构系统自动化设计方法,其特征在于,所述步骤(2)的具体实现方法为:在后台创建脚本文件,根据用户描述将动态部分重构设计流程各阶段的每个操作步骤转化为脚本语句,依次存入相应的脚本文件中。
4.根据权利要求1所述的基于可视化界面的动态部分重构系统自动化设计方法,其特征在于,所述步骤(3)中,脚本文件在ISE命令窗口执行,执行过程中在后台调用PlanAhead工具,自动实现动态部分重构系统设计流程的每个操作步骤。
5.根据权利要求1所述的基于可视化界面的动态部分重构系统自动化设计方法,其特征在于,所述步骤(4)中,批处理文件执行过程中,通过调用iMPACT工具,将所选位流配置到FPGA中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570727.9A CN113821192A (zh) | 2020-06-19 | 2020-06-19 | 基于可视化界面的动态部分重构系统自动化设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010570727.9A CN113821192A (zh) | 2020-06-19 | 2020-06-19 | 基于可视化界面的动态部分重构系统自动化设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821192A true CN113821192A (zh) | 2021-12-21 |
Family
ID=78912298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010570727.9A Pending CN113821192A (zh) | 2020-06-19 | 2020-06-19 | 基于可视化界面的动态部分重构系统自动化设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821192A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521614A (zh) * | 2023-07-05 | 2023-08-01 | 西安智多晶微电子有限公司 | 一种fpga动态局部重配置方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170228220A1 (en) * | 2016-02-08 | 2017-08-10 | International Business Machines Corporation | Self-healing automated script-testing tool |
CN107741846A (zh) * | 2017-09-22 | 2018-02-27 | 深圳航天科技创新研究院 | Fpga工程过程管理优化设计方法、系统及存储介质 |
CN111124642A (zh) * | 2019-12-16 | 2020-05-08 | 中国电子科技网络信息安全有限公司 | 一种云管理平台可自定义的自动化流程方法及系统 |
-
2020
- 2020-06-19 CN CN202010570727.9A patent/CN113821192A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170228220A1 (en) * | 2016-02-08 | 2017-08-10 | International Business Machines Corporation | Self-healing automated script-testing tool |
CN107741846A (zh) * | 2017-09-22 | 2018-02-27 | 深圳航天科技创新研究院 | Fpga工程过程管理优化设计方法、系统及存储介质 |
CN111124642A (zh) * | 2019-12-16 | 2020-05-08 | 中国电子科技网络信息安全有限公司 | 一种云管理平台可自定义的自动化流程方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521614A (zh) * | 2023-07-05 | 2023-08-01 | 西安智多晶微电子有限公司 | 一种fpga动态局部重配置方法 |
CN116521614B (zh) * | 2023-07-05 | 2023-09-15 | 西安智多晶微电子有限公司 | 一种fpga动态局部重配置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8271936B2 (en) | Non-graphical model dependencies in graphical modeling environments | |
US8150673B1 (en) | Partitioning a model in modeling environments | |
Bacon et al. | FPGA programming for the masses | |
US6321369B1 (en) | Interface for compiling project variations in electronic design environments | |
US6668364B2 (en) | Methods and apparatuses for designing integrated circuits | |
Calagar et al. | Source-level debugging for FPGA high-level synthesis | |
US7552415B2 (en) | Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC) | |
US9880922B1 (en) | System and method for automatically generating a graphical model from a text-based program | |
CN107895087B (zh) | 可编程逻辑电路模块级仿真配码自动生成的方法及系统 | |
US9817931B1 (en) | Systems and methods for generating optimized hardware descriptions for models | |
US7441210B2 (en) | On-the-fly RTL instructor for advanced DFT and design closure | |
US10078717B1 (en) | Systems and methods for estimating performance characteristics of hardware implementations of executable models | |
US8296690B1 (en) | Method and arrangement providing for implementation granularity using implementation sets | |
CN116090403B (zh) | 支持多仿真器的命令处理系统 | |
EP0847022A2 (en) | Method for designing an architectural system | |
US9424005B1 (en) | Templatized component | |
CN113821192A (zh) | 基于可视化界面的动态部分重构系统自动化设计方法 | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN112860316A (zh) | openEular开源系统的内核及BSP移植方法 | |
US8694293B2 (en) | Simulation support method, computer-readable storage medium storing simulation support program, and simulation support apparatus | |
Zha | Facilitating FPGA reconfiguration through low-level manipulation | |
CN112989752B (zh) | 一种电源方案的仿真方法、仿真装置、终端设备及介质 | |
US20030046052A1 (en) | Simulating a logic design | |
CN117709263A (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 |