Xilinx All Programmable Zynq-7000 SoC设计指南

出版社:何宾 清华大学出版社 (2013-05出版)
出版日期:2013-5
ISBN:9787302322221
作者:何宾
页数:565页

作者简介

《EDA工程技术丛书:Xilinx All Programmable Zynq-7000 SoC设计指南》系统论述了Xilinx ALL Programmable Zynq-7000 SoC的体系结构与设计方法,全书共23章,分为3篇。Zynq-7000基础理论篇介绍了可编程SoC设计和AMBA协议规范;Zynq-7000体系结构篇介绍了Zynq-7000应用处理单元、可编程逻辑资源、系统互连结构、系统公共资源特性及功能、Zynq调试和测试系统、Zynq平台的启动和配置、Zynq平台主要外设模块、Zynq平台描述规范和高级综合工具HLS;Zynq-7000设计实践篇介绍了Zynq基本处理器系统地建立和运行、添加AXI IP到设计、基于定制IP实现简单嵌入式系统设计、基于定制IP实现复杂嵌入式系统设计、软件盒硬件协同调试系统、Zynq平台配置和启动的实现、基于Zynq HP从端口的数据传输实现、基于Zynq ACP从端口的数据传输实现、XADC在Zynq平台上的应用、Ubuntu操作系统在Zynq平台上的实现、µC/OS-III操作系统在Zynq平台上的实现和HLS在Zynq嵌入式系统设计中的应用。

书籍目录

