微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的多软核图像处理系统设计

基于FPGA的多软核图像处理系统设计

时间:06-05 来源:互联网 点击:

本设计在Altera Cyclone II EP2C35F672C6芯片上实现多软核系统,旨在利用FPGA芯片的并行处理结构以及两个Nios II软核处理器间的并行处理和协作,提升数字图像处理系统的性能。

1 CSC MegaCore IP核

Altera视频图像处理组合是Altera公司提供的一组用于开发视频和图像处理的MegaCore IP核。这些MegaCore IP在涉及图像处理和显示的应用中有着广泛应用。这些IP核的功能包括:颜色空间转换、色度重采样、伽玛校正、二维FIR滤波器、二维中值滤波器等[1]。

颜色空间是在三维坐标系下精确表示各种颜色的三维线性空间。不同的颜色空间采用不同的基色:RGB颜色空间采用红、绿、蓝三种颜色;CMY颜色空间采用青、品红、黄三种颜色。不同的硬件设备使用不同的颜色空间,例如:计算机显示器使用RGB颜色空间,数字电视使用YCbCr(亮度色度)颜色空间。将图像数据在使用不同颜色空间的硬件设备间传输时,通常都需要进行颜色空间的转换[2]。颜色空间转换(CSC)MegaCore提供了灵活且高效的方式将图像数据从一个颜色空间转换到另一个颜色空间。

在两个不同的颜色空间进行图像数据的转换时,需要提供一个特定的、具有12个系数的转换矩阵。该矩阵中的系数由进行转换的两个颜色空间决定。例如:din_0、din_1、din_2为被输入的像素在原颜色空间下的坐标,[x0,x1,x2,…,x11]为转换矩阵的系数,dout_0、dout_1、dout_2为输入像素经转换后在目标颜色空间下的坐标,则计算方法如下:

dout_0=x0×din_0+x1×din_1+x2×din_2+x3

dout_1=x4×din_0+x5×din_1+x6×din_2+x7

dout_2=x8×din_0+x9×din_1+x10×din_2+x11

2 CSC MegaCore IP核与Nios II系统的接口设计

本设计的CSC MegaCore IP具有两个Avalon端口:一个只写的Avalon从端口,用于接收Nios II软核处理器通过Avalon总线传来的输入数据;另一个Avalon主端口,将经过CSC MegaCore IP处理后的数据通过Avalon总线写到存储器中。

完成上述两个Avalon接口的功能,需要CSC MegaCore IP对外提供如下几个必备的Avalon总线信号:reset、clock信号用于系统复位和时钟信号;write、writedata信号用于只写的Avalon从端口;write、writedata、address信号用于Avalon主端口(用于Avalon主端口和用于只写的Avalon从端口的write、writedata是不同的信号,只是名称相同)。

由于定制的CSC MegaCore IP没有提供Avalon主端口需要的address信号,所以在本设计中需要增加地址生成逻辑功能。增加该功能有两种方式:第一种方式是对由定制自动生成的CSC MegaCore IP的顶层设计进行更改,在CSC顶层设计文件对外提供的接口中增加address信号,并且在CSC顶层设计文件中加入生成address信号的VHDL代码。另一种方式是用VHDL语言实现一个接口,CSC MegaCore IP只向该接口提供与应用相关的信号,address信号由在该接口设计文件中的VHDL代码生成。

本设计对两种设计方案都进行了尝试,最终采用了第二种方法。因为单独设立一个接口一方面可以解决address信号的生成问题,另一方面设立该接口文件可以使设计的层次更加清晰且具有灵活性和通用性。

设立这样一个接口后,可以将该接口封装为SoPC自定义组件加入Nios II系统中。这样,CSC MegaCore IP就成为了Nios II系统的外围组件,在设计中与Nios II系统处于同一个顶层。而且,由于Altera视频图像处理组合中其他的IP核都具有与CSC MegaCore IP相似的对外接口[1],这样一个接口的设立也解决了Altera视频图像处理组合中其他的IP核与Nios II系统的连接问题。

3 多软核系统的设计

目前,随着业界对计算机芯片的组织和体系结构研究的不断深入,简单地通过提高系统时钟频率、增加Cache容量以及处理器指令的超标量化和流水化等方式实现系统性能提升的策略已经到达了回报减小点。传统方式对系统性能的提升遇到了瓶颈,有学者已经指出,在单一处理器的条件下,系统性能的提高大致正比于复杂度提高的平方根[3]。

随着SoPC技术的发展,设计者普遍采用了一种新办法来改善性能:在同一芯片上安排多个软核处理器并带有大的共享Cache。同一芯片上多个处理器的使用,亦称为多核(multiple cores)。在FPGA中采用多个软核处理器,根据时间和功耗要求划分任务,可以更高效地利用器件的资源、提升器件的处理效率,从而提升系统整体性能。

硬件资源共享是多核系统的强大功能之一,在多核系统中最普遍的共享资源是存储器。共享存储器的数据从端口需要与共享存储器的软核处理器的数据主端口连接。如果某一处理器

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top