CN105183485B - 一种可视化软硬件协同开发方法 - Google Patents

一种可视化软硬件协同开发方法 Download PDF

Info

Publication number
CN105183485B
CN105183485B CN201510630878.8A CN201510630878A CN105183485B CN 105183485 B CN105183485 B CN 105183485B CN 201510630878 A CN201510630878 A CN 201510630878A CN 105183485 B CN105183485 B CN 105183485B
Authority
CN
China
Prior art keywords
software
hardware
code
development
fpga
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
Application number
CN201510630878.8A
Other languages
English (en)
Other versions
CN105183485A (zh
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.)
State Grid Corp of China SGCC
Xuji Group Co Ltd
XJ Electric Co Ltd
Xuchang XJ Software Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
Xuji Group Co Ltd
XJ Electric Co Ltd
Xuchang XJ Software Technology 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 State Grid Corp of China SGCC, Xuji Group Co Ltd, XJ Electric Co Ltd, Xuchang XJ Software Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201510630878.8A priority Critical patent/CN105183485B/zh
Publication of CN105183485A publication Critical patent/CN105183485A/zh
Application granted granted Critical
Publication of CN105183485B publication Critical patent/CN105183485B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种可视化软硬件协同开发方法,属于嵌入式系统开发技术领域。本发明根据用户描述的软硬件功能,利用元件库中的元件建立相应的软硬件模型,并根据模型中各元件所对应的代码生成软件目标文件和其协作的FPGA目标文件,使得在一个开发环境下进行软硬件的协同开发,而不用关心软件和硬件的协作和通信细节,提高了开发效率,同时为用户提供的软硬件接口,能够充分利用软硬件资源,提高系统的性价比,使用图形化的开发方式,用户不用编写任何代码,减少了开发错误,保证了产品质量。

Description

