预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于XilinxFPGA的硬件协处理器设计张强王华苏宏锋闫晓茹摘要:DSP+FPGA模式具有结构复杂、成本高以及资源浪费比较严重的缺点,基于FPGA的软硬件协同设计已成为DSP+FPGA的理想替代方案。FPGA软硬件协同系统中,硬件协处理器的高效设计尤其重要。Xilinx提供了三种硬件协处理器设计方法:HDL语言+IP核,SystemGenerator和HLS(High-LevelSynthesis)。鉴于HDL语言描述算法能力有限,重点研究了后两种硬件设计方式。在实验环节选取Sobel边缘提取算法,并用SystemGenerator和HLS加以实现。最终结果说明,这两种新颖的设计方式具有设计效率高、能够实现较复杂算法以及加速仿真和验证的优越特性。关键词:FPGA;硬件协处理;SystemGenerator;HLS中图分类号:TP332文献标识码:A文章编号:1007-9416(2017)04-0173-021引言DSP+FPGA的结构具备一定的灵活性和通用性,能够满足实时性要求。但也具有结构复杂、成本较高以及资源浪费严重的缺点[1]。基于FPGA的软硬件协同设计具有结构紧凑、设计灵活、硬件资源利用率高以及成本较低的优势。FPGA利用任务内部的并行机制和自定义大小的存储器,能够为每一个计算任务优化数据路径,从而获得很高的计算能力[2]。除此之外,FPGA能提供一种机制保证任务的确定执行,具有很好的实时处理能力[3]。由此可见,硬件实现算法具有计算能力强和实时性高的两大优势。软硬件协同系统中,硬件协处理器的高效设计对系统性能指标影响巨大。由于HDL语言只是针对硬件描述的,对于算法表达、仿真和验证并不方便,与C语言等高级语言相比,可靠性也较差[4]。这些不足严重妨碍了软硬件协同系统的实现与性能。本文針对SystemGenerator和HLS两种高层次综合设计方法,设计了Sobel算法硬件协处理器。实验结果表明:SystemGenerator和HLS能够更高效完成硬件协处理器的设计,加速复杂算法的硬件实现、仿真和验证。2Sobel边缘提取算法Sobel算子是用于水平和垂直边缘检测的简单检测子,能够很好的处理灰度渐变和噪声多的图像。具体实现是两个模板gx和gy与图像中的每一个像素进行卷积。Sobel算子3*3模板如下:S(x,y)=[gi(x-1,y-1)+2gi(x-1,y)+gi(x-1,y+1)]-[gi(x+1,y-1)+2gi(x+1,y)+gi(x+1,y+1)]+[gi(x-1,y-1)+2gi(x,y-1)+gi(x+1,y-1)]-[gi(x-1,y+1)+2gi(x,y+1)+gi(x+1,y+1)](2)由于算法需对每一个像素进行处理,且本身较简单以及计算重复性高,适合采用流水线并行的方式进行硬件实现。Sobel算法流程图如图1。3SystemGenerator与HLS实现硬件协处理器设计所需模块[5]:FromWorkspace、ToWorkspace、Gatewayin、Gatewayout、SystemGenerator模块、共享存储器、Subsystem模块、MCode、EDKProcessor以及ResourceEstimator模块等。由图2所示,在Simulink中搭建软硬件协同设计的最终模型,其中深色模块是Sobel算法子系统,里面封装了具体的实现。Sobel子系统分为4个模块,采用全流水线方式:分别是3行缓冲模块、X/Y方向梯度运算模块、绝对值相加和二值化模块。最后,选择HDLNetlist编译类型,生成HDL文件。基于HLS的设计主要分为:语言选择、接口设计、算法设计以及程序优化设计等内容。本文选择C++语言实现Sobel算法,硬件接口采用ap_fifo方式,对应总线AXI4-Stream。算法分为:3行缓冲器、窗口缓冲器、滤波函数等模块。在本例中,采用了循环优化Pipelining和Dependence指令,消除行缓存器的数据依赖性,使循环结构实现流水线处理。运用Inlining优化指令,解除了函数的不同层次问题,减少延迟和增加吞吐量。最后选择EDKPcore导出方式。除了生成硬件接口模块以外,还会自动生成驱动模板。4实验与测试结果分析实验选择ZynqXC7Z020-1CLG484器件进行仿真。器件内嵌双ARMCortexA9硬核,主频高达667MHz,主要用于软硬件协同领域。仿真测试的图像大小1080*1920,BMP格式。系统的仿真结果如图3所示。其中图3(a)为原图,图3(b)为处理参照图,图3(c)为SystemGenerator仿真结果图,图3(d)为HLS仿真结果图。时序仿真波形如图4、5所示。两种设计工具都提供了TestBench的自动生成,其中SystemGenerator采