zynq怎么用ddr controller

zynq怎么用ddr controller,第1张

你好!
*** 作环境:ubuntu1004lts X64_64bit,PlanAhead/XPS141
Zynq-700 EPP CTT
MT41K128M16HA-15E datasheet
1、建立完PSbase system后,可以配置了,下面开始DDR3的设置,在XPS下 *** 作。
2、在Zynq的tab下点击“memeryinterface”出现PS7 DDR Configuration 窗口,
为ZEDboard板卡上使用DDR3作为外部存储器,所以“Enable DDR Controller”要选上。然后就是“DDR ControllerConfiguration”中的参数选择了:
Memory Type:ZEDboard使用的是DDR3
Memory Part:使用的DDR3芯片型号为MT41J128M16HA-15E,
3、在ZedBoard 的硬件用户手册上说使用了MT41K128M16HA-15E型号的DDR3颗粒,与原理图有所不同,其实Micron的这2种颗粒都是DDR3的,不过MT41J仅是15V的,而MT41K是可以使用135V电压的,当然也兼容15V。
Effective DRAM Bus With:ZedBoard使用了2片MT41J128M16HA-15E,单片总线宽度为16bit,故此处选择32bit。
4、Operating Freq(MHZ) :接口时钟,根据ZedBoard的硬件用户手册,为533MHz,实际填写的是533333313MHz,这是由于PLL分频不能正好分出整数值。该DDR3型号后面的-15E说明该芯片最大标准数率为1333Mbps,因此最大的接口频率就是667MHz。
Operating Temperature:DDR3器件的工作温度,默认就是0-85摄氏度,不用改了
在Traning/Board Detail栏中,将Write level 、Read gate、Read data 3个选项打钩,根据硬件用户手册的说明,这可以让DDR3性能处于最佳状态。

第 9 章 ZedBoard 入门
前面大家已经对 ZYNQ 架构以及相应的开发工具有一定的认识,接下来我们将带领大家来一起 体验 ZYNQ,体验软硬件协同设计的魅力。由于时间的关系,下面的一些实验(本章及后续章节的实验) 可能有不完善的地方,欢迎读者向我们反馈。 91 跑马灯 本实验将指导大家使用 Vivado 集成设计环境创建本书的第一个 Zynq 设计。这里,我们使用跑马灯 这个入门实验来向大家介绍 Vivado IDE 的 IP Integrator 环境,并在 Zedboard 上实现这个简单的 Zynq 嵌 入式系统。之后,我们将会使用 SDK 创建一个简单的软件应用程序,并下载到 Zynq 的 ARM 处理器中, 对在 PL 端实现的硬件进行控制。本实验分为三个小节来向大家进行介绍: 第一节我们将使用 Vivado IDE 创建一个工程。 在第一节的基础上,第二节我们将继续构建一个 Zynq 嵌入式处理系统,并将完成后的硬件导入 到 SDK 中进行软件设计。 最后一节我们将使用 SDK 编写 ARM 测试应用程序, 并下载到 ZedBoard 上进行调试。 实验环境:Windows 7 x64 *** 作系统, Vivado20134,SDK 20134
911 Vivado 工程创建
1) 双击桌面 Vivado 快捷方式 ,或者浏览 Start > All Programes > Xilinx Design Tools > Vivado
20134 > Vivado 20134 来启动 Vivado 2) 当 Vivado 启动后,可以看到图 9-1 的 Getting Started 页面。
图 9- 1 Vivado 开始界面
3) 选择 Create New Project 选项,图 9-2 所示的 New Project 向导将会打开,点击 Next。
图 9- 2 New Project 对话框 4) 在 Project Name 对话框中,输入 first_zynq_design 作为 Project name, 选择 C:/XUP/Zed 作为 Project location,确保 Create project subdirectory 被勾选上,如图 9-3,点击 Next。
图 9- 3 Project Name 对话框 5) 在 Project Type 对话框中,选择 RTL Project,确保 Do not specify sources at this time 选项没有 被勾选,如图 9-4,点击 Next。
图 9- 4 Project Type 对话框 6) 在 Add Source 对话框中, 选择 Verilog 作为目标语言,如果你对 VHDL 熟悉的话, 你也可以 选择 VHDL,如果这里你忘记了选择,在工程创建完成后,也可以在工程设置中选择你熟悉的 HDL 语言。如果你已经有了源文件,在这里就可以选择 Add file 或者 Add directory 进行添加, 由于我们没有任何的源文件, 所以这里我们直接点击 Next 即可,如图 9-5。
图 9- 5 添加源文件 7) 在 Add Existing IP 对话框中,点击 Next。 8) 在 Add Constraints 对话框中,点击 Next。 9) 在 Default Part 对话框中,在 Specify 框中选择 Boards 选项,在下面的 Board 列表中选择 ZedBoard Zynq Evaluation and Development Kit,点击 Next,如图 9-6。
图 9- 6 芯片选择 10) 在 New Project Summary 对话框中,点解 Finish 完成工程创建,至此,我们已经使用 Vivado 创建了一个 Zynq 设计的工程框架,图 9-7 为 Vivado 的工程界面,在第四章我们已经对该界面 进行过介绍,如果还不熟悉的读者再回到前面复习一下。下面我将使用 Flow Navigator 的 IP Integrator 功能完成第二节的嵌入式系统设计。
图 9- 7 Vivado 工程界面
912 在 Vivado 中创建 Zynq 嵌入式系统 这一节我们将创建一个简单的 Zynq 嵌入式系统,该系统使用 Zynq PL 部分实现一个通用 I/O 控制 器 (GPIO),控制器同 ZedBoard 上的 8 个 LED 相连接,并且通过 AXI 总线连接到 PS 端,这样我们就可 以通过将要在第三小节中实现的 ARM 应用程序来对 LED 进行控制。系统结构图如图 9-8 所示。