第1篇Zynq—7000体系结构 第1章可编程SoC设计导论19 1.1可编程SoC系统设计基础19 1.1.1软核及硬核处理器19 1.1.2可编程SoC技术的发展20 1.1.3可编程SoC系统技术特点21 1.1.4可编程SoC设计流程21 1.1.5可编程SoC开发工具23 1.2XilinxZynq平台导论28 1.2.1XilinxZynq平台功能28 1.2.2处理系统PS特性30 1.2.3可编程逻辑PL特性35 1.2.4互联特性及描述37 1.2.5Zynq信号、接口和引脚39 1.3Zynq平台设计方法学46 1.3.1使用PL实现软件算法的优势46 1.3.2设计PL加速器47 1.3.3PL加速限制47 1.3.4降低功耗48 1.3.5实时减负49 1.3.6可重配置计算49 第2章AMBA协议规范50 2.1AMBA规范导论50 2.2AMBAAPB规范51 2.2.1AMBAAPB写传输51 2.2.2AMBAAPB读传输52 2.2.3AMBAAPB错误响应53 2.2.4操作状态54 2.2.5AMBA3APB信号54 2.3AMBAAHB规范56 2.3.1AMBAAHB结构56 2.3.2AMBAAHB操作58 2.3.3AMBAAHB传输类型60 2.3.4AMBAAHB猝发操作61 2.3.5AMBAAHB传输控制信号64 2.3.6AMBAAHB地址译码66 2.3.7AMBAAHB从设备传输响应67 2.3.8AMBAAHB数据总线70 2.3.9AMNAAHB传输仲裁71 2.3.10AMBAAHB分割传输76 2.3.11AMBAAHB复位79 2.3.12关于AHB数据总线的位宽79 2.3.13AMBAAHB接口设备80 2.4AMBAAXI4规范11 2.4.1AMBAAXI4概述错误!未定义书签。 2.4.2AMBAAXI4功能11 2.4.3AMBAAXI4互联结构20 2.4.4AXI4—Lite功能22 2.4.5AXI4—Stream功能23 第2篇Zynq—7000体系结构 第3章Zynq—7000应用处理单元27 3.1应用处理单元27 3.1.1基本功能27 3.1.2系统级视图29 3.2Cortex—A9处理器30 3.2.1中央处理器30 3.2.2L1高速缓存33 3.2.3存储器管理单元34 3.2.4接口37 3.2.5NEON38 3.2.6性能监视单元39 3.3侦听控制单元39 3.3.1地址过滤39 3.3.2SCU主设备端口40 3.4L2高速缓存40 3.4.1互斥L2—L1高速缓存配置42 3.4.2高速缓存替换策略43 3.4.3高速缓存锁定43 3.4.4使能/禁止L2高速缓存控制器44 3.4.5RAM访问延迟控制45 3.4.6保存缓冲区操作45 3.4.7在Cortex—A9和L2控制器之间的优化46 3.4.8预取操作47 3.4.9编程模型48 3.5片上存储器48 3.5.1片上存储器结构48 3.5.2片上存储器功能50 3.6APU接口57 3.6.1PL协处理接口57 3.6.2中断接口60 3.7APU内的TrustZone60 3.7.1CPU安全过渡61 3.7.2CP15寄存器访问控制61 3.7.3MMU安全性62 3.7.4L1缓存安全性62 3.7.5安全异常控制63 3.7.6CPU调试TrustZone访问控制63 3.7.7SCU寄存器访问控制63 3.7.8L2缓存中的TrustZone支持63 3.8应用处理单元复位64 3.8.1复位功能64 3.8.2复位后的APU状态65 3.9功耗考虑65 3.9.1待机模式66 3.9.2在L2控制器内的动态时钟门控66 3.10系统地址分配66 3.10.1地址映射66 3.10.2系统总线主设备68 3.10.3I/O外设68 3.10.4SMC存储器69 3.10.5SLCR寄存器69 3.10.6杂项PS寄存器70 3.10.7CPU私有总线寄存器70 3.11中断70 3.11.1中断环境71 3.11.2中断控制器的功能72 3.11.3编程模型76 3.12定时器77 3.12.1CPU私有定时器和看门狗定时器77 3.12.2全局定时器78 3.12.3系统看门狗定时器79 3.12.4三重定时器/计数器81 3.12.5I/O信号84 3.13DMA控制器85 3.13.1DMA控制器结构及特性85 3.13.2DMA控制器功能89 3.13.3外部信号99 3.13.4.寄存器描述101 3.13.5.用于管理器和命令的指令集参考102 3.13.6编程模型参考103 3.13.7编程限制109 3.13.8DMACIP配置选项111 第4章Zynq—7000可编程逻辑资源112 4.1Zynq—7000可编程逻辑资源特性112 4.2可编程逻辑资源功能114 4.2.1CLB,Slice和LUT114 4.2.2时钟管理114 4.2.3块RAM115 4.2.4数字信号处理—DSPSlice116 4.2.5输入/输出117 4.2.6低功耗串行收发器118 4.2.7PCI—E模块119 4.2.8XADC(模拟—数字转换器)120 4.2.9配置120 第5章系统互连结构122 5.1系统互连功能及特性122 5.1.1数据路径124 5.1.2时钟域125 5.1.3连接性126 5.1.4AXIID127 5.5.5寄存器概述128 5.2服务质量128 5.2.1基本仲裁128 5.2.2高级QoS128 5.2.3DDR端口仲裁129 5.3AXI_HP接口129 5.3.1AXI_HP接口结构及特点129 5.3.2接口数据宽度133 5.3.3交易类型134 5.3.4命令交替和重新排序135 5.3.5性能优化总结135 5.4AXI_ACP接口136 5.5AXI_GP接口137 5.6AXI信号总结137 5.7PL接口选择139 5.7.1使用通用主设备端口的Cortex—A9140 5.7.2通过通用主设备的PSDMA控制器(DMAC)141 5.7.3通过高性能接口的PLDMA142 5.7.4通过AXIACP的PLDMA143 5.7.5通过通用AXI从(GP)的PLDMA144 第6章系统公共资源特性及功能145 6.1时钟子系统145 6.1.1时钟系统结构及功能145 6.1.2CPU时钟域147 6.1.3时钟编程实例148 6.1.4时钟系统内生成电路结构149 6.2复位子系统153 6.2.1复位系统结构和层次154 6.2.2启动流程155 6.1.3复位的结果156 第7章Zynq调试和测试子系统158 7.1JTAG和DAP子系统158 7.1.1JTAG和DAP系统功能描述160 7.1.2JTAG和DAP系统I/O信号162 7.1.3编程模型163 7.1.4ARMDAP控制器164 7.1.5跟踪端口接口单元TPIU165 7.1.6XilinxTAP控制器165 7.2CoreSight系统结构及功能166 7.2.1CoreSight结构166 7.2.2CoreSight功能167 第8章Zynq平台的启动和配置172 8.1Zynq平台启动和配置功能172 8.2外部启动要求173 8.3BootROM175 8.3.1BootROM功能175 8.3.2BootROM头部178 8.3.3启动设备180 8.3.4BootROM多启动和启动分区查找184 8.3.5调试状态186 8.3.6BootROM后状态187 8.4器件配置接口189 8.4.1器件配置接口功能191 8.4.2器件配置流程193 8.4.3PL配置196 8.4.4寄存器集合197 第9章Zynq平台主要外设模块199 9.1DDR存储器控制器199 9.1.1DDR存储器控制器接口及功能200 9.1.2AXI存储器端口接口202 9.1.3DDR核交易调度器204 9.1.4DDRC仲裁204 9.1.5DDR控制器PHY206 9.1.6DDR初始化和标定206 9.1.7纠错码207 9.2静态存储器控制器208 9.2.1静态存储器控制器接口及功能209 9.2.2静态存储器控制器和存储器的信号连接210 9.3四—SPIFlash控制器212 9.3.1四—SPIFlash控制器功能213 9.3.2四—SPI控制器反馈时钟216 9.3.3四—SPIFlash控制器接口216 9.4SD/SDIO外设控制器218 9.4.1SD/SDIO控制器功能219 9.4.2SD/SDIO控制器传输协议221 9.4.3SD/SDIO控制器接口信号连接223 9.5通用输入输出控制器225 9.5.1通用输入输出GPIO接口及功能226 9.5.2通用输入输出GPIO中断功能227 9.6USB主机、设备和OTG控制器229 9.6.1USB控制器接口及功能230 9.6.2USB主机操作模式233 9.6.3USB设备操作模式235 9.6.4USBOTG操作模式238 9.7吉比特以太网控制器239 9.7.1吉比特以太网控制器接口及功能240 9.7.2吉比特以太网控制器接口编程向导242 9.7.3吉比特以太网控制器接口信号连接246 9.8SPI控制器248 9.8.1SPI控制器的接口及功能249 9.8.2SPI控制器时钟设置规则251 9.9CAN控制器252 9.9.1CAN控制器接口及功能252 9.9.2CAN控制器操作模式255 9.9.3CAN控制器消息保存256 9.9.4CAN控制器接收过滤器256 9.9.5CAN控制器编程模型257 9.10UART控制器260 9.10.1UART控制器接口及功能261 9.11I2C控制器264 9.11.1I2C速度控制逻辑265 9.11.2I2C控制器的功能和工作模式265 9.12ADC转换器接口268 9.12.1ADC转换器功能269 9.12.2ADC命令格式269 9.12.3供电传感器报警270 9.13PCI—E接口271 第10章Zynq平台描述规范273 10.1Zynq平台文件描述规范功能集273 10.2微处理器硬件规范273 10.2.1通用微处理器硬件规范274 10.2.2AXI系统微处理器硬件规范275 10.2.3Zynq—7000系统微处理器规范实例276 10.3微处理器外设规范280 10.3.1微处理器规范框架280 10.3.2总线接口规范283 10.3.3IO接口规范283 10.3.4选项规范284 10.3.5参数规范286 10.3.6端口规范293 10.3.7设计考虑295 10.4外设分析命令296 10.5黑盒定义298 10.6微处理器软件规范299 10.6.1微处理器软件规范格式299 10.6.2全局参数301 10.6.3实例指定参数301 10.6.4MDD/MLD指定参数302 10.6.5OS指定参数302 10.6.6处理器指定参数303 10.7微处理器库定义303 10.7.1库定义文件303 10.7.2MLD格式规范304 10.7.3MLD参数描述307 10.7.4设计规则检查309 10.7.5库产生309 10.8微处理器驱动定义309 10.8.1驱动定义文件310 10.8.2MDD格式规范310 10.9Xilinx板描述格式312 10.9.1XBD格式313 10.9.2属性命令313 10.9.3本地参数命令及子属性314 10.9.4本地端口命令及子属性315 10.9.5使用IO_INTERFACE关联IP315 10.9.6AXI系统XBD格式316 第11章高级综合工具HLS320 11.1高级综合工具结构320 11.1.1不同的命令对HLS综合结果的影响321 11.1.2从C中提取硬件结构323 11.2高级综合工具调度和绑定325 11.2.1高级综合工具调度325 11.2.2高级综合工具绑定326 11.3VivadoHLS工具的优势326 11.4C代码的关键属性327 11.4.1函数328 11.4.2类型329 11.4.3循环330 11.4.4数组332 11.4.5端口333 11.4.6操作符334 11.5HLS内提供的用于时钟测量的术语335 第3篇Zynq—7000设计实战 第12章Zynq基本处理系统的建立和运行338 12.1使用BSB向导生成Zynq基本系统338 12.1.1Zynq硬件系统的生成338 12.1.2生成HelloWorld应用工程346 12.1.3运行HelloWorld应用工程350 12.2生成和运行存储器测试工程352 12.2.1导入前面的XPS设计到SDK352 12.2.2生成存储器测试工程352 12.2.3运行存储器测试工程355 12.2.4调试存储器测试工程356 12.3生成和运行外设测试工程358 12.3.1导入前面的XPS设计到SDK359 12.3.2生成外设测试工程359 12.3.3运行外设测试工程364 第13章添加AXIIP到设计366 13.1设计原理366 13.2添加IP到系统设计367 13.2.1创建设计工程367 13.2.2添加GPIOIP到设计368 13.2.3添加AXITimerIP到设计370 13.2.4连接中断源到PS371 13.2.5通过EMIO将PS的GPIO连接到PL372 13.2.6添加约束到约束文件374 13.3使用SDK设计和实现应用工程374 13.3.1导入前面的XPS设计到SDK374 13.3.2生成应用工程374 13.3.3运行应用工程382 第14章基于定制IP实现简单嵌入式系统设计383 14.1创建设计工程384 14.2定制GPIOIP核384 14.2.1产生GPIOIP模版384 14.2.2基于模板构建完整GPIOIP391 14.3添加和连接AXI外设394 14.4添加约束到用户约束文件395 14.5使用SDK设计和实现应用工程396 14.5.1修改模板驱动函数396 14.5.2导入硬件设计到SDK工具396 14.5.3生成新应用工程397 14.5.4添加定制IP核软件驱动到设计397 14.5.5导入应用程序398 14.5.6下载硬件比特流文件到FPGA400 14.5.7运行应用工程400 14.5.8使用XMD分析目标文件401 第15章基于定制IP实现复杂嵌入式系统设计402 15.1设计原理402 15.1.1VGAIP核的设计原理402 15.1.2移位寄存器IP核的设计原理404 15.2创建设计工程405 15.3定制VGAIP核406 15.3.1产生VGAIP模版406 15.3.2基于模板构建完整VGAIP407 15.4定制移位寄存器IP核412 15.4.1产生shifterIP模版412 15.4.2基于模板构建完整shifterIP413 15.5添加和连接VGAIP核416 15.6添加和连接shifterIP核416 15.7添加约束到用户约束文件417 15.8使用SDK设计和实现应用工程418 15.8.1修改模板驱动函数418 15.8.2导入硬件设计到SDK工具419 15.8.3生成新的应用工程419 15.8.4添加定制IP核软件驱动到设计420 15.8.5编写应用程序421 15.8.6下载硬件比特流文件到FPGA424 15.8.7运行应用工程424 第16章软件和硬件协同调试系统426 16.1复制并打开设计工程426 16.2例化AXIChipscope核426 16.3导入硬件设计到SDK工具429 16.4启动ChipScopePro硬件调试器430 16.5执行H/S验证431 第17章Zynq平台配置和启动的实现433 17.1生成SD卡镜像文件并启动433 17.1.1SD卡接口433 17.1.2复制并打开前面的设计工程434 17.1.3创建第一级启动引导434 17.1.4创建SD卡启动镜像435 17.1.5从SD卡启动引导系统436 17.2生成QSPIFlash镜像并启动437 17.2.1QSPIFlash接口437 17.2.2创建QSPIFlash镜像438 17.2.3从QSPIFlash启动引导系统439 第18章基于ZynqHP从端口的数据传输实现440 18.1设计原理440 18.2创建设计工程441 18.3添加并配置AXICDMA到设计442 18.3.1添加AXICDMAIP和互联到设计442 18.3.2连接AXICDMA到设计443 18.3.3添加端口连接446 18.3.4分配地址空间447 18.4使用SDK设计和实现应用工程448 18.4.1软件应用的实现原理448 18.4.2导入硬件设计到SDK448 18.4.3创建新的软件应用工程449 18.4.4导入应用程序449 18.4.5下载硬件比特流文件到FPGA457 18.4.6运行应用工程457 第19章基于ZynqACP从端口的数据传输实现459 19.1设计原理459 19.2创建设计工程459 19.3配置PS端口460 19.3.1配置PS32位GPAXI主端口460 19.3.2配置PS的ACP从端口460 19.4添加并连接IP到设计461 19.4.1添加IP到设计461 19.4.2总线连接462 19.4.3端口连接463 19.4.4分配地址空间464 19.5使用SDK设计和实现应用工程464 19.5.1导入硬件设计到SDK465 19.5.2创建新的软件应用工程465 19.5.3导入应用程序465 19.5.4下载硬件比特流文件到FPGA469 19.5.5运行应用工程469 第20章XADC在Zynq平台上的应用471 20.1设计原理471 20.2创建设计工程472 20.3添加XADCIP到设计473 20.4添加约束到用户约束文件475 20.4.1Zedboard板上XADC接口475 20.4.2添加约束条件476 20.5使用SDK设计和实现应用工程476 20.5.1导入硬件设计到SDK工具476 20.5.2生成新的应用工程477 20.5.3下载硬件比特流文件到FPGA478 20.5.4运行应用工程478 第21章Ubuntu操作系统在Zynq平台上实现480 21.1Ubuntu操作系统环境搭建480 21.1.1安装虚拟机480 21.1.2在虚拟机上安装Ubuntu12.10485 21.1.3Linux和windows文件传输工具CuteFTP安装使用489 21.1.4Ubuntu相关环境和命令设置490 21.2u—boot原理及实现492 21.2.1u—boot结构492 21.2.2下载u—boot源码493 21.2.3u—boot配置与编译494 21.3内核概述及编译495 21.3.1内核结构495 21.3.2内核编译497 21.4设备树原理及实现497 21.4.1设备树功能497 21.4.2设备树数据格式497 21.4.3设备树的编译499 21.5文件系统原理及实现499 21.6打开设计工程500 21.7使用SDK设计生成软件工程501 21.7.1创建第一级引导启动代码502 21.7.2SD启动镜像的生成503 21.8验证Ubuntu操作系统的运行504 第22章μC/OS—III操作系统在Zynq平台上的实现505 22.1μc/OS—III操作系统概述506 22.2μC/OS—III操作系统环境构建509 22.3创建设计工程509 22.4建立基于μc/OS—III操作系统的软件应用工程511 22.4.1导入设计到SDK中511 22.4.2创建新的μC/OS—III设计工程511 22.4.3修改编译环境参数513 22.4.4重新编译设计工程514 22.5运行外设测试工程515 22.5.1配置硬件平台515 22.5.2配置运行环境515 22.6相关文件目录功能516 22.6.1App、BSP和Documentation文件夹517 22.6.2μC/CPU文件夹517 22.6.3μC/CSP文件夹517 22.6.4μC/LIB文件夹518 22.6.5μC/OS—III文件夹518 22.6.6用于μC/OS—III文件夹的XilinxBSP519 22.7基于μC/OS—III操作系统的关键工程文件分析520 22.7.1Main()520 22.7.2AppTaskStart()521 22.7.3AppTaskCreate()523 22.7.4AppMutexCreate()524 22.7.5AppTask1()524 22.7.6AppPrint()525 22.7.7app_cfg.h526 第23章HLS在Zynq嵌入式系统设计中的应用527 23.1设计原理527 23.2基于HLS生成FIR滤波器527 23.2.1设计FIR滤波器528 23.2.2运行仿真和验证功能532 23.2.3设计综合534 23.2.4设计优化536 23.2.5运行CoSimulation537 23.2.6实现ISim软件下的仿真538 23.2.7使用指令创建Pcore540 23.2.8生成Pcore核542 23.3创建处理器系统543 23.3.1建立新的设计工程543 23.3.2修改处理器系统外设参数设置544 23.3.3复制pcore到当前工程544 23.3.4例化并连接生成的Pcore545 23.3.5添加用户约束到用户约束文件547 23.4使用SDK设计和实现应用工程548 23.4.1导入设计到SDK548 23.4.2生成应用工程548 23.4.3导入应用程序549 23.4.4验证硬件设计556 23.4.5运行应用工程556

