Xilinx Zynq-7000嵌入式系统设计与实现 学习教程(1)

学习资料下载地址:http://www.edawiki.com

开篇体会;

  Xilinx的ZYNQ系列FPGA是二种看上去对立面的思想的融合,ARM处理器的串行执行+FPGA的并行执行,着力于解决大数据处理、人工智能等复杂高性能算法处理。

新的设计工具的推出,vivado HLS,更加注重嵌入式系统的系统级建模,通过HLS工具,用户只需要编写C语言代码,就可以让工具自动转换和生成HDL代码

随着异构架构和片上系统技术的不断发展,协同设计、协同仿真和协同调试将成为未来嵌入式系统开发者必备的素质。所谓的协同,就是要求设计者同时掌握软件和硬件知识,这与传统上软件和硬件分离的设计方法有着本质的区别。

由于半导体技术的不断发展,使得电子系统从传统的PCB板级进化到芯片级,对于嵌入式系统的小型化、低功耗和可靠性的改善都提供了强大的保证。

①全可编程片上系统基础知识

  以传统的现场可编程门阵列结构(Field Programmable Gate Array,FPGA)为基础,将专用的中央处理器单元(Central Processing Uint,CPU)和可编程逻辑资源集成在单个芯片中,产生了一种全新的设计平台,我们称之为全可编程片上系统(ALL Programmable System-on-chip,APSoC).

SoC的架构如下:(固化、灵活性差、专用性强、设计复杂)

APSoC的架构呢??(由词的全拼意淫,灵活性强,既有固化的又有可灵活控制的。。。)

SoC、CPU、MCU的比较?

  SoC:可以集成多个功能强大的处理器内核、可以集成存储块、IO资源及其他外设、可以集成GPU\DSP\音频视频解码器等、可以运行不同的操作系统、用于高级应用如智能手机\平板电脑等

  CPU:单个处理器核、需要外部额外的存储器核外设支持、应用绝大多数场合

  MCU:典型的只有一个处理器内核、内部包含了存储器、IO及其他外设、用于工业控制领域如嵌入式应用

APSoC的诞生背景:

  在全可编程平台设计阶段,设计已经从传统上以硬件描述语言HDL为中心的硬件逻辑设计,转换到以C语言为代表的软件为中心的功能描述,所以就形成了以C语言描述嵌入式系统结构的功能,而用HDL语言描述硬件的具体实现的设计方法,这也是基于全可编程SoC和传统上基于SoC器件实现嵌入式系统设计的最大区别,即真正实现了软件和硬件的协同设计。

最大优点可实现硬件加速:

  设计者可以根据需求在硬件实现和软件实现之间进行权衡,使所设计的嵌入式系统满足最好的性价比要求,例如,在实现一个嵌入式系统设计时,当使用软件实现算法成为整个系统性能的瓶颈时,设计人员可以选在在全可编程SoC内使用硬件逻辑定制协处理器引擎来高效的实现该算法,这个使用硬件逻辑实现的协处理器,可以通过AMBA接口与全可编程SoC内的ARM Cortex A9嵌入式处理器连接,此外,通过XilinX所提供的最新高级综合工具HLS,设计者很容易将软件瓶颈转换为由硬件处理。

②全可编程片上系统中的处理器类型

  根据不同的需求,全可编程片上系统的处理器可以分为软核和硬核处理器。

  硬核处理器:早期Xilinx将IBM公司的PowerPC硬核集成在V5系列的FPGA中,后来将ARM公司的双核Cortex-A9硬核集成在ZYNQ 7000系列的SoC芯片中

  软核处理器:对于一些对处理器性能要求不是很高的需求,没有必要在硅片上专门划分一定的区域来实现专用的处理器,而是通过使用FPGA芯片内所提供的设计资源,包括LUT\bram、触发器和互联资源,实现一个处理器的功能,这就是软核处理器,对于软核处理器,他通过HDL语言或者网表进行描述 ,通过通过综合后才能被使用。

③ZYNQ-7000 SoC功能与结构

  

       

在该全可编程SoC中,双核ARM-Cortex-A9多核CPU是PS的心脏,它包含片上存储器、外部存储器接口和丰富功能的外设。

与传统的FPGA和SoC相比,ZYNQ7000不但提供了FPGA灵活性和可扩展性,也提供了专用集成电路的相关性能、功耗和易用性。

ZYNQ 7000的结构便于将定制逻辑和软件分别映射到PL和PS中,这样就可实现独一无二和差异化的系统功能。

与传统的FPGA方法不同的是,ZYNQ 7000 SoC总是最先启动PS内的处理器,这样允许PS上运行的基于软件程序用于启动系统并且配置PL,这样可以将配置PL的国政设置成启动过程的一部分或者在将来的某个时间再单独的配置PL,此外可以实现PL的完全重配置或者使用部分可重配置(PR,Partional Reconfihuration,允许动态的重新配置PL中的某一个部分,这样能够对设计进行动态的修改)。

-----------------------------------------------------------神圣的分割线-------------------------------------------------------------------------------------------------------------------------------------------------------------

  

-----------------------------------------------------------休息一下,后续PS构成、PL构成、互联结构、供电引脚、MIO到EMIO的链接等内容-------------------------------------------------------------------------------------------------------------------------------------------------------------

  

原文地址:https://www.cnblogs.com/mains-mandala/p/10251788.html