如何在苹果的ipad上执行android的应用程式

从现在技术来说,在苹果的ipad上无法通过任何方法执行android的应用程式apk档案
apk是安卓系统安装程式档案的一种格式,ipa是苹果安装档案的格式,apk和ipa只是用在不同的系统上。

如何在Zedboard上执行linux下的应用程式

可以参考如下方法以实现Linux执行windows软体: 1、安装linux版的vmware,然后通过vmware建立windows虚拟机器,通过vnc实现linux物理机和windows虚拟机器的共享,从而执行windows软体。 2、在Linux上安装Wine,

linux上的可执行程式是没有后缀名之分的。只要有可以执行许可权就可以执行。
执行也是非常简单的,只需要在终端敲出路径+使用者名称就OK
例如,需要执行的档名叫test
如果你就在可执行档案所在的路径下就可以使用这个
root~#/test
如果不在test坐在的路径可以使用绝对路径,加入你的test所在的路径是/home 下面就这样了
root~#/home/test
这样就可以执行了

1 从命令列执行:
从命令列或者 shell 提示符执行应用程式的一个常用方法是使用 / 命令。如果您在 Linux 中使用句号 (。) 和正斜杠 (/),就意味着告诉环境您想要以可执行档案执行该档案。例如,执行一个名为 myapp 的可执行档案,您可以使用 /myapp 命令。
2从桌面执行应用程式
在 Linux 中从桌面执行图形使用者介面 (GUI) 应用程式与在 Windows 中没多大区别。通常,您需要了解特定的桌面环境下应用程式在选单中是如何分组的。Linux 有足够的桌面应用程式,可用于各种任务。有一些应用程式是 Linux 本机固有的,还有另外一些应用程式可能是在一个常用执行时环境中使用 C# 开发的跨平台应用程式,比如,。NET Framework 应用程式。您会发现,使用一个 Wine 这样的虚拟环境,您甚至可以在 Linux 上执行您最喜爱的 Windows 应用程式。

