《基于XilinxFPGA的多核嵌入式系统设计基础》课件第6章.pptVIP

《基于XilinxFPGA的多核嵌入式系统设计基础》课件第6章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

(4)在DeviceConfiguration中点击下载比特流,配置FPGA。

(5)修改shm.c文件中的trycount值(该值为一幅8K大小图片进行循环处理的次数),然后重新编译、下载并配置FPGA,统计每次处理完成的时间,填写表6.6.1。表6.6.1多核处理时间的统计本章在基于XilinxFPGA的多核嵌入式硬件系统上进行了简单图像处理算法的多核移植,对算法在单核与多核硬件系统上的实现进行了设计和测试。6.7本章小结6.4.1在双核通信系统上添加软件应用

在这里我们不再利用Software→AddSoftwareApplicationProject为MB0和MB1添加新的工程应用,而是直接修改原工程下的shm.c文件。6.4.2重要宏定义、数据结构设计

在DCT变换中,同样需要对诸多地址进行相应的内存操作,预设如下的宏定义。6.4.3算法设计、编译与部署

(1)构造相关辅助函数。和RGB2YCrCb算法类似,先构造了两类函数:shm_write_dct、shm_read_dct以及shm_clear_core1_to_core0、shm_dump_core1_to_core0,分别用于读写内存区域中的DCT处理结果,以及清空和打印6块存储区域中的数据信息。函数设计与之前RGB2YCrCb中的类似。

其中shm_write_dct函数如图6.4.1所示,其他函数读者可以自行设计,也可以参考RGB2YCrCb中的设计。图6.4.1shm_write_dct算法设计(2)构造DCT核心算法。DCT算法的核心部分如图6.4.2所示。

从DCT函数的参数来看,pixels[8][8]与主函数调用dct函数时的参数是一致的,分别为YMatrix[8][8]、CrMatrix[8][8]、CbMatrix[8][8]。其中weights[k]为权重表,它在mb-weights.h头文件中定义,如图6.4.3所示。图6.4.2DCT核心算法图6.4.3mb-weights.h头文件6.4.4下载比特流,配置FPGA

下载比特流,配置FPGA的具体步骤如下:

(1)正确连接好Virtex2Pro开发板,并给板子上电。

(2)打开一个超级终端或是Putty工具,注意设置匹配的波特率、奇偶校验位以及流控制位等。

(3)对于需要运行的应用程序,右键单击选中以初始化内存块。

(4)在DeviceConfiguration中点击,配置FPGA。

(5)终端中显示CPU1做DCT处理后的打印结果(未写入共享之前),如图6.4.4所示。图6.4.4CPU1写入共享区域中的DCT处理数据图6.4.5CPU0从共享区域中读出的DCT处理数据6.5.1解析算法执行的流程

算法在单核上的执行流程是一个串行过程,描述如下:

(1)算法按照宏块顺序往下处理,先处理第一个宏块。

(2)对第一个宏块的前4个Y分量进行RGB2YCrCb处理,完成后对YCrCb结果做DCT(YMatrix,color)变换。

(3)对第一个宏块的Cr分量进行RGB2YCrCb处理,完成后对YCrCb结果做DCT(CrMatrix,color)变换。

6.5单核执行图像处理算法以及时间测量(4)对第一个宏块的Cb分量进行RGB2YCrCb处理,完成后对YCrCb结果做DCT(CbMatrix,color)变换。

(5)返回到步骤(1)进行第二个宏块的处理。6.5.2修改shm.c文件

利用单核系统进行RGB2YCrCb与DCT变换处理时,需要将我们介绍的这两个算法进行整合和移植。图6.5.1单核上执行的C程序代码(1)图6.5.1单核上执行的C程序代码(2)图6.5.1单核上执行的C程序代码(3)有兴趣的读者也可以不采用条件编译的方案,重新添加一个软件应用项目或者重新创建一个单核系统。如果是后者的话,建议读者考虑将共享内存换成外部内存DDR,内存控制器换成MPMC试试。本书仅为测试单、双核效率的简单对比,设计之初并未考虑图像处理对内存大小的要求,事实上,从器件表(如图6.5.2所示)可以看出Virtex-IIPro上32bit总线机制中的xps_bram_if_cntlr的大小最大只能设置为64K。实验中所用到的图像大小也不过是一张8K的BMP格式图片。图6.5.2各器件上针对BRAMSize的详细设置表6.5.3下载比特流,配置FPGA

下载比特流,配置FPGA的具体步骤如下:

(1)正确连接好Vir

文档评论(0)

酱酱 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档