编辑推荐

《EDA工程技术丛书:Xilinx All Programmable Zynq-7000 SoC设计指南》首次论述Zynq-7000 SoC体系结构、程序设计及操作系统移植的方法与实践。详尽介绍Zynq-7000 SoC的体系结构和相关生态系统,便于读者快速动手实践。始终围绕软件和硬件协同设计的理念叙述,利于读者彻底掌握Zynq-7000 SoC的设计方法和技巧。《EDA工程技术丛书:Xilinx All Programmable Zynq-7000 SoC设计指南》的编写得到了Xilinx及其合作伙伴的大力支持,藉其丰富的资源,反映出最新的设计技术水平。《Xilinx All Programmable Zynq-7000 SoC设计指南》配套提供设计实例的完整设计代码和教学课件资源。《EDA工程技术丛书:Xilinx All Programmable Zynq-7000 SoC设计指南》内容(含)可编程SoC设计AMBA协议规范Zynq-7000应用处理单元可编程逻辑资源系统互连结构系统公共资源特性及功能Zynq调试和测试系统Zynq平台的启动和配置Zynq平台主要外设模块Zynq平台描述规范高级综合工具HLS14个设计实例附赠内容源代码:第12章~第23章涉及实例的源代码文件教学课件:分成理论和实践两大部分