参考文件::elecfans/pld/PLDkaifaban/306232
ZedBoard开发板上的Zynq是一个ARM PS(processing system, 双核A9 + 储存管理 + 外设)+ PL(programable Logic) 结构,如果不使用PL,zynq的开发和普通的ARM 开发一样。不同的是ARM PS是可配置,因而硬体资讯是不固定的。这也是zynq灵活性的一个表现。电子发烧友网编辑现为读者整合《玩转赛灵思Zedboard开发板》系列文章, 其中包括在ZedBoard开发板上的一些应用例项。其内容包括:
玩转赛灵思Zedboard开发板(1):ZedBoard详解
玩转赛灵思Zedboard开发板(2):ZedBoard最简单的测试工程
玩转赛灵思Zedboard开发板(3):基于Zynq PL的流水灯
玩转赛灵思Zedboard开发板(4):如何使用自带外设IP让ARM PS访问FPGA
玩转赛灵思Zedboard开发板(5):基于AXI Lite 汇流排的从装置IP设计
从本小节开始,讲着重介绍Zedboard上的嵌入式linux应用,包括使用SDK设计最简单的linux应用程式、linux交叉编译环境搭建、装置驱动编写等内容。本小节使用的linux系统是Digilent官方提供的OOB设计,它是Digilent官网给出的一个完整的、Zedboard可执行的linux 系统,包含了Zedboard上的几个重要的装置驱动如串列埠、USB、乙太网、OLED、HDMI等。当linux在Zedboard上执行起来后,Zedboard就是一个小型的嵌入式系统,使用SDK及Xilinx ARM Linux工具链编译生成的可执行档案可以在这个系统执行。
硬体平台:Digilent ZedBoard;开发环境:Windows XP 32 bit;软体: SDK 142。
一、获取Zedboard可执行的linux
Digilent官网给出Zedboard的可执行linux设计ZedBoard_OOB_Design包,可从:digilentinc/Data/Documents/Other/ZedBoard_OOB_Designzip获取,下载后解压,可以看到包的结构和内容:
boot_image目录:
-- systembit – 配置FPGA的bit档案
-- u-bootelf – 引导linux需要的Second-Stage boot loader
-- zynq_f lelf – 配置ARM PS系统的First-Stage boot loader(FSBL)
doc目录:
-- READMEtxt – 说明档案
hw目录:
-- EDK 141版本的XPS工程,用来生成硬体档案和bit档案
linux目录:
-- devicetree_ramdiskdts – 装置树原始码
-- config – Linux核心配置档案,用来生成zImage
sd_image目录:
-- BOOTBIN – 使用boot_images中的三个档案生成的Zynq配置档案
-- devicetree_ramdiskdtb – 编译后的装置树档案
-- ramdisk8Mimagegz – 编译后的档案系统
-- README – 介绍如何执行OOB设计的说明文件
-- zImage – 编译后的核心
sw目录:
--硬体配置
--FSBL原始码
其中sd_image目录中包含了ZedBoard上能够执行linux的所有档案。将SD卡格式化为Fat32,把sd_image目录档案拷贝到SD 卡根目录下;然后将JP7~JP11设定为SD卡启动模式,将JP2短路,JP3断开,这样可以下一步我们可以把U盘作为USB 从装置挂载到Zedboard上。

图 Zedboard的连线和短路块设定
上电后,等待ARM PS的配置、FPGA的配置(蓝色LED DONE 亮起),之后开始引导Linux系统了。可以从超级终端上看到一系列的引导资讯:
1 U-Boot 20120401-00297-gc319bf9-dirty (Sep 13 2012 - 09:30:49)
2
3 DRAM: 512 MiB
4 WARNING: Caches not enabled
5 MMC: SDHCI: 0
6 Using default environment

直接在命令列输入该档名字;在档案之前加上路径即可; 比如当下目录下的test 执行/test ps:点斜杠表示当前目录

如何在CDH 5上执行Spark应用程式

几个基本概念:
(1)job:包含多个task组成的平行计算,往往由action催生。
(2)stage:job的排程单位。
(3)task:被送到某个executor上的工作单元。
(4)taskSet:一组关联的,相互之间没有shuffle依赖关系的任务组成的任务集。
一个应用程式由一个driver program和多个job构成。一个job由多个stage组成。一个stage由多个没有shuffle关系的task组成。

spark应用程式的执行架构:

(1)简单的说:
由driver向丛集申请资源,丛集分配资源,启动executor。driver将spark应用程式的程式码和档案传送给executor。executor上执行task,执行完之后将结果返回给driver或者写入外界。
(2)复杂点说:
提交应用程式,构建sparkContext,构建DAG图,提交给scheduler进行解析,解析成一个个stage,提交给丛集,由丛集工作管理员进行排程,丛集启动spark executor。driver把程式码和档案传给executor。executor进行各种运算完成task任务。driver上的block tracker记录executor在各个节点上产生的资料块。task执行完之后,将资料写入HDFS上或者其他型别资料库里。
(3)全面点说:
spark应用程式进行各种transformation的计算,最后通过action触发job。提交之后首先通过sparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler进行解析,解析时是以shuffle为边界,反向解析,构建stage,stage之间也有依赖关系。这个过程就是对DAG图进行解析划分stage,并且计算出各个stage之间的依赖关系。然后将一个个TaskSet提交给底层排程器,在spark中是提交给taskScheduler处理,生成TaskSet manager,最后提交给executor进行计算,executor多执行绪计算,计算完反馈给TaskSetmanager,再反馈给taskScheduler,然后再反馈回DAGScheduler。全部执行完之后写入资料。

本文主要记录在 CDH5 丛集环境上如何建立一个 Scala 的 maven 工程并且编写、编译和执行一个简单的 Spark 程式
:tuicool/articles/Ajuyqan

