Xilinx社区
首页 > Steve专栏 > Zynq PS/ PL第五篇:Adam Taylor MicroZed系列之25
Steve专栏
Zynq PS/ PL第五篇:Adam Taylor MicroZed系列之25
来源:  时间:2015-01-27  浏览量:1878

作者:Steve Leibson, 赛灵思战略营销与业务规划总监

我们先来了解一下上节中介绍的Zynq SoC PS/PL接口,我创建一个很简单的外设,使用的是DSP48E1的DSP逻辑片,依靠这个外设第一个寄存器内的控制字执行乘法,加法或减法。假设我们需要为一种工业控制系统在Zynq内执行更复杂的计算。通常,这些系统将通过热敏电阻、热电偶、压力传感器、铂电阻温度计( PRT)等会产生多个模拟输入(通过ADC)。

来自这些传感器的数据需要经过多次转换函数处理,将来自ADC的原始数据值转换成可进行下一步计算的数据。其中最好的实例是使用Zynq XADC,其中在XADCPS.h文件内包含了一些内函数/宏,可将原始XADC值转换成电压或温度。然而,这些转换是非常简单的。转换越复杂, Zynq处理的时间越长。如果Zynq SoC的可编程逻辑( PL)用于执行计算,则可大大加快计算速度。另外一个好处是,处理器将释放空间,可执行其他软件任务,这样在使用PL进行计算时,处理带宽有了显著改善。

 

转移函数越复杂,处理器用来计算结果的时间越长。举个例子,将大气压力(单位:毫巴)转换成海拔高度(单位:米),(参见我在Xcell Journal  Issue 80的博客文章 - “FPGA数学基础”)。以下的转换函数列出0-10毫巴压力的海拔高度(单位:米):

 

利用Zynq SoC的处理系统( PS)Zynq按照以下代码行,执行这个转换函数很简单,其中“结果”是浮点数;转换函数中定义的a, b,和c 是常数;且i为输入值:

 

在这个例子中我将在“for”循环语句中使用以上嵌套代码模拟输入值的步骤。代码通过STDOUT输出结果。因为我要计算执行此计算的时间,我将使用专用定时器来判断计算时间,在开始计算时打开计时器,在结束计算时关闭计时器:

虽然这段代码可能没有提供最准确的时间基准,但足以说明我们将在接下来几个博客中研究的主体。在基于Zynq  MicroZed板上运行以上代码,我在终端窗口中得出以下结果。注:由于我对STDOUT结果的格式进行了设定,可将这个输出结果按照逗号分隔变量 (CSV) 文件提取到Microsoft Excel:

 

对输出结果执行简单的分析表明,计算结果平均需要25 CPU_3x2x时钟周期。结果还不错。使用一个666 MHz的处理器时钟发现,这个计算占用76纳秒。我相信很多人发现ADC输出不是浮点数,它是一个固定点数。使用整数函数重写函数代码得出类似的平均时钟周期数。但是我认为在这个例子中,浮点数会更容易使用,避免解释定点数系统背后的主题。

确定一个基准时间,即Zynq PS需要多长时间执行中等复杂程度的转换函数,接下来我们可以看下当我们将这个计算卸载到设备的PL侧,计算同一函数所需要的时间。

 这里也可以看看亚当泰勒玩转MicroZed系列其他文章

Zynq PS/PL第三篇 ——Adam Taylor 有关MicroZed之23

Adam Taylor玩转MicroZed连载22:详解Zynq 的PS/PL(第二部分)  

Adam Taylor玩转MicroZed连载21:详解Zynq 的PS/PL(第一部分)

亚当泰勒玩转MicroZed连载20:Zynq三重定时器/计数器介绍之第四部分)

亚当泰勒玩转MicroZed连载19:Zynq三重定时器/计数器介绍之第三部分)

亚当泰勒玩转MicroZed连载18:Zynq三重定时器/计数器介绍之第二部分)

亚当泰勒玩转MicroZed连载17:Zynq三重定时器/计数器介绍之第一部分)

亚当泰勒玩转MicroZed连载16:Zynq SoC专用看门狗 

亚当泰勒玩转MicroZed连载15:实现Zynq SoC专用定时器 

亚当泰勒玩转MicroZed连载14:MicroZed定时器、时钟和看门狗 

亚当泰勒玩转MicroZed连载13:再谈MicroZed中断 

亚当泰勒玩转MicroZed连载12:MicroZed中断

亚当泰勒玩转MicroZed连载11:使用MicroZed按键实现输入

亚当泰勒玩转MicroZed连载10:驱动Zynq SoC GPIO

亚当泰勒玩转MicroZed连载9:遇见Zynq MIO

亚当泰勒玩转MicroZed连载8: MicroZed XADC软件 

亚当泰勒玩转MicroZed连载7: 让MicroZed跑起XADC

亚当泰勒玩转MicroZed连载6: MicroZed引导加载器 

亚当泰勒玩转MicroZed连载5:  玩转引导加载器 

亚当泰勒玩转MicroZed连载4: 在MicroZed上跑你的程序 

亚当泰勒玩转MicroZed连载3: 让Zynq和MicroZed说“hello world” 

亚当泰勒玩转MicroZed连载2: 设置软件场景 

用Vivado工具开发安富利MicroZed应用 

 

原文链接: http://forums.xilinx.com/t5/Xcell-Daily-Blog/The-Zynq-PS-PL-Part-Five-Adam-Taylor-s-MicroZed-Chronicles-Part/ba-p/431248

 © Copyright 2014 Xilinx Inc.
 如需转载,请注明出处

热点文章
精选视频
推荐资源

中国授权培训机构

北京 电话:(010)82757632
      (010) 62192881
深圳 电话:(0755)86186715
武汉 电话:(027)61389792
成都 电话:(028)80821007
南京 电话:(025)66022032
西安 电话:(029)82230498
邮箱:sales@e-elements.com

中国授权经销商

香港 电话:(852)22127848
北京 电话:(010)84148118
成都 电话:(028)86528262
上海 电话:(021)33678387
深圳 电话:(0755)26584925
武汉 电话:(027)87322806
邮箱:china@avent.com
深圳 电话:(0755)26743210
上海 电话:(021)51696680
北京 电话:(010)51726678
成都 电话:(028)85139576
武汉 电话:(027)87690155
邮箱:
xilinx_enquiry@comtech.com.cn

社区主办


《电子产品世界》杂志社

内容提供


    赛灵思公司

Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备12027778号-2 北京市公安局备案:1101082052