|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 vvzvv 于 2014-7-19 09:58 编辑
非常抱歉,直到今天才上传比赛结果,这个月以来个人的一点点剩余价值都被资本家剥削殆尽了!
言归正传,附件是比赛结果的视频,首先是代码综合后的框图展示,接着是PL逻辑代码(包含CRC校验代码,AXI从设备,定时器等),然后是CRC32校验的Modelsim仿真,然后演示了将system.bit文件烧写到板子上的过程(由于众所周知的原因,我用Zedboard代替了,呵呵),最后就是使PS程序在板子上运行,PS会执行几个操作:
1. 生成待校验的数组(0-127)
2. 生成CRC32逆序查找表
3. 使用移位方法对测试数组进行CRC校验,使用AXI定时器计算所用时间
4. 使用正序查找表方法对测试数组进行CRC校验,使用AXI定时器计算所用时间
5. 使用逆序查找表法对测试数组进行CRC校验,使用AXI定时器计算所用时间
6. 通过AXI Lite将测试数组传递给PL的CRC32校验模块,CRC32校验模块实时计算校验,校验结束后将状态标记为OK,PS使用AXI定时器计算所用时间
以上的操作结果为:
1. PS使用移位方法花费时间: 49234500 nS
2. PS使用正序查找表方法花费时间: 47760460 nS
3. PS使用逆序查找表法花费时间: 4582830ns
4.PS将数组传递给PL并计算花费时间: 9359250ns
上面的结果彻底把我震惊了!PL居然要花费PS计算时间的两倍?!怎么会呢?稍微想想就明白了,我通过100M的AXI Lite传输,每次传输32位,这32bit中还有8bit是用于表示状态命令的,这能不慢嘛,明明是大海,我却通过小水管给它输水?对PL太不公平了。而且实际情况中不会有人把接收到的数据从上层软件再传回底层硬件计算CRC校验吧?一般都是硬件完成CRC校验之后把数据传给上层软件。退一万步说,即使需要计算大量数据的CRC校验,那也应该用DMA来传输,而不是AXI。于是我让PL自己生成0-127的数组,从CRC校验开始前清除定时器,给PL发送指令,PL的CRC模块开始,PS等待PL的状态变为“结束”,记下校验结果,结果如下:
PL对存储在PL中的128字节数组校验所花费时间为1920240ns
这个时间是PS时间的40%,效率惊人啊,这还是在使用100MHZ时钟的情况下,而PS的运行时钟高达667MHz,孰优孰劣一看便知,废话不多说,直接上视频
(前面的那一栏是用来测试定时器的,分别测试1个PS循环,10000个循环,1000000个循环所用的时间)
VID_20140620_234401.part01.rar
(15 MB, 下载次数: 2 )
VID_20140620_234401.part02.rar
(15 MB, 下载次数: 1 )
VID_20140620_234401.part03.rar
(15 MB, 下载次数: 1 )
VID_20140620_234401.part04.rar
(15 MB, 下载次数: 4 )
VID_20140620_234401.part05.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part06.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part07.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part08.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part09.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part10.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part11.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part12.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part13.rar
(15 MB, 下载次数: 0 )
VID_20140620_234401.part14.rar
(15 MB, 下载次数: 0 )
http://v.youku.com/v_show/id_XNzQyNTA5OTU2.html |
|