第1章 SOPC设计导论 1
1.1SOPC概述 1
1.1.1软核及硬核处理器 1
1.1.2SOPC技术的发展 2
1.1.3SOPC技术特点 3
1.2SOPC设计与优化技术 4
1.2.1SOPC设计技术 4
1.2.2通用SOPC优化技术 6
1.2.3专用SOPC优化技术 8
1.3Xilinx的SOPC芯片 10
1.3.1Spartan-3系列FPGA 10
1.3.2Virtex-ⅡPro系列FPGA 12
1.3.3Virtex-4系列FPGA 12
1.3.4Virtex-5系列FPGA 13
第2章 MicroBlaze处理器原理 15
2.1MicroBlaze处理器结构 15
2.1.1MicroBlaze处理器结构概述 15
2.1.2MicroBlaze处理器的寄存器 20
2.1.3MicroBlaze处理器的虚拟存储器管理 28
2.1.4MicroBlaze处理器的事件及处理 35
2.1.5MicroBlaze处理器的指令和数据缓存 39
2.1.6MicroBlaze处理器的调试和跟踪 41
2.2MicroBlaze信号接口 42
2.2.1PLB总线接口 42
2.2.2OPB总线接口 44
2.2.3LMB总线接口 45
2.2.4FSL接口 46
2.2.5XCL接口 48
2.2.6调试接口 51
2.2.7跟踪接口 51
2.3MicroBlaze应用二进制接口 53
2.3.1堆栈规约 53
2.3.2存储器模型 54
2.3.3中断和异常句柄 54
2.4MicroBlaze指令集结构 55
2.4.1MicroBlaze指令类型 55
2.4.2MicroBlaze指令集 56
第3章 PowerPC处理器原理 64
3.1PowerPC处理器结构 64
3.1.1PowerPC处理器体系结构概述 64
3.1.2PowerPC软件结构概述 67
3.1.3PowerPC寄存器 68
3.2PowerPC处理器I/O接口 69
3.2.1时钟和电源管理接口 70
3.2.2CPU控制接口 72
3.2.3复位接口 72
3.2.4指令侧的PLB接口 73
3.2.5数据侧的PLB接口 74
3.2.6设备控制寄存器接口 76
3.2.7外部中断控制器接口 78
3.2.8PPC405 JTAG调试端口 79
3.2.9调试接口 80
3.2.10跟踪接口 81
3.2.11处理器版本寄存器接口 82
3.2.12额外的FPGA指定信号 83
3.3PowerPC处理器OCM控制器 83
3.3.1OCM控制器特点 84
3.3.2OCM控制器的操作 85
3.3.3OCM的编程模型 86
3.4PowerPC处理器APU控制器 88
3.4.1FCM指令处理 89
3.4.2APU控制器配置 92
第4章 SOPC开发平台结构 94
4.1设计流程及EDK工具概述 94
4.1.1设计流程概述 94
4.1.2EDK工具概述 95
4.1.3工程建立和管理 102
4.2平台产生器 103
4.2.1Platgen工具的命令格式 103
4.2.2加载路径 103
4.2.3输出文件 104
4.2.4存储器的产生 104
4.3仿真模型产生器 106
4.3.1仿真库 106
4.3.2CompXLib/CompEDKLib工具 107
4.3.3仿真模型 107
4.3.4Simgen命令格式 108
4.3.5输出文件 109
4.3.6存储器初始化 109
4.4库产生器 110
4.4.1库产生器命令的选择项 110
4.4.2加载路径 110
4.4.3输出文件 112
4.4.4生成库和驱动 113
4.4.5中断和中断控制器 115
4.4.6XMDStub外设(MicroBlaze指定) 115
4.4.7STDIN和STDOUT外设 115
4.5虚拟平台产生器 115
4.5.1VPgen命令选项 116
4.5.2输出文件 116
4.5.3可使用的模型 116
4.6平台规范工具 117
4.6.1PsfUtility命令选项 117
4.6.2MPD的创建 117
4.6.3PsfUtility的DRC检查 118
4.6.4HDL外设定义 119
4.7版本管理工具 131
4.8比特流初始化软件 131
4.9Flash存储器编程 132
4.9.1支持的Flash硬件 132
4.9.2编程的先决条件 133
4.9.3编程对话框 133
4.9.4定制Flash编程 134
4.9.5可操作的特点和方法 136
4.9.6使用Flash存储器 137
4.10GNU编译器工具 137
4.10.1编译器框架 138
4.10.2编译器使用及选项 138
4.10.3MicroBlaze编译器 145
4.10.4PowerPC编译器 151
4.11GNU调试器 154
4.11.1GNU选项 154
4.11.2GDB调试流程 154
4.11.3MicroBlaze的GDB目标 154
4.11.4PowerPC的GDB目标 155
4.11.5控制台模式 155
4.12Xilinx微处理器调试器 156
4.12.1XMD的使用 157
4.12.2连接命令选项 160
4.12.3XMD内部TCL命令 166
4.13系统ACE文件产生器 167
4.13.1GenACE模型 167
4.13.2产生ACE文件 169
第5章 SOPC描述规范 173
5.1微处理器硬件规范 173
5.2微处理器外设规范 177
5.2.1MPD语法 177
5.2.2总线接口 181
5.2.3IO接口 181
5.2.4选项 181
5.2.5参数 184
5.2.6端口 185
5.2.7保留参数 186
5.2.8保留的端口连接 186
5.2.9设计考虑 189
5.3外设分析命令 191
5.4黑盒定义 192
5.5微处理器软件规范 193
5.5.1MSS关键字 194
5.5.2全局参数 195
5.5.3实例特定参数 196
5.5.4MDD/MLD特定参数 197
5.5.5OS特定参数 197
5.5.6处理器特定参数 197
5.6微处理器库定义 198
5.6.1库定义文件 198
5.6.2MLD格式规范 199
5.6.3MLD参数描述 202
5.6.4设计规则检查 204
5.6.5库产生 204
5.7微处理器驱动定义 204
5.8Xilinx板描述格式 207
5.8.1XBD格式 207
5.8.2属性命令 208
5.8.3本地参数命令及子属性 209
5.8.4本地端口命令及子属性 209
5.8.5使用IO_INTERFACE关联IP 210
5.8.6使用IO_INTERFACE桥接IP 211
第6章 操作系统及板级支持包 212
6.1Xilinx的微核 212
6.1.1标准C库 213
6.1.2板级支持包 215
6.1.3Xilkernel核 221
6.1.4LibXil库 233
6.2lwIP库 237
6.2.1建立硬件系统 238
6.2.2建立软件系统 238
6.2.3软件API 242
6.3VxWorks操作系统的板级支持包 244
6.3.1概述 244
6.3.2使用XPS产生VxWorks6.5 BSP 245
6.3.3VxWorks6.5 BSP 246
6.3.4引导VxWorks 250
6.3.5缓存、MMU和FPU 256
6.4Linux操作系统下的板级支持包 257
6.4.1概述 257
6.4.2开始Linux 258
6.4.3从XPS创建BSP 259
6.4.4Linux核配置 261
6.4.5Linux设备参考 270
第7章 基于EDK的设计流程 273
7.1工程的建立 273
7.1.1使用BSP向导 273
7.1.2新建工程的结构分析 277
7.1.3工程的下载 279
7.2添加IP到硬件设计 279
7.2.1打开工程 279
7.2.2添加和配置GPIO外设 280
7.2.3产生外部GPIO连接 282
7.2.4添加软件程序并编译 283
7.2.5设计验证 283
7.3添加定制的IP到系统 285
7.3.1打开工程 285
7.3.2产生外设模板 285
7.3.3创建外设 289
7.3.4添加和连接外设 291
7.3.5设计验证 293
7.4编写应用程序 294
7.4.1添加BRAM控制器和BRAM 294
7.4.2更新软件应用程序 295
7.4.3分析目标文件 296
7.4.4设计验证 298
7.5使用SDK工具 299
7.5.1添加定时器和中断控制器 299
7.5.2创建SDK软件工程 301
7.5.3编写中断句柄 303
7.5.4添加连接脚本 304
7.5.5验证操作 304
7.6设计的软件和硬件调试 307
7.6.1打开工程 308
7.6.2例化ChipScope核 308
7.6.3启动软件调试器 309
7.6.4启动ChipScope Pro硬件调试器 311
7.6.5执行H/S验证 312