前言

2.Zynq-7000器件是最新半导体技术、计算机技术和电子技术的一个结合体。在一个小小的半导体硅片上却集成了当今最新的信息技术。基于Zynq-7000平台进行高性能的嵌入式实现,需要微电子、数字逻辑、嵌入式处理器、计算机接口、计算机体系结构、数字信号处理等相关的知识。表面上看,Zynq-7000是一个比较复杂的系统。但是,是对一个设计者基础理论知识和系统级设计能力的一个真正的考察。在这个平台上实现嵌入式系统的应用,体现着自顶向下的一体化设计理念。3.Zynq-7000平台是非常好的教学平台、科研平台和应用平台。作为教学平台,可以在这个平台上实现全过程的计算机相关课程的教学,使得学生可以清楚地看到每个实现的具体过程。这样,学生就可以真正地理解嵌入式系统的内涵;作为科研平台,从事嵌入式相关技术研究人员,可以在这个全开放的平台上,将算法进行高性能的实现。并且,可以在这个平台上实现很多设计的性能分析等研究;作为应用平台,该平台的应用将进一步的提高嵌入式系统的灵活性和可靠性、大大降低设计成本,提高了产品的市场竞争力。为了更好的帮助读者学习和掌握Zynq全可编程平台的设计原理和实现方法。全书共23章,按照Zynq-7000基础理论篇、Zynq-7000体系结构篇和Zynq-7000设计实战篇分别进行了详细的介绍。1.Zynq-7000基础理论篇,详细介绍了学习Zynq-7000全可编程平台需要的基础理论知识,共包括2个章节内容:(1)可编程SoC设计导论,包括:可编程SoC系统概述、Xilinx Zynq平台导论和Zynq平台设计方法概述。(2) AMBA协议规范,包括:AMBA规范概述、AMBA APB规范、AMBA AHB规范和AMBA AXI4规范。2.Zynq-7000体系结构篇,详细介绍了Zynq-7000内的处理器系统、可编程逻辑系统、互联结构和外设模块等,共包含9个章节的内容:(1)Zynq-7000应用处理单元,包括:应用处理单元概述、Cortex-A9处理器、侦听控制单元、L2高速缓存、片上存储、APU接口、APU内的TrustZone、应用处理单元复位、功耗考虑、系统地址分配、中断、定时器和DMA控制器。(2)可编程逻辑资源,包括:可编程逻辑资源概述和可编程逻辑资源功能。(3)系统互连结构,包括:系统互连概述、服务质量、AXI_HP接口、AXI_ACP接口、AXI_GP接口、AXI信号总结和PL接口选择。(4)系统公共资源特性及功能,包括:时钟子系统和复位子系统。(5)Zynq调试和测试子系统,包括:JTAG和DAP子系统、CoreSight系统及功能。(6)Zynq平台的启动和配置,包括:概述、外部启动要求、BootROM和器件配置接口。  (7)  Zynq平台主要外设模块,包括:DDR存储器控制器、静态存储器控制器、四-SPI Flash控制器、SD/SDIO外设控制器、通用输入输出控制器、USB主、设备和OTG控制器、吉比特以太网控制器、SPI控制器、CAN控制器、UART控制器、I2C控制器、ADC转换器接口和PCI-E接口。(8)Zynq平台描述规范,包括:Zynq平台文件描述规范概述、微处理器硬件规范、微控制器外设规范、外设分析命令、黑盒定义、微处理器软件规范、微处理器库定义、微处理器驱动定义和Xilinx板描述格式。(9)高级综合工具HLS概述,包括:高级综合工具概述、高级综合工具调度和绑定、Vivado HLS工具的优势、C代码的关键属性和HLS内提供的用于时钟测量的术语。3.Zynq-7000设计实战篇,详细介绍了基于Zynq全可编程平台的不同设计实例,共包含12个章节的内容:(1)使用BSP向导生成Zynq基本系统。包括:使用BSB向导生成Zynq基本系统、生成和运行存储器测试工程及生成和运行外设测试工程。(2)添加AXI IP到设计。包括:设计原理、添加IP到系统设计、使用SDK设计和实现应用工程。(3)基于定制IP实现简单嵌入式系统设计。包括:创建设计工程、定制GPIO IP核、添加和连接AXI外设、添加约束到用于约束文件、使用SDK设计和实现应用工程。(4)基于定制IP实现复杂嵌入式系统设计。包括:设计原理、创建设计工程、定制VGA IP核、定制移位寄存器IP核、添加和连接VGA IP核、添加和连接shifter IP核、添加约束到用户约束文件、使用SDK设计和实现应用工程。(5)软件和硬件协同调试系统。包括:复制并打开设计工程、例化AXI Chipscope核、导入硬件设计到SDK工具、启动ChipScope Pro硬件调试器工具、执行H/S验证。(6)Zynq平台配置和启动的实现。包括:生成SD卡镜像文件并启动、生成QSPI Flash镜像并启动。(7)基于Zynq HP从端口的数据传输实现。包括:设计原理、创建设计工程、添加并配置AXI CDMA到设计、使用SDK设计和实现应用工程。(8)基于Zynq ACP从端口数据传输实现。包括:设计原理、创建设计工程、配置PS端口、添加并连接IP到设计、使用SDK设计和实现应用工程。(9)XADC在Zynq平台上的应用。包括:设计原理、创建设计工程、添加XADC IP到设计、使用SDK设计和实现应用工程。(10)Ubuntu操作系统在Zynq平台上实现。包括:Ubuntu操作系统环境搭建、u-boot原理及实现、内核概述及编译、设备树原理及实现、文件系统原理及实现、打开设计工程、使用SDK设计生成软件工程、验证Ubuntu系统的运行。(11)µC/OS-III操作系统在Zynq平台上的实现。包括:µC/OS-III操作系统概述、µC/OS-III操作系统环境构建、创建设计工程、建立µC/OS-III操作系统的软件应用工程、运行外设测试工程、相关文件目录功能、基于µC/OS-III操作系统的关键工程文件分析。(12)HLS在Zynq嵌入式系统设计的应用。包括:设计原理、基于HLS生成FIR滤波器、创建处理器系统、使用SDK设计和实现应用工程。在本书所包含这些设计实例代表着Zynq的一个应用的方向,在介绍这些设计实例的过程中,贯穿了很多重要的设计方法和设计思路,这些设计方法和设计思路比设计案例本身更加重要。为了便于读者的学习,本书还配套了光盘,光盘上提供了相关设计的完整工程及相关代码,以及教学课件等设计资源。在本书的编写过程中,得到了大量的帮助。感谢彭勃、李宝隆、孙丹阳同学,他们分别帮助验证了本书实验部分案例的验证,以及完成了书中一部分表格和插图的绘制工作。中科院南京天文光学技术研究所的陆启帅参与本书实验部分第9章、第10章内容的编写。还要感谢Xilinx大学合作计划、ARM大学合作计划、美国Digilent公司、美国Avent公司和北京麦克泰软件技术有限公司在软件和硬件平台方面给予的大力支持和帮助。最后,也要对清华大学出版社的编辑和领导的辛勤工作表示感谢。正是由于他们的支持和帮助,使得作者能在短时间内高质量的完成该书的编写和校对工作。虽然作者花费了大量的精力和时间用于该书的编写,但是由于作者的能力有限,书中一定会存在不足之处。在此,也恳请广大读者、同仁对本书提出宝贵的修改意见。何宾2013.1于北京

