原创 ImpulseC介绍(二)

2009-5-7 16:12 2410 9 9 分类: FPGA/CPLD

前篇我介绍了在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保存。

Generate HDL
然后选择Project|Generate HDL,执行完这一步后,ImpulseC会将img_hw.c按照先前的设置生成HDL代码(这里是VHDL),IDE控制台同时会显示执行进程,从中可以看到img_hw.c文件中描述的Process转换成硬件所消耗的硬件资源(一共有pack, prep_run, filter_run, unpack四个Process)。?

?

点击看大图

转换进程

?

占用资源

占用资源?

生成好的HDL代码是保存在当前的ImpulseC工程路径下的。为了将生成的这个硬件模块作为外设添加到EDK的工程中,必须按照符合EDK外设描述的文件组织形式才能被EDK正确识别。还要执行这两步:Export Generated Hardware (HDL) 和 Export Generated Software。?

?

点击看大图
?
点击看大图

?

执行上面两步后,ImpulseC将按照先前的图示设置将相应文件导出到指定路径(如下图所示):

?

file structure

从上图可以看出,一共有三个文件夹被导出。code文件夹里是包含的应用程序(待会儿将经过mg-gcc编译器编译生成能够被MicroBlaze执行的程序),pcores文件夹里包含的则是由先前的C代码转换而成的硬件模块的HDL文件,drivers文件夹里则是配合硬件模块的软件驱动,配合该驱动,就能够在OS或者standalone的模式下编写应用程序使硬件工作。?

?

在下篇中,我将继续介绍将ImpulseC生成的该硬件模块添加到EDK工程中的步骤。




PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /3 下一条