Xilinx All Programmable Zynq-7000 SoC设计指南

第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.2?Xilinx?Zynq平台导论?28
1.2.1?Xilinx?Zynq平台功能?28
1.2.2?处理系统PS特性?30
1.2.3?可编程逻辑PL特性?35
1.2.4?互联特性及描述?37
1.2.5?Zynq信号、接口和引脚?39
1.3?Zynq平台设计方法学?46
1.3.1?使用PL实现软件算法的优势?46
1.3.2?设计PL加速器?47
1.3.3?PL加速限制?47
1.3.4?降低功耗?48
1.3.5?实时减负?49
1.3.6?可重配置计算?49
第2章?AMBA协议规范?50
2.1?AMBA规范导论?50
2.2?AMBA?APB规范?51
2.2.1AMBA?APB写传输?51
2.2.2AMBA?APB读传输?52
2.2.3?AMBA?APB错误响应?53
2.2.4操作状态?54
2.2.5AMBA3?APB信号?54
2.3?AMBA?AHB规范?56
2.3.1?AMBA?AHB结构?56
2.3.2?AMBA?AHB操作?58
2.3.3?AMBA?AHB传输类型?60
2.3.4?AMBA?AHB猝发操作?61
2.3.5?AMBA?AHB传输控制信号?64
2.3.6?AMBA?AHB地址译码?66
2.3.7?AMBA?AHB从设备传输响应?67
2.3.8?AMBA?AHB数据总线?70
2.3.9?AMNA?AHB传输仲裁?71
2.3.10?AMBA?AHB分割传输?76
2.3.11?AMBA?AHB复位?79
2.3.12?关于AHB数据总线的位宽?79
2.3.13?AMBA?AHB接口设备?80
2.4?AMBA?AXI4规范?11
2.4.1?AMBA?AXI4概述?错误!未定义书签。
2.4.2?AMBA?AXI4功能?11
2.4.3?AMBA?AXI4互联结构?20
2.4.4?AXI4-Lite功能?22
2.4.5?AXI4-Stream功能?23
第2篇?Zynq-7000体系结构
第3章?Zynq-7000应用处理单元?27
3.1?应用处理单元?27
3.1.1?基本功能?27
3.1.2?系统级视图?29
3.2?Cortex-A9处理器?30
3.2.1?中央处理器?30
3.2.2?L1高速缓存?33
3.2.3?存储器管理单元?34
3.2.4?接口?37
3.2.5?NEON?38
3.2.6?性能监视单元?39
3.3?侦听控制单元?39
3.3.1?地址过滤?39
3.3.2?SCU主设备端口?40
3.4?L2高速缓存?40
3.4.1?互斥?L2-L1高速缓存配置?42
3.4.2?高速缓存替换策略?43
3.4.3?高速缓存锁定?43
3.4.4?使能/禁止?L2高速缓存控制器?44
3.4.5?RAM访问延迟控制?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.6?APU接口?57
3.6.1?PL协处理接口?57
3.6.2?中断接口?60
3.7?APU内的TrustZone?60
3.7.1?CPU安全过渡?61
3.7.2?CP15寄存器访问控制?61
3.7.3?MMU安全性?62
3.7.4?L1缓存安全性?62
3.7.5?安全异常控制?63
3.7.6?CPU调试?TrustZone访问控制?63
3.7.7?SCU寄存器访问控制?63
3.7.8?L2缓存中的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.3?I/O外设?68
3.10.4?SMC存储器?69
3.10.5?SLCR寄存器?69
3.10.6?杂项PS寄存器?70
3.10.7?CPU私有总线寄存器?70
3.11?中断?70
3.11.1?中断环境?71
3.11.2?中断控制器的功能?72
3.11.3?编程模型?76
3.12?定时器?77
3.12.1?CPU私有定时器和看门狗定时器?77
3.12.2?全局定时器?78
3.12.3?系统看门狗定时器?79
3.12.4?三重定时器/计数器?81
3.12.5?I/O信号?84
3.13?DMA控制器?85
3.13.1?DMA控制器结构及特性?85
3.13.2?DMA控制器功能?89
3.13.3?外部信号?99
3.13.4.寄存器描述?101
3.13.5.用于管理器和命令的指令集参考?102
3.13.6?编程模型参考?103
3.13.7?编程限制?109
3.13.8?DMAC?IP配置选项?111
第4章?Zynq-7000可编程逻辑资源?112
4.1?Zynq-7000可编程逻辑资源特性?112
4.2?可编程逻辑资源功能?114
4.2.1?CLB,Slice和LUT?114
4.2.2?时钟管理?114
4.2.3?块RAM?115
4.2.4?数字信号处理-DSP?Slice?116
4.2.5?输入/输出?117
4.2.6?低功耗串行收发器?118
4.2.7?PCI-E模块?119
4.2.8?XADC(模拟-数字转换器)?120
4.2.9?配置?120
第5章?系统互连结构?122
5.1?系统互连功能及特性?122
5.1.1?数据路径?124
5.1.2?时钟域?125
5.1.3?连接性?126
5.1.4?AXI?ID?127
5.5.5?寄存器概述?128
5.2?服务质量?128
5.2.1?基本仲裁?128
5.2.2?高级QoS?128
5.2.3?DDR端口仲裁?129
5.3?AXI_HP接口?129
5.3.1?AXI_HP接口结构及特点?129
5.3.2?接口数据宽度?133
5.3.3?交易类型?134
5.3.4?命令交替和重新排序?135
5.3.5?性能优化总结?135
5.4?AXI_ACP接口?136
5.5?AXI_GP接口?137
5.6?AXI信号总结?137
5.7?PL接口选择?139
5.7.1?使用通用主设备端口的Cortex-A9?140
5.7.2?通过通用主设备的PS?DMA控制器(DMAC)?141
5.7.3?通过高性能接口的PL?DMA?142
5.7.4?通过AXI?ACP的PL?DMA?143
5.7.5?通过通用AXI从(GP)的PL?DMA?144
第6章?系统公共资源特性及功能?145
6.1?时钟子系统?145
6.1.1?时钟系统结构及功能?145
6.1.2?CPU时钟域?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.1?JTAG和DAP子系统?158
7.1.1?JTAG和DAP系统功能描述?160
7.1.2?JTAG和DAP系统I/O信号?162
7.1.3?编程模型?163
7.1.4?ARM?DAP控制器?164
7.1.5?跟踪端口接口单元TPIU?165
7.1.6?Xilinx?TAP控制器?165
7.2?CoreSight系统结构及功能?166
7.2.1?CoreSight结构?166
7.2.2?CoreSight功能?167
第8章?Zynq平台的启动和配置?172
8.1?Zynq平台启动和配置功能?172
8.2?外部启动要求?173
8.3?BootROM?175
8.3.1?BootROM功能?175
8.3.2?BootROM头部?178
8.3.3?启动设备?180
8.3.4?BootROM多启动和启动分区查找?184
8.3.5?调试状态?186
8.3.6?BootROM后状态?187
8.4?器件配置接口?189
8.4.1?器件配置接口功能?191
8.4.2?器件配置流程?193
8.4.3?PL配置?196
8.4.4?寄存器集合?197
第9章?Zynq平台主要外设模块?199
9.1?DDR存储器控制器?199
9.1.1?DDR存储器控制器接口及功能?200
9.1.2?AXI存储器端口接口?202
9.1.3?DDR核交易调度器?204
9.1.4?DDRC仲裁?204
9.1.5?DDR控制器PHY?206
9.1.6?DDR初始化和标定?206
9.1.7?纠错码?207
9.2?静态存储器控制器?208
9.2.1?静态存储器控制器接口及功能?209
9.2.2?静态存储器控制器和存储器的信号连接?210
9.3?四-SPI?Flash控制器?212
9.3.1?四-SPI?Flash控制器功能?213
9.3.2?四-SPI控制器反馈时钟?216
9.3.3?四-SPI?Flash控制器接口?216
9.4?SD/SDIO外设控制器?218
9.4.1?SD/SDIO控制器功能?219
9.4.2?SD/SDIO控制器传输协议?221
9.4.3?SD/SDIO控制器接口信号连接?223
9.5?通用输入输出控制器?225
9.5.1?通用输入输出GPIO接口及功能?226
9.5.2?通用输入输出GPIO中断功能?227
9.6?USB主机、设备和OTG控制器?229
9.6.1?USB控制器接口及功能?230
9.6.2?USB主机操作模式?233
9.6.3?USB设备操作模式?235
9.6.4?USB?OTG操作模式?238
9.7?吉比特以太网控制器?239
9.7.1?吉比特以太网控制器接口及功能?240
9.7.2?吉比特以太网控制器接口编程向导?242
9.7.3?吉比特以太网控制器接口信号连接?246
9.8?SPI控制器?248
9.8.1?SPI控制器的接口及功能?249
9.8.2?SPI控制器时钟设置规则?251
9.9?CAN控制器?252
9.9.1?CAN控制器接口及功能?252
9.9.2?CAN控制器操作模式?255
9.9.3?CAN控制器消息保存?256
9.9.4?CAN控制器接收过滤器?256
9.9.5?CAN控制器编程模型?257
9.10?UART控制器?260
9.10.1?UART控制器接口及功能?261
9.11?I2C控制器?264
9.11.1?I2C速度控制逻辑?265
9.11.2?I2C控制器的功能和工作模式?265
9.12?ADC转换器接口?268
9.12.1?ADC转换器功能?269
9.12.2?ADC命令格式?269
9.12.3?供电传感器报警?270
9.13?PCI-E接口?271
第10章?Zynq平台描述规范?273
10.1?Zynq平台文件描述规范功能集?273
10.2?微处理器硬件规范?273
10.2.1?通用微处理器硬件规范?274
10.2.2?AXI系统微处理器硬件规范?275
10.2.3?Zynq-7000系统微处理器规范实例?276
10.3?微处理器外设规范?280
10.3.1?微处理器规范框架?280
10.3.2总线接口规范?283
10.3.3?IO接口规范?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.4?MDD/MLD指定参数?302
10.6.5?OS指定参数?302
10.6.6?处理器指定参数?303
10.7?微处理器库定义?303
10.7.1?库定义文件?303
10.7.2?MLD格式规范?304
10.7.3?MLD参数描述?307
10.7.4?设计规则检查?309
10.7.5?库产生?309
10.8?微处理器驱动定义?309
10.8.1?驱动定义文件?310
10.8.2?MDD格式规范?310
10.9?Xilinx板描述格式?312
10.9.1?XBD格式?313
10.9.2?属性命令?313
10.9.3?本地参数命令及子属性?314
10.9.4?本地端口命令及子属性?315
10.9.5?使用IO_INTERFACE关联IP?315
10.9.6?AXI系统XBD格式?316
第11章?高级综合工具HLS?320
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.3?Vivado?HLS工具的优势?326
11.4?C代码的关键属性?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.5?HLS内提供的用于时钟测量的术语?335
第3篇?Zynq-7000设计实战
第12章?Zynq基本处理系统的建立和运行?338
12.1使用BSB向导生成Zynq基本系统?338
12.1.1?Zynq硬件系统的生成?338
12.1.2生成Hello?World应用工程?346
12.1.3运行Hello?World应用工程?350
12.2?生成和运行存储器测试工程?352
12.2.1?导入前面的XPS设计到SDK?352
12.2.2?生成存储器测试工程?352
12.2.3运行存储器测试工程?355
12.2.4调试存储器测试工程?356
12.3?生成和运行外设测试工程?358
12.3.1?导入前面的XPS设计到SDK?359
12.3.2?生成外设测试工程?359
12.3.3运行外设测试工程?364
第13章?添加AXI?IP到设计?366
13.1?设计原理?366
13.2?添加IP到系统设计?367
13.2.1?创建设计工程?367
13.2.2?添加GPIO?IP到设计?368
13.2.3?添加AXI?Timer?IP到设计?370
13.2.4?连接中断源到PS?371
13.2.5?通过EMIO将PS的GPIO连接到PL?372
13.2.6?添加约束到约束文件?374
13.3?使用SDK设计和实现应用工程?374
13.3.1?导入前面的XPS设计到SDK?374
13.3.2生成应用工程?374
13.3.3?运行应用工程?382
第14章?基于定制IP实现简单嵌入式系统设计?383
14.1创建设计工程?384
14.2?定制GPIO?IP核?384
14.2.1?产生GPIO?IP模版?384
14.2.2?基于模板构建完整GPIO?IP?391
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下载硬件比特流文件到FPGA?400
14.5.7?运行应用工程?400
14.5.8?使用XMD分析目标文件?401
第15章?基于定制IP实现复杂嵌入式系统设计?402
15.1?设计原理?402
15.1.1?VGA?IP核的设计原理?402
15.1.2移位寄存器IP核的设计原理?404
15.2创建设计工程?405
15.3?定制VGA?IP核?406
15.3.1?产生VGA?IP模版?406
15.3.2?基于模板构建完整VGA?IP?407
15.4?定制移位寄存器IP核?412
15.4.1?产生shifter?IP模版?412
15.4.2?基于模板构建完整?shifter?IP?413
15.5?添加和连接VGA?IP核?416
15.6?添加和连接shifter?IP核?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?下载硬件比特流文件到FPGA?424
15.8.7?运行应用工程?424
第16章?软件和硬件协同调试系统?426
16.1?复制并打开设计工程?426
16.2?例化AXI?Chipscope核?426
16.3导入硬件设计到SDK工具?429
16.4?启动ChipScope?Pro硬件调试器?430
16.5?执行H/S验证?431
第17章?Zynq平台配置和启动的实现?433
17.1?生成SD卡镜像文件并启动?433
17.1.1?SD卡接口?433
17.1.2?复制并打开前面的设计工程?434
17.1.3?创建第一级启动引导?434
17.1.4?创建SD卡启动镜像?435
17.1.5?从SD卡启动引导系统?436
17.2?生成QSPI?Flash镜像并启动?437
17.2.1?QSPI?Flash接口?437
17.2.2?创建QSPI?Flash镜像?438
17.2.3?从QSPI?Flash启动引导系统?439
第18章?基于Zynq?HP从端口的数据传输实现?440
18.1?设计原理?440
18.2?创建设计工程?441
18.3?添加并配置AXI?CDMA到设计?442
18.3.1?添加AXI?CDMA?IP和互联到设计?442
18.3.2?连接AXI?CDMA到设计?443
18.3.3?添加端口连接?446
18.3.4?分配地址空间?447
18.4?使用SDK设计和实现应用工程?448
18.4.1?软件应用的实现原理?448
18.4.2?导入硬件设计到SDK?448
18.4.3?创建新的软件应用工程?449
18.4.4?导入应用程序?449
18.4.5?下载硬件比特流文件到FPGA?457
18.4.6?运行应用工程?457
第19章?基于Zynq?ACP从端口的数据传输实现?459
19.1?设计原理?459
19.2?创建设计工程?459
19.3?配置PS端口?460
19.3.1?配置PS?32位GP?AXI主端口?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?导入硬件设计到SDK?465
19.5.2?创建新的软件应用工程?465
19.5.3?导入应用程序?465
19.5.4?下载硬件比特流文件到FPGA?469
19.5.5?运行应用工程?469
第20章?XADC在Zynq平台上的应用?471
20.1?设计原理?471
20.2?创建设计工程?472
20.3?添加XADC?IP到设计?473
20.4?添加约束到用户约束文件?475
20.4.1?Zedboard板上XADC接口?475
20.4.2?添加约束条件?476
20.5?使用SDK设计和实现应用工程?476
20.5.1?导入硬件设计到SDK工具?476
20.5.2?生成新的应用工程?477
20.5.3?下载硬件比特流文件到FPGA?478
20.5.4?运行应用工程?478
第21章?Ubuntu操作系统在Zynq平台上实现?480
21.1?Ubuntu操作系统环境搭建?480
21.1.1安装虚拟机?480
21.1.2在虚拟机上安装Ubuntu?12.10?485
21.1.3?Linux和windows文件传输工具CuteFTP安装使用?489
21.1.4?Ubuntu相关环境和命令设置?490
21.2?u-boot原理及实现?492
21.2.1?u-boot结构?492
21.2.2?下载u-boot源码?493
21.2.3?u-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.2?SD启动镜像的生成?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.1?App、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文件夹的Xilinx?BSP?519
22.7?基于μC/OS-III操作系统的关键工程文件分析?520
22.7.1?Main()?520
22.7.2?AppTaskStart()?521
22.7.3?AppTaskCreate()?523
22.7.4?AppMutexCreate()?524
22.7.5?AppTask1()?524
22.7.6?AppPrint()?525
22.7.7?app_cfg.h?526
第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?运行CoSimulation?537
23.2.6?实现ISim软件下的仿真?538
23.2.7?使用指令创建Pcore?540
23.2.8生成Pcore核?542
23.3创建处理器系统?543
23.3.1?建立新的设计工程?543
23.3.2?修改处理器系统外设参数设置?544
23.3.3?复制pcore到当前工程?544
23.3.4?例化并连接生成的Pcore?545
23.3.5?添加用户约束到用户约束文件?547
23.4?使用SDK设计和实现应用工程?548
23.4.1?导入设计到SDK?548
23.4.2?生成应用工程?548
23.4.3?导入应用程序?549
23.4.4?验证硬件设计?556
23.4.5?运行应用工程?556?
第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.2?Xilinx?Zynq平台导论?28
1.2.1?Xilinx?Zynq平台功能?28
1.2.2?处理系统PS特性?30
1.2.3?可编程逻辑PL特性?35
1.2.4?互联特性及描述?37
1.2.5?Zynq信号、接口和引脚?39
1.3?Zynq平台设计方法学?46
1.3.1?使用PL实现软件算法的优势?46
1.3.2?设计PL加速器?47
1.3.3?PL加速限制?47
1.3.4?降低功耗?48
1.3.5?实时减负?49
1.3.6?可重配置计算?49
第2章?AMBA协议规范?50
2.1?AMBA规范导论?50
2.2?AMBA?APB规范?51
2.2.1AMBA?APB写传输?51
2.2.2AMBA?APB读传输?52
2.2.3?AMBA?APB错误响应?53
2.2.4操作状态?54
2.2.5AMBA3?APB信号?54
2.3?AMBA?AHB规范?56
2.3.1?AMBA?AHB结构?56
2.3.2?AMBA?AHB操作?58
2.3.3?AMBA?AHB传输类型?60
2.3.4?AMBA?AHB猝发操作?61
2.3.5?AMBA?AHB传输控制信号?64
2.3.6?AMBA?AHB地址译码?66
2.3.7?AMBA?AHB从设备传输响应?67
2.3.8?AMBA?AHB数据总线?70
2.3.9?AMNA?AHB传输仲裁?71
2.3.10?AMBA?AHB分割传输?76
2.3.11?AMBA?AHB复位?79
2.3.12?关于AHB数据总线的位宽?79
2.3.13?AMBA?AHB接口设备?80
2.4?AMBA?AXI4规范?11
2.4.1?AMBA?AXI4概述?错误!未定义书签。
2.4.2?AMBA?AXI4功能?11
2.4.3?AMBA?AXI4互联结构?20
2.4.4?AXI4-Lite功能?22
2.4.5?AXI4-Stream功能?23
第2篇?Zynq-7000体系结构
第3章?Zynq-7000应用处理单元?27
3.1?应用处理单元?27
3.1.1?基本功能?27
3.1.2?系统级视图?29
3.2?Cortex-A9处理器?30
3.2.1?中央处理器?30
3.2.2?L1高速缓存?33
3.2.3?存储器管理单元?34
3.2.4?接口?37
3.2.5?NEON?38
3.2.6?性能监视单元?39
3.3?侦听控制单元?39
3.3.1?地址过滤?39
3.3.2?SCU主设备端口?40
3.4?L2高速缓存?40
3.4.1?互斥?L2-L1高速缓存配置?42
3.4.2?高速缓存替换策略?43
3.4.3?高速缓存锁定?43
3.4.4?使能/禁止?L2高速缓存控制器?44
3.4.5?RAM访问延迟控制?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.6?APU接口?57
3.6.1?PL协处理接口?57
3.6.2?中断接口?60
3.7?APU内的TrustZone?60
3.7.1?CPU安全过渡?61
3.7.2?CP15寄存器访问控制?61
3.7.3?MMU安全性?62
3.7.4?L1缓存安全性?62
3.7.5?安全异常控制?63
3.7.6?CPU调试?TrustZone访问控制?63
3.7.7?SCU寄存器访问控制?63
3.7.8?L2缓存中的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.3?I/O外设?68
3.10.4?SMC存储器?69
3.10.5?SLCR寄存器?69
3.10.6?杂项PS寄存器?70
3.10.7?CPU私有总线寄存器?70
3.11?中断?70
3.11.1?中断环境?71
3.11.2?中断控制器的功能?72
3.11.3?编程模型?76
3.12?定时器?77
3.12.1?CPU私有定时器和看门狗定时器?77
3.12.2?全局定时器?78
3.12.3?系统看门狗定时器?79
3.12.4?三重定时器/计数器?81
3.12.5?I/O信号?84
3.13?DMA控制器?85
3.13.1?DMA控制器结构及特性?85
3.13.2?DMA控制器功能?89
3.13.3?外部信号?99
3.13.4.寄存器描述?101
3.13.5.用于管理器和命令的指令集参考?102
3.13.6?编程模型参考?103
3.13.7?编程限制?109
3.13.8?DMAC?IP配置选项?111
第4章?Zynq-7000可编程逻辑资源?112
4.1?Zynq-7000可编程逻辑资源特性?112
4.2?可编程逻辑资源功能?114
4.2.1?CLB,Slice和LUT?114
4.2.2?时钟管理?114
4.2.3?块RAM?115
4.2.4?数字信号处理-DSP?Slice?116
4.2.5?输入/输出?117
4.2.6?低功耗串行收发器?118
4.2.7?PCI-E模块?119
4.2.8?XADC(模拟-数字转换器)?120
4.2.9?配置?120
第5章?系统互连结构?122
5.1?系统互连功能及特性?122
5.1.1?数据路径?124
5.1.2?时钟域?125
5.1.3?连接性?126
5.1.4?AXI?ID?127
5.5.5?寄存器概述?128
5.2?服务质量?128
5.2.1?基本仲裁?128
5.2.2?高级QoS?128
5.2.3?DDR端口仲裁?129
5.3?AXI_HP接口?129
5.3.1?AXI_HP接口结构及特点?129
5.3.2?接口数据宽度?133
5.3.3?交易类型?134
5.3.4?命令交替和重新排序?135
5.3.5?性能优化总结?135
5.4?AXI_ACP接口?136
5.5?AXI_GP接口?137
5.6?AXI信号总结?137
5.7?PL接口选择?139
5.7.1?使用通用主设备端口的Cortex-A9?140
5.7.2?通过通用主设备的PS?DMA控制器(DMAC)?141
5.7.3?通过高性能接口的PL?DMA?142
5.7.4?通过AXI?ACP的PL?DMA?143
5.7.5?通过通用AXI从(GP)的PL?DMA?144
第6章?系统公共资源特性及功能?145
6.1?时钟子系统?145
6.1.1?时钟系统结构及功能?145
6.1.2?CPU时钟域?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.1?JTAG和DAP子系统?158
7.1.1?JTAG和DAP系统功能描述?160
7.1.2?JTAG和DAP系统I/O信号?162
7.1.3?编程模型?163
7.1.4?ARM?DAP控制器?164
7.1.5?跟踪端口接口单元TPIU?165
7.1.6?Xilinx?TAP控制器?165
7.2?CoreSight系统结构及功能?166
7.2.1?CoreSight结构?166
7.2.2?CoreSight功能?167
第8章?Zynq平台的启动和配置?172
8.1?Zynq平台启动和配置功能?172
8.2?外部启动要求?173
8.3?BootROM?175
8.3.1?BootROM功能?175
8.3.2?BootROM头部?178
8.3.3?启动设备?180
8.3.4?BootROM多启动和启动分区查找?184
8.3.5?调试状态?186
8.3.6?BootROM后状态?187
8.4?器件配置接口?189
8.4.1?器件配置接口功能?191
8.4.2?器件配置流程?193
8.4.3?PL配置?196
8.4.4?寄存器集合?197
第9章?Zynq平台主要外设模块?199
9.1?DDR存储器控制器?199
9.1.1?DDR存储器控制器接口及功能?200
9.1.2?AXI存储器端口接口?202
9.1.3?DDR核交易调度器?204
9.1.4?DDRC仲裁?204
9.1.5?DDR控制器PHY?206
9.1.6?DDR初始化和标定?206
9.1.7?纠错码?207
9.2?静态存储器控制器?208
9.2.1?静态存储器控制器接口及功能?209
9.2.2?静态存储器控制器和存储器的信号连接?210
9.3?四-SPI?Flash控制器?212
9.3.1?四-SPI?Flash控制器功能?213
9.3.2?四-SPI控制器反馈时钟?216
9.3.3?四-SPI?Flash控制器接口?216
9.4?SD/SDIO外设控制器?218
9.4.1?SD/SDIO控制器功能?219
9.4.2?SD/SDIO控制器传输协议?221
9.4.3?SD/SDIO控制器接口信号连接?223
9.5?通用输入输出控制器?225
9.5.1?通用输入输出GPIO接口及功能?226
9.5.2?通用输入输出GPIO中断功能?227
9.6?USB主机、设备和OTG控制器?229
9.6.1?USB控制器接口及功能?230
9.6.2?USB主机操作模式?233
9.6.3?USB设备操作模式?235
9.6.4?USB?OTG操作模式?238
9.7?吉比特以太网控制器?239
9.7.1?吉比特以太网控制器接口及功能?240
9.7.2?吉比特以太网控制器接口编程向导?242
9.7.3?吉比特以太网控制器接口信号连接?246
9.8?SPI控制器?248
9.8.1?SPI控制器的接口及功能?249
9.8.2?SPI控制器时钟设置规则?251
9.9?CAN控制器?252
9.9.1?CAN控制器接口及功能?252
9.9.2?CAN控制器操作模式?255
9.9.3?CAN控制器消息保存?256
9.9.4?CAN控制器接收过滤器?256
9.9.5?CAN控制器编程模型?257
9.10?UART控制器?260
9.10.1?UART控制器接口及功能?261
9.11?I2C控制器?264
9.11.1?I2C速度控制逻辑?265
9.11.2?I2C控制器的功能和工作模式?265
9.12?ADC转换器接口?268
9.12.1?ADC转换器功能?269
9.12.2?ADC命令格式?269
9.12.3?供电传感器报警?270
9.13?PCI-E接口?271
第10章?Zynq平台描述规范?273
10.1?Zynq平台文件描述规范功能集?273
10.2?微处理器硬件规范?273
10.2.1?通用微处理器硬件规范?274
10.2.2?AXI系统微处理器硬件规范?275
10.2.3?Zynq-7000系统微处理器规范实例?276
10.3?微处理器外设规范?280
10.3.1?微处理器规范框架?280
10.3.2总线接口规范?283
10.3.3?IO接口规范?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.4?MDD/MLD指定参数?302
10.6.5?OS指定参数?302
10.6.6?处理器指定参数?303
10.7?微处理器库定义?303
10.7.1?库定义文件?303
10.7.2?MLD格式规范?304
10.7.3?MLD参数描述?307
10.7.4?设计规则检查?309
10.7.5?库产生?309
10.8?微处理器驱动定义?309
10.8.1?驱动定义文件?310
10.8.2?MDD格式规范?310
10.9?Xilinx板描述格式?312
10.9.1?XBD格式?313
10.9.2?属性命令?313
10.9.3?本地参数命令及子属性?314
10.9.4?本地端口命令及子属性?315
10.9.5?使用IO_INTERFACE关联IP?315
10.9.6?AXI系统XBD格式?316
第11章?高级综合工具HLS?320
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.3?Vivado?HLS工具的优势?326
11.4?C代码的关键属性?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.5?HLS内提供的用于时钟测量的术语?335
第3篇?Zynq-7000设计实战
第12章?Zynq基本处理系统的建立和运行?338
12.1使用BSB向导生成Zynq基本系统?338
12.1.1?Zynq硬件系统的生成?338
12.1.2生成Hello?World应用工程?346
12.1.3运行Hello?World应用工程?350
12.2?生成和运行存储器测试工程?352
12.2.1?导入前面的XPS设计到SDK?352
12.2.2?生成存储器测试工程?352
12.2.3运行存储器测试工程?355
12.2.4调试存储器测试工程?356
12.3?生成和运行外设测试工程?358
12.3.1?导入前面的XPS设计到SDK?359
12.3.2?生成外设测试工程?359
12.3.3运行外设测试工程?364
第13章?添加AXI?IP到设计?366
13.1?设计原理?366
13.2?添加IP到系统设计?367
13.2.1?创建设计工程?367
13.2.2?添加GPIO?IP到设计?368
13.2.3?添加AXI?Timer?IP到设计?370
13.2.4?连接中断源到PS?371
13.2.5?通过EMIO将PS的GPIO连接到PL?372
13.2.6?添加约束到约束文件?374
13.3?使用SDK设计和实现应用工程?374
13.3.1?导入前面的XPS设计到SDK?374
13.3.2生成应用工程?374
13.3.3?运行应用工程?382
第14章?基于定制IP实现简单嵌入式系统设计?383
14.1创建设计工程?384
14.2?定制GPIO?IP核?384
14.2.1?产生GPIO?IP模版?384
14.2.2?基于模板构建完整GPIO?IP?391
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下载硬件比特流文件到FPGA?400
14.5.7?运行应用工程?400
14.5.8?使用XMD分析目标文件?401
第15章?基于定制IP实现复杂嵌入式系统设计?402
15.1?设计原理?402
15.1.1?VGA?IP核的设计原理?402
15.1.2移位寄存器IP核的设计原理?404
15.2创建设计工程?405
15.3?定制VGA?IP核?406
15.3.1?产生VGA?IP模版?406
15.3.2?基于模板构建完整VGA?IP?407
15.4?定制移位寄存器IP核?412
15.4.1?产生shifter?IP模版?412
15.4.2?基于模板构建完整?shifter?IP?413
15.5?添加和连接VGA?IP核?416
15.6?添加和连接shifter?IP核?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?下载硬件比特流文件到FPGA?424
15.8.7?运行应用工程?424
第16章?软件和硬件协同调试系统?426
16.1?复制并打开设计工程?426
16.2?例化AXI?Chipscope核?426
16.3导入硬件设计到SDK工具?429
16.4?启动ChipScope?Pro硬件调试器?430
16.5?执行H/S验证?431
第17章?Zynq平台配置和启动的实现?433
17.1?生成SD卡镜像文件并启动?433
17.1.1?SD卡接口?433
17.1.2?复制并打开前面的设计工程?434
17.1.3?创建第一级启动引导?434
17.1.4?创建SD卡启动镜像?435
17.1.5?从SD卡启动引导系统?436
17.2?生成QSPI?Flash镜像并启动?437
17.2.1?QSPI?Flash接口?437
17.2.2?创建QSPI?Flash镜像?438
17.2.3?从QSPI?Flash启动引导系统?439
第18章?基于Zynq?HP从端口的数据传输实现?440
18.1?设计原理?440
18.2?创建设计工程?441
18.3?添加并配置AXI?CDMA到设计?442
18.3.1?添加AXI?CDMA?IP和互联到设计?442
18.3.2?连接AXI?CDMA到设计?443
18.3.3?添加端口连接?446
18.3.4?分配地址空间?447
18.4?使用SDK设计和实现应用工程?448
18.4.1?软件应用的实现原理?448
18.4.2?导入硬件设计到SDK?448
18.4.3?创建新的软件应用工程?449
18.4.4?导入应用程序?449
18.4.5?下载硬件比特流文件到FPGA?457
18.4.6?运行应用工程?457
第19章?基于Zynq?ACP从端口的数据传输实现?459
19.1?设计原理?459
19.2?创建设计工程?459
19.3?配置PS端口?460
19.3.1?配置PS?32位GP?AXI主端口?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?导入硬件设计到SDK?465
19.5.2?创建新的软件应用工程?465
19.5.3?导入应用程序?465
19.5.4?下载硬件比特流文件到FPGA?469
19.5.5?运行应用工程?469
第20章?XADC在Zynq平台上的应用?471
20.1?设计原理?471
20.2?创建设计工程?472
20.3?添加XADC?IP到设计?473
20.4?添加约束到用户约束文件?475
20.4.1?Zedboard板上XADC接口?475
20.4.2?添加约束条件?476
20.5?使用SDK设计和实现应用工程?476
20.5.1?导入硬件设计到SDK工具?476
20.5.2?生成新的应用工程?477
20.5.3?下载硬件比特流文件到FPGA?478
20.5.4?运行应用工程?478
第21章?Ubuntu操作系统在Zynq平台上实现?480
21.1?Ubuntu操作系统环境搭建?480
21.1.1安装虚拟机?480
21.1.2在虚拟机上安装Ubuntu?12.10?485
21.1.3?Linux和windows文件传输工具CuteFTP安装使用?489
21.1.4?Ubuntu相关环境和命令设置?490
21.2?u-boot原理及实现?492
21.2.1?u-boot结构?492
21.2.2?下载u-boot源码?493
21.2.3?u-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.2?SD启动镜像的生成?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.1?App、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文件夹的Xilinx?BSP?519
22.7?基于μC/OS-III操作系统的关键工程文件分析?520
22.7.1?Main()?520
22.7.2?AppTaskStart()?521
22.7.3?AppTaskCreate()?523
22.7.4?AppMutexCreate()?524
22.7.5?AppTask1()?524
22.7.6?AppPrint()?525
22.7.7?app_cfg.h?526
第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?运行CoSimulation?537
23.2.6?实现ISim软件下的仿真?538
23.2.7?使用指令创建Pcore?540
23.2.8生成Pcore核?542
23.3创建处理器系统?543
23.3.1?建立新的设计工程?543
23.3.2?修改处理器系统外设参数设置?544
23.3.3?复制pcore到当前工程?544
23.3.4?例化并连接生成的Pcore?545
23.3.5?添加用户约束到用户约束文件?547
23.4?使用SDK设计和实现应用工程?548
23.4.1?导入设计到SDK?548
23.4.2?生成应用工程?548
23.4.3?导入应用程序?549
23.4.4?验证硬件设计?556
23.4.5?运行应用工程?556?
????何宾,长期从事数字系统EDA方面教学与科研工作。在全国进行大学生电子设计竞赛极力推进FPGA专题方面的培训工作,在EDA教学与科研应用方面积累了丰富的经验。已出版相关图书《EDA原理及Verilog实现》、《EDA原理及VHDL实现》、《基于AXI4的可编程SOC系统设计》、《Xilinx?FPGA设计权威指南》等10本深受读者喜欢的Xilinx?FPGA图书。?
????《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嵌入式系统设计中的应用。
比价列表
公众号、微信群

微信公众号

实时获取购书优惠