:iteblog/archives/1073
上面有教程、程式码演示,请参考了。

建立 maven 工程
使用下面命令建立一个普通的 maven 工程:
bash
$ mvn archetype:generate -DgroupId=clouderasparkwordcount -DartifactId=sparkwordcount -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
将 sparkwordcount 目录重新命名为simplesparkapp,然后,在 simplesparkapp 目录下新增 scala 原始档目录:
bash
$ mkdir -p sparkwordcount/src/main/scalacloudera/sparkwordcount
修改 pomxml 新增 scala 和 spark 依赖:

 Zynq系列是赛灵思公司(Xilinx)推出的行业第一个可扩展处理平台,旨在为视频监视、汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平。该系列四款新型器件得到了工具和IP 提供商生态系统的支持,将完整的 ARM® Cortex™-A9 MPCore 处理器片上系统 (SoC) 与 28nm 低功耗可编程逻辑紧密集成在一起,可以帮助系统架构师和嵌入式软件开发人员扩展、定制、优化系统,并实现系统级的差异化。
实际上,Zynq就是两大功能块:双核Arm的SoC和FPGA。根据Xilinx提供的手册,PS: 处理系统 (Processing System) , 就是与FPGA无关的ARM的SOC的部分。PL: 可编程逻辑 (Progarmmable Logic), 就是FPGA部分。这有点像xilinx以前推出的powerPC+FPGA平台。下图为官方文档中介绍的ZYNQ内部结构。

从图中可以看到,ZYNQ的绝大多数外设都是PL逻辑部分相连,比如说GPIO,IIS,XADC等等,所以如果我们要使用这些外设的话必须在PL逻辑部分对其进行配置。OK,下面我们就以一个简单的例子来看看如何使用PL和PS进行交互。在下面的例子中,我们通过设置8个开关来对应点亮8个LED灯。
首先打开XPS,由于XILINX内部已经帮我们做好了GPIO部分的IP核,所以我们只需要直接使用即可(如果要用自己的ip核,则可以使用ISE先把IP核写好再导入进来)。新建立一个工程,选择“Create New Project Using Base System Builder”,

填好项目工程文件的路径,其它不需要更改,直接点OK
由于我们用的就是ZEDBOARD,所以在这里我们选择的是ZYNQ开发板,直接点击NEXT,

该界面表示当前工程里已经默认把GPIO和4位的led包含进去了,由于我们这里和光放的ZYNQ开发板还有点差别,所以就不需要这些默认设置了,直接选中点击REMOVE,最后点击FINISH完成工程的建立。

双击图中所示的AXI General Purpose IO,添加该IP核到ZYNQ中,注意在Width中选择8,表示当前的GPIO的宽度为8,当然如果你需要更宽也可以进行其它设置,但最多不能超过32 位。我们这里的SW开关和LED都为8个,所以我们把宽度设置为8一路点击OK按钮,把该IP核加入到工程中。

由于我们有SW开关和LED两个外设并且一个为输入一个为输出,所以还需要按照同样的方法再添加一个GPIO核。完成添加后看右边的BUS INTERFACES,可以看到GPIO 0和GPIO1均添加到了系统中。

点击PORT栏,进入到端口设置部分,在这里我们把一个GPIO设置为输出,它与8个LED灯相连,另外一个设置为输入,它与8个SW开关相连。完成设置后的结果如下图所示

下面就是编辑约束文件,给定义的端口分配管脚了,

双击project栏中的UCF,打开约束编辑(在这里有个问题,难道ISE142中没有专门的约束编辑器吗?),输入以下内容

上面表示8个LED等,下面表示8个SW按键,注意,在DS中,8个SW按键是连接到VCC_ADJ上的,所以我们这里使用LVCMOS18电平标准。完成这些设置后,依次点击Generate BitStream和Export Design按钮,完成流配置文件的生成和导出到SDK中。

上面就是PL部分的配置了,下面我们就根据PL的配置来进行PS部分的编程。打开SDK工具,新建工程(具体如何新建可以参考ZedBoard_CTT_v141文档,该文档在ZEDBOARDorg网站上有下载)后更改其中的main函数为以下形式
点击编译,成功生成ELF文件后即可进行下载,当然在下载ELF文件前还要先把FPGA的配置下载进去。
总结一下,zynq虽然是一个新的东西,但它的基本开发流程和开发原理和xilinx以往的产品基本一样,ISE,XPS,SDK等等的使用方法也基本相同,所不同的是,ZYNQ系列中包含了两个ARM核,极大的提高了系统的性能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10678539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存