一种可视化软硬件协同开发方法
技术领域
本发明涉及一种可视化软硬件协同开发方法,属于嵌入式系统开发技术领域。
背景技术
当前,高性能的嵌入式系统一般包括CPU和FPGA两种方式处理高复杂度和高实时性的任务,CPU处理高复杂度的任务,而FPGA处理高实时性的任务。但现有的硬件平台和软件平台由于是各自独立的部分,由两个团队分别进行开发,没有太多的协同。一般CPU软件的开发属于软件平台范畴,FPGA的开发和硬件紧密相关,属于硬件开发的范畴,硬件平台设计提供的资源软件平台不能充分发挥作用,软件在硬件平台上运行的性能和效率也未能达到最优。最终应用中各个任务模块不能合理的分配到CPU和FPGA中。造成产品的成本升高和性能无法达到要求。尤其是,FPGA芯片支持的动态可重构功能,使得FPGA资源可以分时复用,使得有限的FPGA资源可以最大化的利用。这更需要一种协同开发的手段,来充分的利用软硬件功能。
另外,在传统的嵌入式系统设计领域,通常整个应用程序仅仅用软件实现,没有充分的利用硬件资源。随着以FPGA技术为代表的可编程器件的速度越来越快,使用越来越普遍,将应用程序实现成软硬件混合系统将能够达到更好的性价比。随着嵌入式产品的应用推广到各行各业,产品多种多样,市场竞争激烈,势必对产品的开发效率、可靠性和稳定性提出更高的要求。而以手工编写代码方式来开发的嵌入式系统,容易导致各种各样问题,使得产品的可靠性、稳定性大幅下降。这需要产品管理和开发人员寻求新的开发方法来保证产品的质量和可靠稳定性。
发明内容
本发明的目的是提供一种可视化软硬件协同开发方法,以解决目前嵌入式系统开发时采用手工编写代码的方式实现开发所导致开发的产品可靠性和稳定性低的问题。
本发明为解决上述技术问题提供了一种可视化软硬件协同开发方法,该开发方法包括以下步骤:
1)根据元件自身的属性,建立元件库,元件库中元件分为软件元件和驱动元件,软件元件采用软件代码编写,驱动元件包括驱动代码和硬件描述语言,每一个元件均有对应的函数声明和功能实现代码;
2)利用所建立的元件库绘制待开发系统的软硬件功能模型;
3)对所绘制功能模型中的各元件进行拓扑排序,确定元件的执行顺序,并将模型中各元件替换成对应的软件元件代码、驱动代码或硬件描述语言;
4)利用编写好的平台框架代码将转换后的软件代码和驱动代码生成软件目标文件,用于在嵌入式系统中的CPU运行;
5)利用硬件开发工具将所有的硬件描述语言转换成符合FPGA配置文件规范的比特流文件,用来配置嵌入式系统中的FPGA芯片。
所述步骤2)中的功能模型的基本元素包括元件、带箭头的连线和元件的属性配置接口,所述属性配置接口用于配置元件的工作方式、数据源和数据的目的地参数。
所述当元件级联时,即前一个元件的输出是后一个元件的输入时,在拓扑排序时,需保证具有依赖关系的元件访问的是同一个内存地址。
所述每个硬件功能的地址空间由系统运行时动态分配和维护。
所述当需要的硬件功能不在FPGA资源中时,由FPGA配置芯片加载相应的Bit流文件到FPGA资源中,并返回加载的基地址,其对应的驱动代码通过该地址访问硬件功能。
所述元件库中的元件有自己的属性,包括图形颜色、形状,管脚数量和类型,管脚分为输入管脚和输出管脚两种类型,每个管脚关联的数据类型。
本发明的有益效果是:本发明利用所建立的元件库绘制待开发系统的软硬件功能模型;对所绘制功能模型中的各元件进行拓扑排序,确定元件的执行顺序,并将模型中各元件替换成对应的软件元件代码、驱动代码或硬件描述语言;利用编写好的平台框架代码将转换后的软件代码和驱动代码生成软件目标文件,用于在待开发的嵌入式系统的CPU中运行;利用硬件开发工具将所有的硬件描述语言转换成符合FPGA配置文件规范的比特流文件,用来配置嵌入式系统中的FPGA芯片,从而实现嵌入式系统的可视化开发。
本发明根据用户描述的软硬件功能,利用元件库中的元件建立相应的软硬件模型,根据模型中各元件所对应的代码生成软件目标文件和其协作的FPGA目标文件,使得在一个开发环境下进行软硬件的协同开发,而不用关心软件和硬件的协作和通信细节,提高了开发效率,同时为用户提供的软硬件接口,能够充分利用软硬件资源,提高系统的性价比,使用图形化的开发方式,用户不用编写任何代码,减少了开发错误,保证了产品质量。
附图说明
图1是本发明可视化软硬件协同开发方法的工作原理图;
图2是本发明实施例中图形语言描述软硬件功能示意图;
图3是元件结构体定义实现程序代码;
图4是本发明实施例中软件加法器元件对应的代码;
图5是本发明实施例中硬件加法器元件对应的驱动代码;
图6是本发明实施例中图形语言转换成C语言的实现代码。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的说明。
针对上述情况,本发明提供的一种可视化的软硬件协同开发方法,采用用统一的图形语言描述软硬件功能,建立应用业务模型;用户通过元件、连线进行逻辑组态,描述软硬件功能,不需要编写任何代码,也不用关心软硬件的通信细节,降低开发人员要求,提高开发效率和保证系统可靠、稳定性。
本发明的整体工作原理图如图1所示,根据元件自身的属性,建立元件库,元件库中元件分为软件元件和驱动元件,软件元件采用软件代码编写,驱动元件包括驱动代码和硬件描述语言,每一个元件均有对应的函数声明和功能实现代码;利用所建立的元件库绘制待开发系统的软硬件功能模型;对所绘制功能模型中的各元件进行拓扑排序,确定元件的执行顺序,并将模型中各元件替换成对应的软件元件代码或驱动代码及其声明函数;利用编写好的平台框架代码将转换后的软件代码和驱动代码生成软件目标文件,由嵌入式系统中的CPU执行;利用硬件开发工具将所有的硬件描述语言转换成符合FPGA配置文件规范的比特流文件,用来配置嵌入式系统中的FPGA芯片,从而实现对嵌入式系统的软硬件开发。
下面以具体例子说明该方法的具体实施过程,运行环境为处理器是PowerPC,FPGA芯片是支持局部动态重构的virtex系列,操作系统是nucleus系统。
1.建立元件库
元件有自己的属性,包括图形颜色、形状,管脚数量和类型,管脚分为输入管脚和输出管脚两种类型,每个管脚关联的数据类型。元件库中的元件分为软件元件和驱动元件,软件元件用软件编写,被编译成处理器指令由CPU执行;驱动元件包括驱动代码和硬件描述语言,驱动代码被编译成处理器指令,由CPU执行,硬件描述语言被编译、综合成FPGA比特流,配置到FPGA芯片中形成硬件电路,驱动代码可配置、访问该硬件电路对应的电路功能。在第一次进行可视化软件开发时该步骤是必须的,一旦元件库建立后,后面的开发过程无需再建立新的元件库,可直接使用之前所建立好的元件库,节省了开发时间。
2.用图形库中的元件绘制待开发系统的软硬件模型
用图形语言描述的软硬件功能如图2所示,图形语言的基本元素包括元件和带箭头的连线,以及元件的属性配置接口,配置接口可配置元件的工作方式、数据源、数据的目的地等参数。本实施例中使用了软件加法器元件和硬件加法器元件,元件对象的结构体定义如图3所示。
3.对所绘制功能模型中的各元件进行拓扑排序,确定元件的执行顺序。
该步骤由图形逻辑处理单元完成,图形逻辑处理单元根据绘制的软硬件模型图形,进行元件的拓扑排序,确定元件的执行顺序,以便在转换成代码时,按顺序生成软件语句。
当元件级联时,前一个元件的输出是后一个元件的输入时,要保证它们访问的是同一个内存地址,这需要软件处理单元在拓扑排序时,为具有依赖关系的元件,即具有连线的地方需要指向相同的内存地址,用来传递数据,并把这些地址记录在元件对象中。本实施例图2中,两个软件加法器的输出正是后面硬件的加法器的输入,当硬件加法器计算两个数的和时,从内存地址获取数据,这也正是软件加法器的输出的内存地址,最后调用FPGA的硬件功能完成计算。
4.将模型中各元件替换成对应的软件元件代码、驱动代码或硬件描述语言。
本实施例中标识为iAdd的元件为软件加法器元件,其对应的软件代码如图4所示;标识为Add的元件为硬件加法器元件,其对应的驱动代码如图5所示。
5.利用编写好的平台框架代码将转换后的软件代码和驱动代码生成软件目标文件,用于嵌入式系统中的CPU运行。
该过程可由软件处理模块完成,软件处理模块把所有的软件代码和驱动代码与一个编写好的平台框架代码结合生成makefile工程,调用交叉编译工具链生成完整的软件目标文件,平台框架代码和底层平台相关,是相对固定不变的部分,为运行图形逻辑提供了运行环境。
6.利用硬件开发工具将所有的硬件描述语言转换成符合FPGA配置文件规范的比特流文件,用来配置嵌入式系统中的FPGA芯片。
本实施例中硬件加法器元件对应的硬件描述语言,由VHDL语言编写和设置,包括实体和结构体两部分,由常规的硬件开发工具根据功能开发,此处没有列出其VHDL代码。标识为DATA的元件为输入元件,可通过配置窗口指定输入数据源,或者配置为立即数。标识为GLOBAL的元件代表一个全局变量,即把计算后的结果存入一个内存变量中。
每个硬件功能单元的地址空间由系统运行时动态分配和维护。当需要的硬件功能不在FPAG资源中时,由FPAG配置芯片加载相应的Bit流文件到FPGA资源中,并返回加载的基地址,其对应的驱动代码通过该基地址访问硬件功能。用户不用关心访问硬件的通信细节,平台框架代码会记下分配的硬件元件基地址,当应用程序需要调用硬件功能时,会根据该基地址访问硬件功能。
从软件加法器元件的实现代码看到,它从管脚1和2获取两个输入数据,计算两个数的和,然后把结果写入管脚3,从硬件加法器元件的驱动代码看到,它也是从管脚1和2获取输入数据,不同的是它之后调用了FPGA的硬件功能完成加法运算,这是通过操作开放的寄存器接口实现,由于在编译期硬件处理单元把硬件地址告诉了软件处理单元,软件处理单元可以通过该地址访问硬件的功能,因为硬件加法器运算速度快,该驱动代码没有检查标识寄存器,直接取结果。
通过FPGA的配置控制器动态的加载硬件功能单元,得到重构FPGA芯片的功能,并返回加载的基地址,由于nucleus系统运行在实地址模式,所以不需要把该基地址转换成虚拟地址,可以直接使用。
图形语言处理后变成如图6所示的代码,所有的元件对象按顺序存放在结构体数组中,获取到该数组的首地址后,可通过增加偏移定位到下一个元件对象。从图6中看到,把元件对象作为参数传递给元件对应的代码。平台框架代码已创建好用户任务,把生成的图6代码添加到任务的执行路径中,用户功能即可在该任务中运行,完成预定义的功能。

