1、zynq的开发四种方式
纯pl开发,纯ps开发(helloworld),ps+pl(无操作系统,跑裸跑程序),ps+pl(跑操作系统)。
1.1 纯pl开发
这个和一般的xilinx的fpga没有很大的区别。
1.2 纯ps开发
典型的就是helloworld工程, 一种是传统的arm的方式。还一种就是xilinx方法,这个是生成一个elf文件,这个elf文件包括了硬件配置信息(xmp),和裸跑程序(c文件)。
1.3 ps+pl(不跑操作系统)开发
这个可以参考懒兔子博客二,三笔记,生成的elf文件包括了硬件配置信息(xmp),还有裸跑程序(c文件),另外还有一个.bit文件可以看出和纯ps开发的区别了。
1.4 ps+pl(跑操作系统)开发
这个就需要boot.bin,设备树,linux内核镜像,文件系统了。
其中boot.bin是由3部分组成的(boot.elf, .bit, fsbl.elf),boot.elf这个是由交叉编译环境产生的,相当于ssbl,.bit文件是pl使用文件,fsbl.elf这个是fsbl。
2、开发工具
2.1 独立开发环境
pl—> vivado
ps(arm)–> sdk(xilinx)或者第三方arm开发工具
2.2 集成开发环境
sdsoc
2.3 独立开发环境的四个步骤
(1) 系统架构师确定硬件-软件分区方案;
(2) 硬件工程师处理被分配到硬件中的功能,并将它们转换或设计成ip核(verilog/vhdl,也可用vivado hls实现c/c++高层次综合);
(3) 利用vivado ip integrator 创建整个嵌入式系统的模块化设计。包括开发需要的数据移动工具(axi-dma、axi memory master、axi-fifo 等),以及连接 pl ip 与 ps 的 axi 接口(gp、hp 和 acp),之后将此项目导入到sdk中;
(4) 软件工程师使用sdk,开发ps中arm处理器的驱动程序和应用。
对于以硬件为中心的优化流程,矛盾往往出现在不同的数据移动工具和pl-ps接口以及写入和调试驱动程序与应用,为避免重构硬件造成软件的变化,使得ps-pl开发更加紧密,赛灵思推出了sdsoc开发环境。将上述步骤(2)、(3)和(4)实现高度自动化,以缩短开发时间。该开发环境会生成必要的硬件和软件组件,用以同步硬件和软件并保存源程序语义,同时支持任务级并行处理和流水线化的通信与计算,从而实现高性能。sdsoc 环境会自动安排所有必要的赛灵思工具(vivado、ip integrator、hls 和 sdk),以生成针对 zynq soc 的完整软硬件系统,而且所需的用户介入程度很小。
一个sdsoc设计项目是建立在一个“平台”之上的。所谓“平台”包含硬件平台和软件平台两个部分,是一个设计开发可以复用的基础性系统。
平台是利用标准的vivado、sdk和os工具创建的。硬件平台(hpfm)定义了诸如处理系统(ps,processing system)、i/o子系统、存储器接口等,这些工作都基于一个定义明确的端口接口(axi、axi-s,、时钟、复位、中断)。软件平台(spfm)定义了os、设备驱动、启动加载程序(boot loaders)、文件系统、库等。
基于c/c++源代码的定制和专用硬件和软件,用户可以扩展平台。
sdsoc将平台作为独立的解决方案空间,基于平台提供的资源去生成用于解决方案的ip。每个解决方案都是为一个平台裁剪而成的。
一个扩展名为xpfm的文件包含了硬件描述符xml文件(hpfm)和软件描述符xml文件(spfm)位置的参考。
2.4 vivado
vivado是基于ip的设计,称为block design(bd),调用已有的ip,用户自己编写的逻辑模块也可以封装成ip,然后在模块blcok中连线。逻辑开发完毕,再转到sdk,sdk会根据vivado的硬件设计设置调用相应的内部驱动代码。(pl部分就如同arm的总线axi等挂的外设)
2.5 sdk
sdk根据生成的.hdf文件匹配fsbl,只需添加main.c文件即可。
3、类似嵌入式 c/c++/opencl 应用开发的体验–sdsoc
sdsoc™ 开发环境可为异构 zynq® allprogrammable soc 及 mpsoc 部署提供类似嵌入式 c/c++/opencl 应用的开发体验,其中包括简单易用的 eclipse ide 和综合设计环境。sdsoc 提供业界首款 c/c++/opencl 全系统优化编译器,可实现系统级的特性描述、可编程逻辑中的自动软件加速、自动系统连接生成以及可加速编程的各种库。此外,它还可帮助最终用户及第三方平台开发人员快速定义、集成和验证系统级解决方案,为其最终用户实现定制化编程环境。(软件工程师能够对 zynq soc 中的可编程逻辑和 arm 处理系统进行编程)
• 简单易用的 eclipseide 可用于开发支持嵌入式 c/c++/opencl 应用的全面 zynq all programmable soc 和 mpsoc 系统
• 只需一点按钮,就可对可编程逻辑 (pl) 中的功能进行加速
• 支持作为目标 os 的裸机、linux 与 freertos
• xilinx 库作为 vivado hls 的一部分,由联盟成员提供,是可选硬件优化的库。
• opencl 在 2016.3 版中为早期的测试版。请联系您的当地销售代表提出申请
下图展示的是一个基于基础平台的完整sdsoc设计的整体结构。需要加速的c/c++/systemc功能成为了fpga可编程逻辑(pl)中的ip,而其他功能保留在处理器系统(ps)中。同时,sdsoc会在那些ip和ps系统间自动生成互连。
3.1 系统级的特性描述
• 快速性能估算与面积估算可在几分钟内完成,包括 ps、数据通信以及 pl
• 高速缓存、存储器以及总线利用率的自动运行时仪表
• 可实现最佳总体系统架构的便捷生成与探索
3.2 全系统优化编译器
• 可将c/c++/opencl 应用编译成全功能 zynq soc 与 mpsoc 系统
• 可在生成 arm 软件与 fpga 比特流的可编程逻辑中实现自动功能加速
• 不仅可优化系统连接,而且还支持吞吐量、时延以及面积权衡的快速系统探索
3.3 sdsoc开发流程
① sdsoc 环境使用快速估算流程(通过调用内含的vivado hls)构建应用项目。这样在数分钟内就能大致估算出性能和资源情况。
② 如果有必要,用适当的指令优化 c/c++ 应用和硬件功能,并重新运行估算直到实现所需的性能和占位面积。
③ 然后,sdsoc 环境构建整个系统。该过程会生成完整的 vivado design suite 项目和比特流,以及一个针对 linux、freertos 或裸机的可引导的运行时间软件映像。
机器人大军抗疫各显神通 三大方面切入疫情防控
LCD液晶段码屏显示驱动IC-VK1056B/C更少脚位,体积封装小FAE支持
史玉柱:《绿色征途》开启免费网游新时代
三星SoC在AMD加持下GPU性能暴涨2.5倍
PLC中的三大量介绍 模拟量和脉冲量的计算
Zynq的开发方式和开发工具
Sivers IMA高精确度非接触式电子传感模块
zpwsmile桥芯片产生通用的CompactPCI单板计算机
基于云平台的果园水肥精准管理系统介绍
亚马逊停止在美国的Prime Pantry食品杂货送货服务 拟优先履行未结订单
关于苹果自研5G基带芯片的性能分析
CPU风扇产生噪音的原因
Molex推出NeoPress™ 高速夹层系统
毫米波雷达传感器的优势特点
双核1.5GHz Snapdragon 8X72芯片组将在明
陶瓷粉末超声波振动筛电源发生器控制器
勤哲Excel服务器实现防汛物资管理管理系统
关于电动汽车/混合动力整车控制系统的分析和介绍
星纵物联与您相约IOTE 2023 国际物联网展·深圳站!
你知道在什么情况下应该使用定制连接器吗