数字与软件的协同设计(Zynq・Intel SoC)

COLLABORATIVE
DESIGN
理解数字与软件,优化整体的技术
最近,像Xilinx公司的Zynq和Intel公司的SoC FPGA那样,搭载了FPGA和CPU的集成电路设备正在普及。在三荣高科技,我们对FPGA进行数字设计,对CPU进行软件设计,追求将数字与软件整合成一个系统来运作的技术。

数字与软件的协同设计服务

以往设计中的问题点

以往的设计是先将数字和软件分开设计,最后连接起来,整体能够运转就可以了。但是这样的设计并不能完全释放Zynq和Intel SoC的潜力。其实,我们需要一种同时理解数字和软件,并将两者作为一个系统来优化整体的技术。但是现在拥有这种技术的技术人员非常少。

将FPGA和CPU集成在一个芯片上的优势

将以往被分成不同芯片的FPGA和CPU集成在一个芯片上的优势,不仅仅是实装面积变小变得小巧而已。 通常,FPGA和CPU之间的通信需要在芯片外部通过基板(板)完成,但通过使用Zynq和Intel SoC可以使这个过程在芯片内完成,从而大幅提高通信速度。因此,在通过组合数字与软件到一个功能的系统中,可以消除通信速度慢的传统瓶颈,并且可以提高整个系统的处理速度(潜力)。
本公司正在开发数字与软件的协同设计的服务。我们预先创建一个公司自身实际可能会需要的系统,积累技术,在具体需求发生时迅速为客户提供必要的设计服务。

开发案例

图像识别系统

例如,我们正在开发一种“图像识别系统”,其市场正在不断扩大。配置如下图所示。
该系统实装在Zedboard(AVNET公司生产)的Zynq评价板上。
画像認識アルゴリズムの例(円検出)
Zynqの評価用ボード「Zedboard」(AVNET社)

优化整个系统,最大限度地提高性能

图像识别算法的基本部分是通过软件进行处理,将处理的一部分剪切到数字电路中以提高速度。
该软件在Zynq中的CPU上运行,数字电路也在Zynq中的FPGA上运行。
设计的关键是在理解算法的基础上,考虑让软件承载到什么程度,把哪个部分带到数字电路上,在系统整体上进行优化,从而最大限度地提高性能。

通过利用现有的程序库和IP,减少开发工时

在这样的系统的开发中,不从一开始就自己制作,而是尽可能地活用可获得的藏书和IP,将开发工时(开发期间)控制在最小限度。这也是一项十分重要的技术。
例如,在该系统中,CPU配备的Linux操作系统,而软件在该操作系统上运行。通过使用Linux-OS,便可以利用Qt(GUI程序库的一种)和OpenCV(图像处理程序库的一种)等开源的程序库。
此外,由于Linux-OS还备有各种设备驱动程序,因此在连接USB摄像机时,可以使用Linux-OS附带的USB驱动程序,无需特意单独准备USB接口。 即使是FPGA,也可以从Xilinx公司官网上获得并安装具有软件难以实现的HDMI等高速接口的IP。 但是,由于HDMI和图像识别算法之间的图像规格不同,因此我们创建了用于规格转换的数字电路,并将其插入到HDMI的IP前。
 
为了像这样有效地进行开发,还需要将现有IP与自己的电路更完美结合的技术。