Claims (6)

1.一种可视化软硬件协同开发方法,其特征在于,该开发方法包括以下步骤:
1)根据元件自身的属性,建立元件库,元件库中元件分为软件元件和驱动元件,软件元件采用软件代码编写,驱动元件包括驱动代码和硬件描述语言,每一个元件均有对应的函数声明和功能实现代码;
2)利用所建立的元件库绘制待开发系统的软硬件功能模型;
3)对所绘制功能模型中的各元件进行拓扑排序,确定元件的执行顺序,并将模型中各元件替换成对应的软件代码、驱动代码或硬件描述语言;
4)利用编写好的平台框架代码将转换后的软件代码和驱动代码生成软件目标文件,用于在嵌入式系统中的CPU运行;
5)利用硬件开发工具将所有的硬件描述语言转换成符合FPGA配置文件规范的比特流文件,用来配置嵌入式系统中的FPGA芯片。
2.根据权利要求1所述的可视化软硬件协同开发方法,其特征在于,所述步骤2)中的功能模型的基本元素包括元件、带箭头的连线和元件的属性配置接口,所述属性配置接口用于配置元件的工作方式、数据源和数据的目的地参数。
3.根据权利要求2所述的可视化软硬件协同开发方法,其特征在于,当元件级联时,即前一个元件的输出是后一个元件的输入时,在拓扑排序时,需保证具有依赖关系的元件访问的是同一个内存地址。
4.根据权利要求3所述的可视化软硬件协同开发方法,其特征在于,每个硬件功能的地址空间由系统运行时动态分配和维护。
5.根据权利要求4所述的可视化软硬件协同开发方法,其特征在于,当需要的硬件功能不在FPGA资源中时,由FPGA芯片加载相应的比特流文件到FPGA资源中,并返回加载的基地址,其对应的驱动代码通过该地址访问硬件功能。
6.根据权利要求1所述的可视化软硬件协同开发方法,其特征在于,所述元件库中的元件有自己的属性,包括图形颜色、形状、管脚数量和类型,类型分为输入管脚类型、输出管脚类型以及与每个管脚关联的数据类型。
CN201510630878.8A 2015-09-29 2015-09-29 一种可视化软硬件协同开发方法 Active CN105183485B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510630878.8A CN105183485B (zh) 2015-09-29 2015-09-29 一种可视化软硬件协同开发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510630878.8A CN105183485B (zh) 2015-09-29 2015-09-29 一种可视化软硬件协同开发方法

