CN113821192A - 基于可视化界面的动态部分重构系统自动化设计方法 - Google Patents

基于可视化界面的动态部分重构系统自动化设计方法 Download PDF

Info

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
Application number
CN202010570727.9A
Other languages
English (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.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
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 Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN202010570727.9A priority Critical patent/CN113821192A/zh
Publication of CN113821192A publication Critical patent/CN113821192A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical 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中。
CN202010570727.9A 2020-06-19 2020-06-19 基于可视化界面的动态部分重构系统自动化设计方法 Pending CN113821192A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521614A (zh) * 2023-07-05 2023-08-01 西安智多晶微电子有限公司 一种fpga动态局部重配置方法

Citations (3)

* Cited by examiner, † Cited by third party
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 中国电子科技网络信息安全有限公司 一种云管理平台可自定义的自动化流程方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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