时间: 2024-09-28 22:49:30

Xilinx Zynq-7000嵌入式系统设计与实现 学习教程(1)的相关文章

【嵌入式4412开发板学习教程】Uboot教程之uboot基础概念和框架

[4412开发板教程]Uboot教程之uboot基础概念和框架 正在学习uboot,教程讲解的很详细,先上个笔记,视频上传到网盘后再补上...... 知识点: 1.操作系统分层的概念 Windows:bios→内核模式→用户模式→用户程序 linux:bootloader→内核→文件系统→用户程序 2.bootboader种类介绍 U-boot是最通用的bootboader.(210,4412等等) vivi 针对三星的ARM来定制2440上有用到 3.4412休眠问题 它可以直接跳过uboot

基于MicroBlaze 的嵌入式系统设计

reference: http://xilinx.eetrend.com/d6-xilinx/article/2013-03/3863.html 摘 要:当今时代,嵌入式系统已经无所不在,与人们的日常生活息息相关.嵌入式系统以微处理器为核心,以计算机技术为基础,其主要特征是实时性强.据统计,目前世界上微处理器每年生产总量的95 %以上都是面向嵌入式系统应用,围绕Xilinx 公司的MicroBlaze 微处理器,对其体系结构.设计流程和相关开发工具一一做出介绍,并且通过一个简单的实例来说明以Mi

ZYNQ 7000平台UDP数据包(1字节或2字节)校验和Checksum错误0xFFFF解决方案(linux+vxworks6.9平台)

在赛灵思ZYNQ 7000平台,使用UDP方式发送1字节或者2字节数据时,校验和为错误值0xffff,接收机无法正常接收ZYNQ7000平台发送的数据,本人已经找到该问题的解决方案,有该问题的朋友可以通过邮箱[email protected]与我联系,联系时请详细描述你的环境,针对该咨询提供的问题解决方案会收取一定的费用,费用不会太高,现在是知识付费的年代,希望各位理解,同时如果能够解决您的问题,也是为你节约了开支.我会及时回复邮件的.具体事项可以邮件沟通[email protected].

嵌入式系统设计

嵌入式系统(Embedded system),是一种"嵌入机械或电气系统内部.具有专属功能的计算机系统",通常要求实时计算性能.被嵌入的系统通常是包含硬件和机械部件的完整设备.相反,通用计算机如个人计算机则设计灵活,以满足广大终端用户的需求.现在常见的很多设备都采用嵌入式系统控制. 现代嵌入式系统通常是基于单片机(如含集成内存和/或外设接口的中央处理单元)的:但普通微处理器(使用外部存储芯片和外设接口电路)也很常见,特别是在较复杂的系统中.通用型处理器.专门进行某类计算的处理器.为手持

Zynq 7000从零开始之一 -- HelloWord

使用myir的z-turn开发板,做一个从uart打印hello world的实验,只用PS,不用PL部分,程序从SD卡启动,跑在PS的内部RAM. zynq 7000的PS虽然也是CPU,但是开发方法不像普通的CPU只需要一个SDK就可以了,它还需要vivado硬件设计软件. 所以ZYNQ 7000的PS开发需要两个工具,一个是vivado--    另一个是SDK--  . 1. 打开vivado软件-->Create New Project,工程名和目录: 2. next->选RTL P

Zynq 7000从零开始之二 -- 内存测试程序

由于所有的APP都是在DDR中运行的,所以先让DDR工作起来是后续实验的基础.使用的硬件是z-turn开发板. 本文主要讲怎样创建一个内存测试程序,测试DDR,程序还是运行在内部RAM;FPGA涉及的内容有怎样配置DDR参数,及怎样保存和导入硬件参数;软件方面会涉及BSP修改及           BOOT.bin的生成.关于Vivado的具体操作请参考--"Zynq 7000从零开始之一 -- helloworld". 1. 用vivado搭好硬件模型. 在vivado的block

Linux学习教程推荐下载

RedhatLinux系统管理 http://down.51cto.com/data/1328166 The.Complete.FreeBSD.3rd.Edition http://down.51cto.com/data/1328165 UNIX和Linux权威教程(第三版) http://down.51cto.com/data/1328164 linux系统常用基本命令 http://down.51cto.com/data/1328163 红帽企业Linux虚拟化管理 http://down.

嵌入式Linux驱动开发实战教程

嵌入式Linux驱动开发实战教程(内核驱动.看门狗技术.触摸屏.视频采集系统) http://www.ibeifeng.com/goods-475.html 咨询QQ2110053820 课程讲师:韩老师 课程分类:Linux 适合人群:高级 课时数量:109课时 更新程度:完成 用到技术:嵌入式 Linux 涉及项目:驱动开发.看门狗技术.触摸屏.视频采集 课程简介:    嵌入式软件开发无疑是当今最热门的行业,嵌入式软件工程师的薪资比普通的软件工 程师的薪资平均高50%以上.随着智能控制.物

java学习教程之代码块

学编程吧java学习教程之代码块发布了,欢迎通过xuebiancheng8.com来访问 java中的代码块包括下面几种: 1.普通代码块 2.构造代码块 3.静态代码块 1.普通代码块很简单看下面这个例子: public class Test{ public static void main(String args[]){ { //此处就是普通代码块,普通代码块中的代码按顺序执行 System.out.println("hello"); } } } 2.构造代码块 public cl