Publications (2)

Publication Number Publication Date
CN105183485A CN105183485A (zh) 2015-12-23
CN105183485B true CN105183485B (zh) 2019-01-01

Family

ID=54905584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510630878.8A Active CN105183485B (zh) 2015-09-29 2015-09-29 一种可视化软硬件协同开发方法

Country Status (1)

Country Link
CN (1) CN105183485B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492301A (zh) * 2018-11-08 2019-03-19 北京世冠金洋科技发展有限公司 软硬件切换方法和系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203681B (zh) * 2017-06-23 2020-07-14 马德海 一种硬件模型参数配置平台的工作方法
CN108334036A (zh) * 2018-01-31 2018-07-27 广州奇芯机器人技术有限公司 一种图形化编程加工方法及设计方法
CN110471803B (zh) * 2019-07-05 2021-01-29 华为技术有限公司 一种物理硬件操作方法、电子设备、存储介质及芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1560743A (zh) * 2004-03-11 2005-01-05 浙江大学 多媒体处理器协同仿真验证平台
US7716631B1 (en) * 2005-01-20 2010-05-11 Sprint Communications Company L.P. Architecture blueprint tool and method
CN102867087A (zh) * 2012-09-11 2013-01-09 西安电子科技大学 图形化雷达信号处理高层集成设计平台及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1560743A (zh) * 2004-03-11 2005-01-05 浙江大学 多媒体处理器协同仿真验证平台
US7716631B1 (en) * 2005-01-20 2010-05-11 Sprint Communications Company L.P. Architecture blueprint tool and method
CN102867087A (zh) * 2012-09-11 2013-01-09 西安电子科技大学 图形化雷达信号处理高层集成设计平台及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492301A (zh) * 2018-11-08 2019-03-19 北京世冠金洋科技发展有限公司 软硬件切换方法和系统

