FPGA SoC入门难?SDSoC帮你跨“门槛儿”
SDSoC
该用什么硬件平台去做 Design-In?这是电子工程师在设计开发之初绕不过去的问题。专用芯片ASIC性能强但开发成本越来越高,通用的处理器灵活性好又不免会遭遇性能瓶颈……所以越来越多的人将目光转向了FPGA这种可由开发者自己“定义”硬件功能的可编程逻辑器件。
近年来,随着采用“ARM内核+可编程逻辑”这种异构FPGA SoC器件(如Xiinx Zynq系列)的问世,更是为开发者提供了一种高性能和灵活性完美结合的新平台,让人不免技痒。
而在人们的传统认知中,和可编程硬件打交道并非易事,这种工作通常是由公司中“一小撮”懂得VHDL、Verilog这类硬件描述语言的硬件工程师操刀,其他人只能在可编程硬件的门口徘徊。为了解决这个问题,Xilinx公司出了一个大招儿:推出了一系列“软件定义”导向的、名为SDx的开发工具——顾名思义,其中的SD就是指“Software Define”,软件定义——其用意很明确,它们是专为系统和软件工程师而设计,可以使那些只有很少或根本没有FPGA设计经验的研发人员,能够直接使用高级编程语言在强大的可编程硬件上进行设计,并且可以与嵌入芯片内部或是在片外连接的标准处理器(ARM或x86)一起协同工作。 这样一来,可编程硬件平台的用户就被扩展到传统意义上系统和软件工程师的范畴,从“高冷”范儿变得触手可及。
图1,Xilinx的SDx软件定义开发工具一览
目前Xilinx公司的SDx系列开发工具家族已经有三个主要成员:SDNet、SDAccel和SDSoC,每个工具各有侧重,面向不同的可编程硬件平台。
SDNet:问世最早,是“软件定义网络”的解决方案,SDNet可结合XIlinx的全面可编程器件,打造出了“软”定义网络这样的交叉技术,将可编程能力和智能化功能从控制层扩展至数据层,不仅支持SDN,而且还可以突破性地支持任何软件定义网络架构。
SDAccel:面向的是Xilinx那些“纯”可编程逻辑器件,实现了软件定义的加速器,与采用CPU和GPU实现的方案相比,利用FPGA进行加速可获得高达25倍的性能功耗比提升。
SDSoC:是专门针对Zynq SoC和MPSoC硬件平台的开发工具,其目的是让嵌入式和应用软件开发人员能够充分挖掘上述开编程硬件平台的性能优势,实现超过100倍的软件性能加速。
其中的SDSoC,由于面向的是应用最为广泛的嵌入式开发领域,也可以说是惠及面最广的一个工具,所以在在今后的一系列文章中我们将对它进行剥茧抽丝般详细的介绍。
图2,Xilinx的SDx系列工具定位及优势
从Xilinx赋予SDSoC的使命可以看出,它是一个先进工具套件,可以大大简化开发过程中资源的管理和更复杂的设计系统连接,让开发者使用复杂的SoC工具套件能够像使用他们熟悉的嵌入式开发工具一样顺畅和自然。
为了实现这一目标,SDSoC提供了一系列创新性的特性,如:
系统级性能分析
在可编程逻辑上的自动的软件加速
自动生成系统连接
利用各种的库提升编程效率(比如OpenCV)
这些创新特性对于嵌入式开发者来说,能够带来的效率和便利性的提升是显而易见的。
对于系统架构工程师来说,SDSoC能够帮助其基于C/C++快速完成硬件和软件功能分区,探索不同的系统架构。
对于硬件工程师来说,他们不必再将算法“翻译”成HDL,而直接通过C/C++高级语言优化IP,并为一个可复用的平台创建I/O系统。
对于软件工程师来说,他们无需成为一个FPGA专家,就可以在一个完整的、熟悉的软件环境下去创建基于Zynq系统的FPGA设计,即使没有任何FPGA/HDL的开发经验。
SDSoC让开发者能够以“系统”的思路去创建一个设计,让用户可以基于C/C++/OpenCL导入一个现有的Zynq设计并开始开发新的应用。它为潜在的硬件和软件问题提供了一个高级抽象,使得开发者能够将精力更多地专注于整体的系统解决方案,而不是耗费在在门级逻辑设计这些繁复的工作上。
总之,通过SDSoC这个开发工具,一方面让以前需要不同团队不断协调、迭代开发才能完成的工作流程得以简化,另一方面可以让做软件的人员直接参与到产品的设计中来,利用这个工具将软件的创意快速变成一个真实的产品,打破传统意义上系统、硬件、软件开发之间的藩篱,加速设计创新的进程。帮助更多的开发者跨过FPGA SoC应用的门槛儿,这就是SDSoC的要义所在。
往期相关文章回顾:
安富利
获取更多精彩内容
推荐帖子
- 【DIY】制作5V输入车灯控制器
- DIY&分享GravityShare有看过之前的视频应该有了解到曾DIY改造过一款USB接口作为电源输入的电动车灯,车灯设计的电压输入是大于12V,而且线序是自定义的,因此不能直接使用。这次来DIY一款专用的车灯控制器,包括对LED和喇叭两个部分的控制,其中LED为自锁开关而喇叭为轻触开关,符合日常使用需求。这次我们来DIY制作一款专用车灯控制器:P01车灯控制器G01G02G03播放下面视频观
- 万有引力平台 DIY/开源硬件专区
- 急求啊!基于AVR128的数码相框的设计!!!!
- 哪位大神帮帮忙啊。。。小的刚接触,,实在没法急求啊!基于AVR128的数码相框的设计!!!!用到GCC,SD卡读取,TFT液晶显示模块,JTAG,BMP图片转换回复楼主西瓜聪明的帖子顶一下。。不要沉啊。。高手。。救命,。救命啊顶一个高手在哪里啊!求助。。。救人一命胜造七级浮屠啊!!!!
- 西瓜聪明 Microchip MCU
- EG2133的高端输出异常
- 示波器观察EG2133高端输出一直为高电平,低端输出正常,请问一下大家时什么原因?EG2133的高端输出异常猜测EG2133芯片挂了,过两天换一个直接上电后,由于内部上拉电阻以及HO端下拉电阻的存在,所以通常情况下HO端应该为低电平,现在一直保持高电平不变,猜测EG2133芯片问题你好我也遇到和你一样的问题了,我更换芯片后发现高端输出在高电平的基准上有一个不太标准的PWM波,且并未抬高目标电压,上了几次电后高端输出又称常高了。请问当时你的问题时怎么解决的?
- 史上最萌反派 电机驱动控制(Motor Control)
- 网口隔离变压器网线侧防护与走线
- 如上图,上侧是一个网口隔离变压器,U43是钳位二极管,内部为整流桥后面接TVS结构,芯片侧TVS管阳极接地,这么接没什么问题。问题在于网线侧的两队差分对参考地是谁?可以参考PE(大地)吗?网线侧保护器件件U44的TVS管应该接谁还是浮空仅进行差分防护?如上图,芯片是隔离变压器,离接口近点还是驱动芯片近点?网口隔离变压器网线侧防护与走线距离驱动芯片近点好防护隔离的目的就是考虑EMI的影响变压器本身的一个作用也是隔离 关键问题在于变压器靠近网线那一侧
- 呜呼哀哉 PCB设计
- 免费获赠500块LPC800迷你板!时间有限,欲快从速!
- 好消息通知大家!根据您一直以来对NXPLPC微控制器产品的关注,NXP希望您愿意来获取这次试用NXP最新LPC800微控制器产品的机会。NXP将为您免费寄送500块采用DIP8封装LPC810的LPC800迷你板。您可自行探索这款突破性的解决方案!还在等什么,赶快参与吧!!!活动链接:https://www.eeworld.com.cn/huodong/201303_NXP_LPC800/index.html
- EEWORLD社区 NXP MCU
- 基于ARM的嵌入式开发环境概述(一)
- 学习嵌入式系统的开发应用技术,应该是在基于某种嵌入式微处理器核的系统芯片应用平台上进行。小弟不才,今后的几贴将对如何构造ARM嵌入式开发环境等基本情况进行介绍。(一)交叉开发环境作为嵌入式系统应用的ARM处理器,其应用软件的开发属于跨平台开发,因此,需要一个交叉开发环境。交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行运行调试的开发方式。用来开发的通用计算机可以是PC机、工作站等,运行通用的Windows或Unix操作系统。开发计算机一般称宿主机,嵌入式设备
- boxin518 ARM技术