书籍详情

CPU源代码分析与芯片设计及Linux移植

CPU源代码分析与芯片设计及Linux移植

作者:倪断利,陈曦,李挥 著

出版社:电子工业出版社

出版时间:2007-04-01

ISBN:9787121039843

定价:¥89.80

购买这本书可以去
内容简介
  本书全面系统地讲解了CPU的芯片设计技术。书中详细分析了开放源代码32位RISC CPU(or1200)的源代码、编译器的移植、Linux操作系统的移植,介绍了CPU源代码在FPGA上的实现方法,说明了CPU芯片的全定制设计方法。作者不仅分析了源代码,而且进行了芯片设计实现,并详细讲述了设计方法。本书的内容全面、深入、系统,融入了作者长期的芯片设计经验,这使本书对开发人员更有实际的指导意义。本书主要针对从事芯片设计的中高级读者及芯片设计工程师,也适合作为大学教材和参考书。
作者简介
  倪继利,毕业于清华大学电子工程系,获通信与电子系统专业硕士学位,在国际知名大公司多年从事Linux开发工作,已出版与Linux相关专著有《Linux内核分析及编程》和《Qt及Linux操作系统窗口设计》。
目录
第1章  CPU构架概述    1
1.1  计算机体系结构概述    1
1.1.1  计算机系统分类    2
1.1.2  微处理器概述    4
1.1.3  处理器的性能度量    5
1.1.4  RISC CPU的结构    5
1.2  标量流水线技术    6
1.2.1  流水线分类    7
1.2.2  线性流水线的性能分析    8
1.2.3  流水线相关    11
1.2.4  OR1200 CPU流水线    13
1.3  超标量构架    14
1.3.1  超标量流水线    15
1.3.2  分支预测技术    16
1.3.3  指令的动态调度    22
1.3.4  存储器数据流技术    28
1.4  超长指令构架    31
1.4.1  概述    32
1.4.2  RISC,CISC与VLIW构架的区别    32
1.4.3  VLIW构架的编译器优化    34
1.5  处理器介绍    36
1.5.1  超标量处理器——Core微构架    36
1.5.2  标量处理器实例    38
第2章  OR1200构架    42
2.1  OpenRISC概述    42
2.1.1  寻址模式    43
2.1.2  位和字节次序    43
2.1.3  寄存器集    44
2.1.4  指令集及指令格式    47
2.1.5  例外模型    55
2.1.6  内存管理    58
2.1.7  高速缓存模型和高速缓存一致性    60
2.1.8  调试单元(可选)    62
2.1.9  执行计数单元(可选)    63
2.1.10  电源管理(可选)    63
2.1.11  可编程中断控制器(可选)    63
2.1.12  Tick定时器(可选)    64
2.2  OR1200构架    64
2.2.1  CPU/DSP核心    65
2.2.2  数据和指令高速缓存    67
2.2.3  数据与指令MMU    68
2.2.4  可编程的中断控制器    70
2.2.5  Tick定时器    71
2.2.6  电源管理支持    71
2.2.7  调试单元    71
2.2.8  时钟与复位    72
2.2.9  Wishbone接口    72
2.3  OR1200核心寄存器    72
2.4  OR1200的IO接口说明    73
2.5  OR1200核心硬件配置    76
第3章  Wishbone片上总线    77
3.1  概述    77
3.2  基本特点    78
3.3  接口信号定义    79
3.4  Wishbone支持的互联类型    81
3.5  Wishbone总线周期    82
3.5.1  一般操作    82
3.5.2  单次读/写周期    83
3.5.3  块读周期    85
3.5.4  块写周期    86
3.5.5  RMW操作    87
3.5.6  数据组织    88
3.6  Wishbone寄存反馈总线周期    89
3.6.1  周期的同步与异步结束方式之对比    89
3.6.2  Wishbone寄存反馈周期结束方式    90
3.6.3  突发结束    91
3.6.4  地址不变突发    92
3.6.5  地址增加突发    93
3.7  Wishbone规范对IP文档的要求    94
3.8  Wishbone从设备接口示例    94
3.8.1  一台8位从设备    94
3.8.2  一台32位RTL级随机
3.8.2  数生成器从设备    95
3.9  Wishbone对RAM/ROM的支持    97
3.9.1  Wishbone与RAM和ROM的互联    97
3.9.2  Wishbone兼容的RAM和
3.9.2  Flash仿真模型    97
3.10  Wishbone点到点连接示例    99
3.11  Wishbone共享总线连接示例    99
3.12  地址译码    101
3.13  仲裁器的设计    102
3.14  小结    103
第4章  CPU/DSP核心    104
4.1  CPU/DSP核心    104
4.1.1  CPU/DSP核心模块的接口    104
4.1.2  CPU/DSP源代码模块功能说明    106
4.1.3  CPU/DSP核心模块流水线    107
4.1.4  CPU/DSP核心寄存器说明    107
4.1.5  OR1200的数据流程    108
4.2  IF级    109
4.2.1  genpc源代码模块    109
4.2.2  if模块    112
4.3  ID级    115
4.3.1  ctrl模块接口说明    115
4.3.2  ctrl模块源代码分析    117
4.4  EX级    126
4.4.1  operandmuxes模块    126
4.4.2  alu模块    129
4.4.3  (乘法器)mult_mac模块    134
4.5  系统控制模块    138
4.5.1  sprs模块    139
4.5.2  cfgr模块    147
4.5.3  except模块    150
4.5.4  freeze模块    158
4.6  MA级(lsu模块)    161
4.7  WB级    167
4.7.1  wbmux源代码模块    167
4.7.2  rf模块    169
第5章  OpenRISC存储系统    175
5.1  概述    175
5.1.1  现代计算机存储系统原理    175
5.1.2  OpenRISC存储系统构成    177
5.1.3  虚拟存储系统的工作原理    177
5.1.4  MMU寄存器说明    182
5.2  OpenRISC的高速缓存    185
5.2.1  一般高速缓存的工作原理    185
5.2.2  OpenRISC高速缓存的工作原理    187
5.2.3  Cache读写操作的总线周期    188
5.2.4  dcache寄存器    190
5.3  OpenRISC的虚拟存储系统源码分析    191
5.3.1  OR1200_dmmu_top模块源码分析    191
5.3.2  OR1200_dmmu_tlb模块源码分析    193
5.4  OpenRISC高速缓存的源码分析    196
5.4.1  OR1200_dc_top模块    196
5.4.2  OR1200数据缓冲存储器    199
5.4.3  OR1200_dc_fsm模块    200
5.5  片上存储器QMEM    205
第6章  OpenRISC的主要外设    212
6.1  概述    212
6.2  写缓冲模块OR1200_sb    212
6.3  总线接口单元模块OR1200_wb_biu    215
6.4  计时器模块OR1200_tt    220
6.5  可编程中断控制器模块OR1200_pic    223
6.6  电源管理模块OR1200_pm    225
第7章  OpenRISC调试接口    230
7.1  OR1200的调试功能概述    230
7.2  调试单元OR1200_du模块    231
7.2.1  调试单元的寄存器定义    231
7.2.2  调试单元的源码分析    237
7.3  JTAG开发接口模块    245
7.3.1  JTAG开发接口模块的工作原理    245
7.3.2  OR1200与JTAG开发接口的连接    246
7.3.3  JTAG调试接口的顶层模块dbg_top    246
7.3.4  Dbg_registers和Dbg_trace模块    261
7.4  小结    269
第8章  编译器移植    270
8.1  编译过程简介    270
8.1.1  编译流程    270
8.1.2  编译过程中的优化概述    271
8.1.3  编译程序组成    275
8.2  GNU开发工具链    276
8.2.1  GCC 4.0简介    277
8.2.2  binutils工具    280
8.2.3  gdb调试工具    281
8.3  RTL语言    282
8.3.1  平台描述及抽象机标准指令    283
8.3.2  RTL语法简介    285
8.3.3  RTL示例    286
8.3.4  标准指令模式    288
8.4  OR32平台GCC编译器移植    289
8.4.1  标准指令模式的实现方法    290
8.4.2  or32.md文件    290
8.4.3  define_expand功能扩展    293
8.5  OR32平台binutils的移植    294
8.5.1  指令编码接口    295
8.5.2  目标文件平台相关信息宏定义    298
8.5.3  opcodes库    300
8.6  OR32工具链的编译安装    303
第9章  Linux平台移植    306
9.1  编写OR32复位例外    306
9.1.1  reset(复位)例外    307
9.1.2  初始化内存管理器(函数_mc_init)    307
9.1.3  初始化UART(函数_early_uart_init)    309
9.1.4  CPU启动函数_start    309
9.1.5  IC和DC的启动    311
9.1.6  用于例外调试的宏定义    312
9.2  内核启动(函数start_kernel)    315
9.2.1  中断操作    316
9.2.2  tick定时器底层接口函数    320
9.3  内核启动时建立
9.3  平台(函数setup_arch)    321
9.3.1  TLB管理底层接口函数    322
9.3.2  OR32控制台驱动程序    323
9.4  例外处理    324
9.4.1  通用例外入口处理宏    325
9.4.2  出入例外的现场保护    327
9.4.3  返回处理    328
9.4.4  页错误处理例程    330
9.4.5  外部中断例外处理    332
9.4.6  DTLB/ITLB失靶例外处理    333
9.4.7  启动的DTLB/ITLB失靶处理    335
9.4.8  系统调用例外处理    336
9.5  运行时用到的底层接口    337
9.5.1  线程创建及切换    337
9.5.2  硬件配置    339
9.5.3  定义小于1ms的延迟函数    340
9.5.4  ELF相关定义    340
9.5.5  用户与内核空间之间的数据传递    340
9.5.6  系统调用参数处理    343
9.5.7  寄存器及栈    344
9.6  Linux移植    345
9.6.1  or1ksim仿真器    345
9.6.2  OpenRISC参考平台    348
第10章  OpenRISC参考设计
第10章  与FPGA移植    349
10.1  OpenRISC的功能验证    349
10.1.1  处理器设计中的功能验证    349
10.1.2  OR1200的基本验证    349
10.1.3  OpenRSIC参考验证
10.1.3  平台ORP_SOC    353
10.2  ORP_SOC的FPGA移植    355
10.2.1  FPGA开发流程    355
10.2.2  Altera Cyclone II
10.2.2  FPGA的架构与资源    357
10.2.3  ORP_SOC到Altera FPGA的移植    358
10.3  FPGA开发板的设计与使用    364
第11章  开放源代码以太网MAC控制器IP    366
11.1  开放源代码以太网媒体
11.1  访问控制器IP    366
11.1.1  以太网媒体访问控制协议概要    366
11.1.2  ORP_SoC的以太网
11.1.2  MAC控制器IP核的主要特点    368
11.2  以太网MAC控制器IP顶层模块    368
11.2.1  功能    368
11.2.2  以太网MAC控制器IP
11.2.2  顶层模块的源码分析    369
11.3  MII接口模块    373
11.3.1  MII接口模块的功能    373
11.3.2  MII接口顶层模块源代码分析    375
11.3.3  MII时钟生成模块    379
11.3.4  MII移位输出模块    379
11.3.5  MII输出控制模块    381
11.4  以太网数据发送模块    381
11.4.1  以太网MAC数据发送
11.4.1  模块功能描述    381
11.4.2  以太网MAC数据顶层
11.4.2  模块顶层模块    382
11.4.3  以太网MAC数据发送
11.4.3  控制状态机模块    386
11.4.4  以太网MAC数据发送
11.4.4  计数器模块    388
11.4.5  发送随机数产生模块    389
11.5  以太网数据接收模块    390
11.5.1  以太网MAC数据接收模块的功能    390
11.5.2  以太网MAC数据接收顶层模块    390
11.5.3  以太网MAC数据接收状态机    393
11.5.4  以太网MAC数据接收计数器模块    394
11.5.5  以太网MAC数据
11.5.5  接收地址校验模块    396
11.6  以太网MAC控制模块    397
11.6.1  以太网MAC控制模块的功能    397
11.6.2  以太网MAC控制模块的顶层模块    398
11.6.3  以太网MAC发送控制模块    401
11.6.4  以太网MAC接收控制模块    403
11.7  以太网MAC状态模块    406
11.8  以太网MAC寄存器模块    408
11.9  以太网MAC Wishbone接口模块    411
11.9.1  功能描述    411
11.9.2  源代码分析    413
11.10  小结    436
第12章  USB设备功能模块    437
12.1  USB 2.0包标识符及传输控制概述    437
12.2  USB IP核的整体结构    438
12.2.1  USB 2.0 IP核模块组成说明    438
12.2.2  USB数据缓冲与传递    441
12.2.3  USB功能模块的源代码组织    444
12.3  寄存器文件模块usbf_rf    444
12.3.1  USB寄存器功能说明    444
12.3.2  模块usbf_rf源代码分析    448
12.3.3  端点寄存器文件    452
12.4  Wishbone接口模块usbf_wb    457
12.5  内存缓冲区仲裁器
12.5  模块usbf_mem_arb    459
12.6  协议层模块    460
12.6.1  IDMA模块    461
12.6.2  协议引擎模块    468
12.6.3  包装配模块    480
12.6.4  包拆卸模块    484
12.7  UTMI接口模块    487
12.7.1  UTMI标准说明    487
12.7.2  模块usbf_utmi_if源代码分析    489
12.7.3  USB连线状态及速度协调模块    490
第13章  全定制芯片设计方法    502
13.1  集成电路设计概述    502
13.1.1  集成电路的设计分类    502
13.1.2  FPGA到ASIC设计的转换    502
13.2  芯片设计流程    503
13.2.1  EDA工具介绍    504
13.2.2  前端设计概述    504
13.2.3  后端设计概述    505
13.3  DC工具综合    507
13.3.1  DC工具综合的基本流程说明    508
13.3.2  综合的基本概念    510
13.3.3  DC的工艺库信息说明    513
13.3.4  DC的命令说明    518
13.3.5  ORP的综合    522
13.4  PrimeTime静态时序分析    527
13.4.1  静态时序分析概述    527
13.4.2  PrimeTime用户流程    529
13.5  可测性设计    530
13.5.1  DFT技术概述    531
13.5.2  DFT Compiler流程    535
13.5.3  ATPG工具TetraMAX    537
13.6  自动布局布线    540
13.7  版图的物理验证    562
13.7.1  DRC流程    562
13.7.2  LVS流程    568
附录A  循环冗余校验算法分析与实现    570
附录B  基于元胞自动机和线性反馈移
附录B  位寄存器的硬件随机数生成器    579
附录C  Verilog RTL设计中的常见问题    587
参考文献    595
猜您喜欢

读书导航