Also Published As

Publication number Publication date
CN105183485A (zh) 2015-12-23

Similar Documents

Publication Publication Date Title
CN106484394B (zh) 一种双引擎快速软件开发系统
CN105183485B (zh) 一种可视化软硬件协同开发方法
CN103019742B (zh) 一种多dsp平台上的自动代码生成方法
CN103246755B (zh) 基于任意拉格朗日‑欧拉(ale)的有限元分析的单元细分方法和系统
CN104965761A (zh) 一种基于gpu/cpu混合架构的流程序多粒度划分与调度方法
Giorgi et al. Axiom: A scalable, efficient and reconfigurable embedded platform
US11789733B2 (en) Instruction processing apparatus, acceleration unit, and server
CN103116493A (zh) 一种应用于粗粒度可重构阵列的自动映射方法
Aksakalli et al. Systematic approach for generation of feasible deployment alternatives for microservices
CN105718601A (zh) 一种业务动态集成模型及其应用方法
US20230120227A1 (en) Method and apparatus having a scalable architecture for neural networks
Bo et al. Automata processing in reconfigurable architectures: In-the-cloud deployment, cross-platform evaluation, and fast symbol-only reconfiguration
CN105447285B (zh) 一种提高OpenCL硬件执行效率的方法
Segal et al. High level programming for heterogeneous architectures
Antunes et al. Partitioning and dynamic mapping evaluation for energy consumption minimization on NoC-based MPSoC
Sarbazi-Azad et al. Large Scale Network-Centric Distributed Systems
CN100492371C (zh) 分布型cad装置
Menard et al. Mocasin—rapid prototyping of rapid prototyping tools: A framework for exploring new approaches in mapping software to heterogeneous multi-cores
US20220343144A1 (en) Server and accelerator for neural network computations
Biancolin et al. Accessible, FPGA resource-optimized simulation of multiclock systems in firesim
US9558305B1 (en) Automatic modeling, mapping, and code generation for homogeneous and heterogeneous platforms
Yang et al. System-level design solutions: Enabling the IoT explosion
Diez Dolinski et al. Distributed simulation of P systems by means of map-reduce: first steps with Hadoop and P-Lingua
Mariotti et al. SISSA: The BondMachine toolkit: Enabling Machine Learning on FPGA
Silvano et al. Supporting the scale-up of high performance application to pre-exascale systems: The antarex approach

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant