针对jpeg codec的FPGA测试总结

 

一、简介

最近一个多月,一直在做一件事情,这就是在FPGA上对Jpeg codec的芯片设计进行全方面的验证。至于什么是FPGA验证,可查看

http://www.chituwang.com/Article/IT/detail.aspx?articleid=18093

Jpeg codec是我们团队所设计的一款手机多媒体芯片的其中一个功能。它包括Jpeg encoderJpeg decoder以及Jpeg decoderencoder的联合使用。用于手机的拍照,浏览图片以及播放Motion jpeg视频流。

下面,我将会对FPGA验证的条件、环境及过程做以描述。

二、FPGA验证的条件及环境描述

1、软件环境

根据功能,我们将Jpeg codecFPGA验证分为三大部分:jpeg encoderjpeg decoderjpeg de-encoder

这里需要说明的是jpeg de-encoder,它是先进行jpeg图片的解码,然后对解析出来的YUV数据进行编码。

在上述三大部分的每个部分中,我们根据测试源的性质,划分为VIP测试源和普通测试源。按照硬件的实际存储模式,分为一维存储(后面称为1d)和二维存储(后面称为2d),而2d中按照二维pitch的大小又分为512bits1024bits2048bits

根据上面的描述,所有的测试集合总结为:

Jpeg encoder:

encoder_vip_1d

encoder_vip_2d_512

encoder_vip_2d_1024

encoder_vip_2d_2048

encoder_normal_1d

encoder_normal_2d_512

encoder_normal_2d_1024

encoder_normal_2d_2048

Jpeg decoder:

decoder_vip_1d

decoder_vip_2d_512

decoder_vip_2d_1024

decoder_vip_2d_2048

decoder_normal_1d

decoder_normal_2d_512

decoder_normal_2d_1024

decoder_normal_2d_2048

Jpeg de-encoder:

de-encoder_vip_1d

de-encoder_vip_2d_512

de-encoder_vip_2d_1024

de-encoder_vip_2d_2048

de-encoder_normal_1d

de-encoder_normal_2d_512

de-encoder_normal_2d_1024

de-encoder_normal_2d_2048

 

2、硬件环境

由于FPGA板卡非常昂贵,我们部门只有两块可以使用,而其中一块用于视频码流的FPGA验证,也就是说jpegFPGA验证只有一块FPGA板卡可以使用。

另外,通过JTAG来输送码流,由于某些原因,其Uart口非常不稳定,经常会出现Uart口挂死的现象,导致批处理过程中死掉。

 

三、FPGA验证过程描述

所有的FPGA验证都是以批处理的形式进行的。在这三大部分中,某些集合的批处理是可以连在一起进行。于是,如果硬件环境不出问题的话,FPGA验证就可以夜以继日地进行。但在实际验证过程中,硬件环境经常出现问题,导致FPGA验证进行比较缓慢。

经过将近一个月的努力,整个JpegFPGA验证总算是划上了圆满的句号。

 

四、FPGA验证总结

通过这段时间的FPGA验证,作如下总结。

1、  码流及config测试集合

FPGA验证之前,这个集合应该尽可能地完善。这种完善包括码流的齐全,比如各种color space,图像大小等。也包括config的齐全,必须能够覆盖尽可能多的芯片测试点。这些集合必须在验证开始之前就确定下来;在验证过程中尽可能不要做修改。

2、  验证日志

验证日志是比较重要的。在日志中,需要记录在哪个时间段,使用哪个bit文件,验证了哪个集合,以及验证结果。通过这些信息,就可以评估整个FPGA验证的工作量和进度,以方便后期工作的安排和FPGA验证工作的按时完成。

3、  验证环境

磨刀不误砍柴工。在验证开始之前,应该尽可能地让验证环境稳定,简单易用。这将对整个验证工作起着举足轻重的作用。

4、  验证集合的安排

在验证过程中,有些集合是不能放在一起验证的。所以得根据当前验证的情况,决定剩下的集合如何安排,应该动态地调整集合验证的次序,以保证晚上不会出现空闲期。

 

你可能感兴趣的:(工作,测试,存储,手机,Codec)