【Altera SOC体验之旅】SOC在系统集成方面的优势
[复制链接]
本帖最后由 小梅哥 于 2015-3-19 17:04 编辑
以前一直使用altera的fpga器件。大部分情况下使用的是verilog自己写逻辑,涉及到需要cpu处理的时候,也使用NIOS II处理器。现在,altera推出了SOC器件,SOC的开发流程和以前的NIOS II处理器比起来,有很大的相似之处,但也有了很大的不同。看论坛上各位大神都对altera的各种性能进行了详细的测试,并与其他家相似的产品做了横向比较。我经验尚浅,没有接触过其他家类似的产品。但是因为以前有使用NIOS II进行开发的基础,所以今天,我就根据这段时间体验SOC的感受,来将SOC的开发流程与RTL + NIOS II的开发流程进行一个纵向的比较。通过纵向比较来展示SOC架构与传统的软核加RTL设计相比,有哪些相似之处,存在的优势,以及对于开发人员又提出了怎样的挑战。
首先,通过一个简单的千兆以太网传输的例子来对比两种实现方式实现单纯千兆以太网数据收发的开发流程:
RTL+NIOS II软核方式:
SOC方式:
以上为FPGA和CPU(无论是软核NIOS II还是HPS)无任何数据交互的过程的一个开发流程。说的再明白点,RTL+NIOS II软核方式只是在FPGA内部搭建了一个处理器环境,然后实现了千兆以太网功能,实质还是处理器的事儿。SOC的方式之所以相比RTL+NIOS II软核方式少了很多步骤,就是因为这些工作都已经被预先完成了,是以现成的方式提供给客户的。如果以RTL+NIOS II软核方式,在加入很多的功能IP后,其也能达到HPS那样的方便开发的效果,其开发也能像SOC的方式一样简单了。因此,单从简单的只使用处理器功能来对比,SOC没有占到太多优势,可能唯一的优势就是HPS能够运行linux系统,而且性能比NIOS II要好吧。
上面说完了单纯的使用NIOS II 或HPS实现千兆以太网传输,不涉及与FPGA进行交互,因此没能完全体现SOC架构的优势。
现在以另外一个卡拉OK系统的实际的例子来说明SOC在系统集成方面的巨大作用。
该系统需要实现两个主要功能如下:
现在,有了SOC后,便可以使用一个SOC系统完成这所有的功能。使用SOC系统实现该系统的架构如下图所示:
基于数字移频的啸叫检测与抑制中,使用NIOS II处理器对麦克风采集到的音频信号进行快速傅里叶变换,以准确识别出啸叫点;使用NCO核产生8Hz的低频正弦信号,与麦克风采集到的音频信号进行乘法运算,再将所得结果使用FIR高通滤波器进行数字滤波,即可实现数字移频。
在这套系统中,充分发挥了SOC在系统集成方面的优势,HPS被用来与视频媒体相关的处理工作,同时通过FPGA与HPS共享的DDR3 SDRAM存储器实现视频数据在显示器上的显示。通过此种结构,将以前需要两个甚至更多个系统配合才能完成的工作使用一块主芯片完成,节约了系统成本。
上述例子中,还是没有完全使用到FPGA与HPS间高带宽的优势,因此还是有很大的局限性,今天时间有限,暂时先写到这里。过几天再尝试一下用友晶的高速ADDA卡实现高速数据采集后送给HPS处理的实验,来更进一步体会两者在数据处理方面强大的协同工作能力。祝大家学习进步,工作顺利。
|