内容概要

何宾,长期从事数字系统EDA方面教学与科研工作。在全国进行大学生电子设计竞赛极力推进FPGA专题方面的培训工作,在EDA教学与科研应用方面积累了丰富的经验。已出版相关图书《EDA原理及Verilog实现》、《EDA原理及VHDL实现》、《基于AXI4的可编程SOC系统设计》、《Xilinx FPGA设计权威指南》等10本深受读者喜欢的Xilinx FPGA图书。

名人推荐

把握All Programmable SoC技术,推动中国创新事业新年伊始,获悉北京化工大学何宾教授的《Xilinx All Programmable Zynq-7000 SoC设计指南》图书即将完稿出版,我感到非常振奋。从诞生至今,赛灵思一直都是行业的先锋企业,29年来引领了众多的行业创新。在过去的两年中,赛灵思最为自豪的,就是自28nm产品推出以来公司所实现的众多的行业第一,其中包括:(1)行业第一个All Programmable SoC Zynq-7000系列。 该系列的发布为行业带来了软件和硬件全面可编程的SoC平台。(2)行业第一个3D IC。 该产品的发布使得半导体制造业突破了摩尔定律的限制。已经量产的Virtex-7 2000T 3D IC是目前半导体历史上最大的IC,拥有68亿个晶体管。(3)行业第一个异构3D IC。该3D IC 让28nm FPGA功能和40nm 28G SerDes 收发器功能得以完美集成,成为行业第一个拥有400G吞吐能力的单芯片。(4)行业第一个把高层次综合能力引入到All Programmable FPGA设计流程中,使得FPGA工程师能够通过构建基于C/C++/System C的模型而转换硬件实现。(5)打造行业第一个面向未来10年All Programmable 设计的新一代环境: Vivado Design Suit,把集成和实现的速度提高4倍以上,大大提升了工程设计的生产力。(6)Zynq加HLS (赛灵思高层次综合工具),让系统设计工程师能够基于All Programmable SoC实现软硬件的协同设计,大幅缩短了其产品的上市进程。所有这些赛灵思所创造的行业领先产品和技术,让赛灵思能够为工程业界提供领先一代的价值优势,帮助工程师们充分释放其创造和创新的巨大潜能。芯片平台进入门坎一直是局限中国信息行业发展的瓶颈,赛灵思的28nm All Programmable产品,尤其是其Zynq系列,对于中国的工程师们来说,是一个非常合适且高效的平台,可以支持他们实现精彩纷呈的行业创新。我很高兴中国的教授能够如此迅速地发现Zynq All Programmable SoC的价值,并率先出版拥有大量实例的、理论和实践相结合的中文设计指南。这些图书将加速中国工程师借助Zynq 平台把创意变成现实,推动中国的创新事业。更智能的专业化软硬件平台,将是嵌入式系统的未来。而Zynq All Programmable SoC,就是这样一个专业的、跨学科、跨产业、跨时空、和跨职业生涯的强大软硬件平台,不仅将加速中国学术界创新人才培养,而且还将在推动工业界的创新方面扮演重要的角色!最后,我再次对何教授及相关作者在该书出版上所做的努力表示诚挚的谢意!——Xilinx公司亚太地区销售与市场副总裁 杨飞紧密结合ARM与FPGA技术,致力中国智造首先,恭喜北京化工大学何宾教授写作完成的《Xilinx Zynq-7000 All Programmable SoC 平台设计指南》系列图书即将出版。ARM公司自1990年诞生以来,一直致力于为芯片的设计开发提供领先的半导体知识产权(IP),全球有超过250家公司在ARM处理器IP的基础上开发出了数以百计的各类芯片。ARM在全球合作伙伴数量(包括世界领先的半导体公司和系统公司)也已经超过了1000个。2012年,全球领先FPGA厂商赛灵思(Xilinx)公司与ARM合作,推出的Zynq-7000系列产品,完美的将ARM®双核Cortex™-A9MPCore™处理系统与赛灵思可扩展的28nm可编程逻辑构架结合在一起。该系列采用了业界事实标准的AMBA®总线作为片上系统的互连总线,可支持双核 Cortex-A9处理器系统以及可编程逻辑中定制加速器和外设的并行开发。作为行业内第一款集成了Cortex™-A系列内核的软、硬件全面可编程的平台,我们非常自豪能够参与和见证这一技术上的创新。同时,我们也非常高兴的看到FPGA的用户将可以从ARM生态中丰富的软、硬件资源中获益。相信Zynq-7000系列的推出,一定会给中国的工程师们提供一个更强大的工作和创新平台。何宾老师基于该产品撰写的《Xilinx All Programmable SoC设计指南》,从片上系统(SoC)设计导论开始,继之以AMBA®片上总线规范以及Cortex™-A9处理器内核的说明,之后在详细描述Zynq-7000系列芯片特点的基础上系统介绍了如何基于Zynq的丰富资源与特性进行软硬件的协调开发。下册则提供了非常丰富的设计实例来说明设计流程和方法。作为ARM大学计划的一员,我非常高兴的看到Zynq-7000系列开发平台已经走入了大学,成为大学生们学习和研究的工具。在校大学生是未来优秀工程师的主力军,何宾老师撰写的可编程平台设计指南,把行业内领先的技术带进了大学的课堂,这对优秀人才的培养以及国内半导体技术的发展都有着重大的意义。相信本书的出版发行定能够对于芯片设计、嵌入式系统乃至计算机软硬相关学科的教学与科研提供很好的平台和参考。——ARM公司中国区大学计划经理 时昕

