前篇我介绍了在PC平台上用纯软件对一幅512x512的TIFF图片进行Edge Detection的执行结果,那么这篇里就让我们来看看在Xilinx的FPGA上,基于运行了uClinux的MicroBlaze的平台,进行这样一个边缘检测的效果如何:
首先在CoDeveloper里对应用的目标平台进行设置:
?这里的设置主要有两项(如图所示),左边的这个“Xilinx MicroBlaze FSL uClinux(VHDL)”叫做PSP(Platform Support Package),它的功能相当于一个脚本的功能,当其他的选项都设置好后,CoDeveloper就会自动执行相应的操作,当然,用户可以根据自己的应用程序制作自定义的PSP包。
右边那两个选项则表示会在当前工程目录下生成一个uclinux_filter的目录,所有跟该应用相关并和EDK的工程相配套的文件夹以及文件都会存放在该目录下,按图示设置好后选择OK保存。
?
转换进程
?
占用资源?
生成好的HDL代码是保存在当前的ImpulseC工程路径下的。为了将生成的这个硬件模块作为外设添加到EDK的工程中,必须按照符合EDK外设描述的文件组织形式才能被EDK正确识别。还要执行这两步:Export Generated Hardware (HDL) 和 Export Generated Software。?
?
?
执行上面两步后,ImpulseC将按照先前的图示设置将相应文件导出到指定路径(如下图所示):
?
从上图可以看出,一共有三个文件夹被导出。code文件夹里是包含的应用程序(待会儿将经过mg-gcc编译器编译生成能够被MicroBlaze执行的程序),pcores文件夹里包含的则是由先前的C代码转换而成的硬件模块的HDL文件,drivers文件夹里则是配合硬件模块的软件驱动,配合该驱动,就能够在OS或者standalone的模式下编写应用程序使硬件工作。?
?
在下篇中,我将继续介绍将ImpulseC生成的该硬件模块添加到EDK工程中的步骤。
文章评论(0条评论)
登录后参与讨论