FPGA是嵌入式系统设计的理想选择

根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

随着消费电子、物联网等领域的不断发展,用户需求也越来越复杂和多样,因此我们在嵌入式系统设计中必须选择合适的处理器(SoC)系统,当然我们也需要考虑成本、功耗、性能、I/O资源等方面,但是随着实践案例的增多FPGA越来越成为嵌入式系统设计的主流选择。

FPGA/SoC:最早我们都采用的是纯FPGA设计,利用FPGA的资源实现软核处理器比如Microblaze、Picoblaze等,现在Xilinx推出了Zynq SoC和Zynq UltraScale+ MPSoC系列,它们集成的是硬核处理器(双核ARM Cortex-A9 CPU或者Quad-A53+Dual-R5 GPU),这不仅带来了性能、功耗、性价比方面的改进,同时也减小的PCB尺寸;

功耗:Xilinx Zynq UltraScale+ MPSoC系列在之前纯FPGA器件的基础上的确进行了非常大的改进,它支持多种电源模式:Full-Power模式;Low-Power模式;Sleep模式,DRAM暂停;Power-Off模式,提供丰富灵活的电源管理方案,在性能和功耗两者之间灵活的切换;

模拟量处理:早在Virtex系列上就集成了ADC功能,但是这只限于监测器件内部的模拟量,比如电压、温度等。之后再7系列上集成了两个1Msamples/sec@12-bits ADC模块,支持内部和外部模拟量的采集,Zynq UltraScale+ RFSoC则集成了更高性能的ADCs/DACs模块:4Gsamples/sec@12 bits ADCs / 6.5Gsamples/sec@14 bits DACs,可应用于15G、雷达等领域。

安全方面:我们都知道FPGA的启动文件时比特流(bitstream)形式,Xilinx Zynq-7000 SoC和Zynq UltraScale+ MPSoC都支持加密的比特流,加载到处理器后进行安全解密启动。

开发工具:对于工程师来讲最重要的还是开发工具,好用的开发工具可以事半功倍。与Xilinx Zynq 7000系列同时推出的Vivado工具集成了丰富的功能:IP integrator(IPI)是一款图形化的IP设计插件;HLS(High Level Synthesis,高层次综合)支持工程师使用C/C++语言生成HDL功能代码。此外SDSoC则是一个完整的系统、软件和硬件设计工具,支持完全采用C/C++语言实现嵌入式系统软硬件功能开发,SDAccel则是一款基于OpenCL开发框架的设计工具。

由此可见FPGA/SoC供应商已经花费大量的精力来优化器件并且完善开发工具,使它们更易于应用到嵌入式系统设计中,同时我们的学习过程也会比过去更容易,在不远的将来FPGA/SoC将会获得更广泛的应用。

上一篇:PHP搭建网站登录页面(一个iOS开发者的PHP之路)


下一篇:开源项目OEIP 游戏引擎与音视频多媒体(UE4/Unity3D)