一个SDSoC设计开发流程需要哪些步骤呢?

在上sdsoc系列文章的上一篇中,我们已经介绍了如何在sdsoc中构建硬件和软件平台,并使用sdspfm工具生成客户应用开发平台(参见《sdsoc开发起步:构建硬件和软件平台》)。如果你已经完成了上述工作,恭喜你——现在你可以正式“起步”开始基于sdsoc在zynq soc上开发自己的应用了!
一个典型的sdsoc设计开发流程,包括以下几个步骤:
用户定义开发应用所需的目标平台。
用户基于c/c++设计和验证算法。
用户根据系统特征描述确定性能瓶颈,然后进行软硬件分区。
sdsoc将自动执行那些通过pl(可编程逻辑)加速的功能,其他功能保留在ps(处理器系统)中。
sdsoc也将自动生成软/硬件之间的连接和datamover逻辑以连接pl和ps中的功能。
如果最终的结果未达到设计要求,开发者可以重新进行软硬件功能分区,探索最优的系统架构。
图1,sdsoc典型开发流程(图片来源:赛灵思)
没错,使用sdsoc进行应用开发说起来就是这么简单的几步。我们这篇文章的内容完全可以在这里划上句号。
不过,我们还是希望将现在“简单”的设计流程,和传统上可编程逻辑“不简单”的设计流程进行一个对比,让大家深刻认识到sdsoc到底帮你做了些什么?
所谓“没有对比就没有伤害”,传统的zynq soc开发流程是复杂成这个样子的——首先由系统架构工程师对软硬件进行分区,即确定哪些功能放入pl(可编程逻辑)中进行硬件加速,哪些功能在ps(处理器系统)中用软件实现;
接下来,硬件工程师基于vivado生成要在pl中加速的ip并搭建硬件平台,还要完成软/硬件之间的连接,配置ps与pl之间的接口工作等;然后将硬件平台的数据导入sdk,由软件工程师完成配套的的驱动和应用程序的开发。可见,传统的设计流程,需要很多团队和资源的介入,不简单。
而如果完成了上述设计工作之后,发现系统架构还需要优化,这就悲催了——设计不得不重新调整软硬件分区,上述整个开发流程又要重新进行一遍,而且很多情况下需要多次迭代才能找到那个令人满意的系统架构和方案。由此耗费的时间和资源,是巨大的,甚至是不可控的。
图2,传统的fpga soc应用开发流程(图片来源:赛灵思)
而使用sdsoc之后,很多工作是由工具自动完成的:省去了诸如软件驱动和硬件连接等繁复的手动工作,同时使用c/c++终端应用可以像函数调用一样输入调用用户算法ip;只需要单次点击,就可以完成分区设置以确定需要在可编程逻辑中运行的功能。
图3,使用sdsoc简化后的fpga soc应用开发流程(图片来源:赛灵思)
做一个不是十分准确的比喻:sdsoc与传统工具和开发流程的差别,就像是自动挡与手动挡汽车的不同,它让复杂的工作对用户变得“透明”,让用户实际的“操作”变得更简单,而用户由此被解放出来的精力,则可以用到思考“要去哪儿、如何走”等更高级的问题,而不是和“油离配合”较劲儿。
类比到fpga soc的应用开发中,用户最关注的部分往往是算法的最终实现和算法模块的优化——包括ip或是软件功能块——sdsoc的设计理念正是让用户能够更加专注于这些核心问题,其他问题sdsoc帮你搞掂。从这个意义上看,sdsoc在“简单”的背后确实不简单。

基于采用AT89S51单片机和LM35温度传感器的温度采集显示系统设计
在第七届中国高成长企业CEO峰会上,第十一届V50榜单正式发布
区块链提供了什么东西给金融领域
LED电子显示屏,LED电子显示屏工作原理是什么?
太阳能电池基本特性与性能参数详解
一个SDSoC设计开发流程需要哪些步骤呢?
微软重大改变!Windows10将每年进行两次大更新!
配电网组成及特点/体系结构/SCADA系统
华为Mate9成首款搭载Alexa语音助手的安卓机
电机控制器中PSoC的探究与应用
小米6和荣耀v9哪个好?小米6和荣耀v9评测对比
如何才能保证Filecoin安全上线
y电容基础知识总结
光电耦合器的基本结构是什么
科技智库“甲子光年”在北京举行2020“甲子引力”大会
红外热成像气体检漏机芯
8 种进行简单线性回归的方法分析与讨论
你对于5G贷了解吗
国内大型植保无人机TDN-01问世,推动三农的稳步发展
Molex Mini-Fit Sigma连接器产品介绍