章节摘录

版权页:   插图:   如果SCU缺失,它发布一个确认行填充到控制器。确认和控制器内前面的预测读合并,使得控制器返回数据到L1缓存控制器,比L2缓存命中快。如果SCU命中,在某个周期后或者当存在资源冲突时,L2自然地终止预测读。当预测读结束时,L2控制器通知SCU,或者确认或者终止。 3.4.8预取操作 预取操作使得能够事先从存储器取缓存行,用于提高系统性能。用户通过设置预取控制寄存器的28或者29比特位,使能预取特性。当使能时,如果来自SCU的从端口接收到一个可缓存的读交易时,在随后的缓存行执行一个缓存查找。预取控制寄存器的[4:0]比特提供了随后缓存行的地址。如果发生缺失时,从外部存储器取出缓存行,并且分配到L2缓存。 默认时,预取偏置是5’b00000。例如,如果S0接收到在地址0x100上的一个可缓存的读,预取0x120地址的缓存行。预取下一个缓存行可能不产生性能优化。在一些系统中,超前预取可以达到更好的性能。通过将预取缓存行的地址设置到缓存行+1+偏置的地址,使得预取偏置能够达到更好的特性。预取偏置的优化值取决于外部存储器读延迟和L1读发布能力。预取机制不能跨越4KB的边界。 在控制主端口内,预取访问能使用大量的地址槽。这可以防止对非预加载访问的服务,它将影响性能。为了应对这个影响,控制器放弃预取访问。通过使用预取控制寄存器的24比特位来控制它。当使能时,如果在控制器主端口内的预取和非预取之间存在资源冲突,则放弃预取访问。当所放弃的这些预取访问数据从外部存储器返回时,放弃它,并且不把它分配给L2高速缓存。 3.4.9编程模型 下面应用于L2缓存控制器内的寄存器: (1)通过存储器映射的寄存器集合控制缓存控制器。这些寄存器的存储器区域必须在L1页表内,定义为强顺序或者设备存储器属性。 (2)必须保护所有寄存器的保留位;否则,可能发生设备未定义的行为。 (3)除非在相关的文字中进行了描述,所有寄存器支持读和写访问。写操作用于更新寄存器的内容,读操作返回奇存器的内容。 (4)在处理所有对寄存器的写操作前,自动执行一个初始的同步操作。 作为一个例子,由下列寄存器操作构成一个典型的缓存控制器启动编程序列。 (1)使用一个读修改写,来设置全局配置。写到辅助、标记RAM延迟、数据RAM延迟、预取和电源控制寄存器,①关联性和路大小;②用于RAM访向的延迟;③分配策略;④预取和供电能力。


 Xilinx All Programmable Zynq-7000 SoC设计指南下载



发布书评

 
 


精彩短评 (总计6条)

  •     这么大部头书,啥都找不到~ 官方文档才是正道啊
  •     翻译各种手册!这还不是最关键的!关键的是你翻译就好好翻译啊,别搞几个研究生,搞几个翻译软件自动翻译啊!大量的语句不通,翻译非常牵强!以前就看过何宾写的xilinx方面的书,那时就觉得翻译烂。过了几年,还是这么烂!
  •     基本是翻译的各种手册,自己写的东西很少
  •     内容详实。但是感觉像是在翻译手册。
  •     看行文应该是直接机器翻译的什么材料ba
  •     介绍Zynq-7000的书仅此一本,亚马逊的价格最低,其他不必多说了
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024