[好书推荐]CPU源代码分析与芯片设计及Linux移植

milex 2007-10-25 12:01:59
CPU核心技术的深入剖析,国内第一本介绍实用32位CPU逻辑实现及将CPU设计成芯片版图方法的著作!

本书全面系统地讲解了CPU的芯片设计技术。书中详细分析了开放源代码32位RISC CPU(or1200)的源代码、编译器的移植、Linux操作系统的移植,介绍了CPU源代码在FPGA上的实现方法,说明了CPU芯片的全定制设计方法。

作者不仅分析了源代码,而且进行了芯片设计实现,并详细讲述了设计方法。本书的内容全面、深入、系统,融入了作者长期的芯片设计经验,这使本书对开发人员更有实际的指导意义。

本书主要针对从事芯片设计的中高级读者及芯片设计工程师,也适合作为大学教材和参考书。

第1章 CPU构架概述
1.1 计算机体系结构概述
1.2 标量流水线技术
1.3 超标量构架
1.4 超长指令构架
1.5 处理器介绍
第2章 OR1200构架
 2.1 OpenRISC概述
 2.2 OR1200构架
 2.3 OR1200核心寄存器
 2.4 OR1200的IO接口说明
 2.5 OR1200核心硬件配置
第3章 Wishbone片上总线
 3.1 概述
 3.2 基本特点
 3.3 接口信号定义
 3.4 Wishbone支持的互联类型
 3.5 Wishbone总线周期
 3.6 Wishbone寄存反馈总线周期
 3.7 Wishbone规范对IP文档的要求
 3.8 Wishbone从设备接口示例
 3.9 Wishbone对RAM/ROM的支持
 3.10 Wishbone点到点连接示例
 3.11 Wishbone共享总线连接示例
 3.12 地址译码
 3.13 仲裁器的设计
 3.14 小结
第4章 CPU/DSP核心
 4.1 CPU/DSP核心
 4.2 IF级
 4.3 ID级
 4.4 EX级
 4.5 系统控制模块
 4.6 MA级(lsu模块)
 4.7 WB级
第5章 OpenRISC存储系统
 5.1 概述
 5.2 OpenRISC的高速缓存
 5.3 OpenRISC的虚拟存储系统源码分析
 5.4 OpenRISC高速缓存的源码分析
 5.5 片上存储器QMEM
第6章 OpenRISC的主要外设
 6.1 概述
 6.2 写缓冲模块OR1200_sb
 6.3 总线接口单元模块OR1200_wb_biu
 6.4 计时器模块OR1200_tt
 6.5 可编程中断控制器模块OR1200_pic
 6.6 电源管理模块OR1200_pm
第7章 OpenRISC调试接口
 7.1 OR1200的调试功能概述
 7.2 调试单元OR1200_du模块
 7.3 JTAG开发接口模块
 7.4 小结
第8章 编译器移植
 8.1 编译过程简介
 8.2 GNU开发工具链
 8.3 RTL语言
 8.4 OR32平台GCC编译器移植
 8.5 OR32平台binutils的移植
 8.6 OR32工具链的编译安装
第9章 Linux平台移植
 9.1 编写OR32复位例外
 9.2 内核启动(函数start_kernel)
 9.3 内核启动时建立平台(函数setup_arch)
 9.4 例外处理
 9.5 运行时用到的底层接口
 9.6 Linux移植
第10章 OpenRISC参考设计与FPGA移植
10.1 OpenRISC的功能验证
10.2 ORP_SOC的FPGA移植
10.3 FPGA开发板的设计与使用
第11章 开放源代码以太网MAC控制器IP
11.1 开放源代码以太网媒体访问控制器IP
11.2 以太网MAC控制器IP顶层模块
11.3 MII接口模块
11.4 以太网数据发送模块
11.5 以太网数据接收模块
11.6 以太网MAC控制模块
11.7 以太网MAC状态模块
11.8 以太网MAC寄存器模块
11.9 以太网MAC Wishbone接口模块
11.10 小结
第12章 USB设备功能模块
 12.1 USB 2.0包标识符及传输控制概述
 12.2 USB IP核的整体结构
 12.3 寄存器文件模块usbf_rf
 12.4 Wishbone接口模块usbf_wb
 12.5 内存缓冲区仲裁器
 12.5 模块usbf_mem_arb
 12.6 协议层模块
 12.7 UTMI接口模块
第13章 全定制芯片设计方法
 13.1 集成电路设计概述
 13.2 芯片设计流程
 13.3 DC工具综合
 13.4 PrimeTime静态时序分析
 13.5 可测性设计
 13.6 自动布局布线
 13.7 版图的物理验证
附录A 循环冗余校验算法分析与实现
附录B 基于元胞自动机和线性反馈移位寄存器的硬件随机数生成器
附录C Verilog RTL设计中的常见问题
参考文献


【作者】倪断利,陈曦,李挥 著

【出版社】电子工业出版社

【ISBN】9787121039843

【出版日期】2007年04月

链接:http://www.dearbook.com/Book/ViewBook.aspx?pno=ts00174489
...全文
1178 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunfeelsky 2011-12-31
  • 打赏
  • 举报
回复
实事求是,感觉写得不咋地,缺少作者的个人理解。
syrtic 2010-12-19
  • 打赏
  • 举报
回复
老实说,写的好难,我几乎看不懂。郁闷中。
乔木 2008-10-03
  • 打赏
  • 举报
回复
我的计划因没有借到图书而搁浅了!
你们读了之后,有什么感想?
交流交流!
fenggf 2007-10-27
  • 打赏
  • 举报
回复
是不错的,刚借了本,还未细看不过好似没有倪先生内核那本书那么细致
milex 2007-10-25
  • 打赏
  • 举报
回复
图书前言
CPU 和操作系统是现代计算机系统的两大基石,CPU的设计技术及加工工艺是集成电路技术发展的标志之一。随着集成电路工艺的不断进步,计算机系统集成到单芯片上,形成片上系统(System on Chip,SoC),并且SoC系统越来越复杂,需要投入大量的人力才能完成。在这种情况下,一个稳定的开放源代码的公共软件和硬件开发平台是技术发展的需要。这种需要推动了开放源代码操作系统Linux的快速发展,也必将推动开放源代码集成电路技术的快速发展。
OpenRISC1200处理器
目前,x86系列及ARM系列的CPU分别是桌面系统和嵌入式设备的最常用的商业化处理器。但其IP核价格昂贵,技术保密。
OpenRISC1200 处理器,简称OR1200,是OpenCores组织提供的基于GPL协议的开放源代码处理器,它技术成熟、性能良好,一般认为其性能在ARM7到 ARM9之间,适合于嵌入式设备。同时,OpenCores组织还提供了与之相适应的大量开放源代码IP核。
OR1200典型的应用情况是:在使用0.18μm及6层金属工艺时,OR1200的主频运行在300MHz,可以提供300Dhrystone,2.1MIPS和300次的32×32 DSP乘加操作。OR1200默认配置时有100万个晶体管。
OR1200是属于OpenRISC 1000序列中的32位标量RISC处理器,它具有哈佛结构、5级整数流水线,支持虚拟内存(MMU)和Cache,带有基本的DSP功能。外部数据和地址总线接口符合Wishbone片上总线标准。
CPU设计包括CPU的指令集设计、架构设计、芯片的前端设计和后端设计、编译器和操作系统的移植等。另外,SoC建立CPU运行环境还需要很多IP核,如:显示模块、键盘输入模块等。因此,CPU的设计是复杂的系统工程。
由于片上系统功能庞大,设计复杂,工作量已经不是少数人或是小公司能完成的。像Linux一样的开放源代码是SoC设计的必由之路。
为什么写作本书
CPU是片上系统的核心,也是最复杂的模块之一,几乎所有专业的学生都会学到x86 CPU的结构及汇编语言,软件编程围绕着CPU的指令集进行,芯片的逻辑设计需要熟知CPU的总线接口及CPU的行为。深入理解CPU的行为对软件和硬件工程师来说是必要的。
由于CPU设计技术的复杂性及高度保密性,目前几乎没有公开出版的书籍对一款实用的CPU的逻辑实现进行详细介绍。
由于EDA工具软件非常昂贵,芯片设计方法课程的培训费用很高,目前很少有书对芯片的设计过程进行详细介绍。
我们在清华大学和香港中文大学接受过芯片设计方面的严格专业训练,作者陈曦和李挥长期从事于芯片设计方面的研究和开发。我们认为:CPU的逻辑行为及芯片实现的方法对于软件和硬件工程师都有实际指导意义。
虽然在国外CPU技术已经发展多年并形成了完整的产业体系。但就国内而言,目前做得比较好的仍然只有中科院计算所龙芯、北大众志、方舟、苏州国芯。CPU广泛应用于集成电路,几乎每一个数字集成电路设计公司都需要至少一款CPU/DSP。我们希望这本书有助于OR1200 CPU在国内的推广和使用,从而降低国内集成电路设计公司的设计成本和技术门槛,这是我们的心愿。
为了验证OR1200 CPU的实现,我们还开发了FPGA开发板,并让 Linux操作系统在开发板上运行起来,该开发版具有主流智能设备典型外设,包括音频、图像采集、无线链路、有源RFID、ADC、TFT LCD、大容量SDRAM和NandFlash等。我们还用EDA工具将OR1200 CPU进行了芯片后端设计,设计出可以生产出芯片的版图,并用EDA工具进行了验证。如果对FPGA开发板感兴趣,可以查看网站http://www.openrisc.cn或http://www.hightidelg.com。
由于OpenCores组织的OR1200 CPU是开放源代码,并且技术主流,我们选择了OpenCores组织的OR1200 CPU、 Ethernet MAC和USB 2.0 Function源代码,结合自己的工作经验,查阅了大量相关资料,费时1年,写成这本书。
本书总结了CPU逻辑实现的技术,详细讲述了32位RISC CPU的逻辑结构,分析了CPU的源代码实现、编译器的移植、Linux操作系统的移植,介绍了 FPGA设计和CPU验证方法,说明了CPU芯片的全定制设计方法,以及用EDA工具设计实现的详细步骤,还给出了芯片版图。本书还分析了 Ethernet MAC和USB 2.0 Function模块,它们是通信的典型接口。本书介绍的源代码可以在http: //www.openrisc.org下载。
在本书中,我们结合自己的工作经验,重点分析了逻辑设计所用到的方法,详细介绍了用EDA工具进行芯片设计的方法,这些对集成电路设计工程师来说有指导价值。我们还对Linux操作系统CPU平台移植方法作了充分的论述。软件工程师了解CPU的逻辑行为及平台移植方法,调试程序会有更清晰的思路。
关于本书作者
作者倪继利毕业于清华大学电子工程系,获通信与电子系统专业硕士学位,在国际知名大公司多年从事Linux开发工作,已出版与Linux相关专著有《Linux内核分析及编程》和《Qt及Linux操作系统窗口设计》。
作者陈曦获清华大学电子工程系信息与通信工程专业博士学位,目前就职于中科院微电子所,从事用于未来智能设备,尤其是智能交通车际通信网络的NoC/SoC软硬件平台研究,以第一作者发表了关于通信和片上系统方面的学术论文近10篇,申请专利4项。
作者李挥本科毕业于清华大学自动化系,获香港中文大学信息工程学哲学博士学位,曾在美国Terapower Limited(HongKong)从事宽带交换芯片研究设计工作,现任北京大学信息学院副教授,北大深圳研究生院微系统科学与工程重点实验室副主任,流媒体研究中心主任。长期从事通信系统,控制系统及其芯片的研究和设计工作,在国内外刊物和会议上发表论文20多篇,申请发明专利15项。目前主要在北京大学深圳研究生院从事宽带交换理论及其芯片的研究,光电子数模混合电路的研究及开发,主持一项国家自然科学基金,一项信息产业部电子基金,两项广东省粤港关键领域招标项目的研发。
本书主要内容
本书共包括13章,每章的主要内容及各章如下:
第1章 CPU构架概述(倪继利) 介绍了计算机系统的分类,阐述了CPU设计的标量流水线、超标量流水线、超长指令等常用技术。
第2章 OR1200构架(倪继利) 说明了OR1200处理器的指令格式、处理器的结构组成、硬件配置等。
第3章 Wishbone片上总线(陈曦) 详细介绍了Wishbone标准。
第4章 CPU/DSP核心(倪继利) 分析了组成CPU/DSP核心的各个模块的原理及源代码。
第5章 OpenRISC存储系统(陈曦) 分析了高速缓存和虚拟内存管理单元的原理及实现。
第6 章 OpenRISC的主要外设(陈曦) 分析了OR1200的5个主要外设:写缓冲模块OR1200_sb、总线接口单元模块 OR1200_wb_biu、计时器模块OR1200_tt、可编程中断控制器模块OR1200_pic以及电源管理模块OR1200_pm。
第7章 OpenRISC调试接口(陈曦) 分析了OR1200调试器的原理及源代码。
第8章 编译器移植(倪继利) 说明了GNU开发工具链移植新CPU硬件的方法,并分析了工具链移植的源代码。
第9章 Linux平台移植(倪继利) 介绍了Linux内核移植新CPU平台的方法,分析了在Linux内核代码中与硬件相关的源代码。还说明了OpenRisc仿真器和GDB调试程序的方法。
第10章 OpenRISC参考设计与FPGA移植(陈曦) 说明了OR1200在FPGA上的设计方法。
第11章 开放源代码以太网MAC控制器IP(陈曦) 说明了IEEE 802.3/Ethernet MAC IP的工作原理,分析了它的源代码。
第12章 USB设备功能模块(倪继利) 介绍了USB 2.0功能模块的协议及UTMI接口协议,分析了USB 2.0功能模块的源代码。
第13章 全定制芯片设计方法(李挥) 具体描述了OR1200芯片的前端和后端设计方法及实现流程,给出了设计的详细步骤,相关EDA软件的使用,必需的脚步全文,并提供了设计版图。
附录1 循环冗余校验算法分析与实现 (陈曦)
附录2 基于元胞自动机和线性反馈移位寄存器的硬件随机数生成器 (陈曦)
附录3 Verilog RTL设计中的常见问题 (陈曦)
致谢
作者倪继利和陈曦首先要特别感谢我们的导师——清华大学周祖成教授,他是芯片设计方面的专家,为我们提供了系统学习芯片设计的机会。每年一度的“全国研究生 EDA设计大赛”在清华大学电子工程系如期举行,大赛的前后是我们进行超负载的学习芯片设计和训练阶段,平常我们还经常参加各个EDA公司的设计培训,正是在清华大学的正规训练给我们打下了扎实的基础,也培养了我们对芯片设计的浓厚兴趣。
我们还要感谢李坤、王秋生等同学和同事,他们在FPGA开发板的设计及OR1200 CPU的芯片设计验证中付出了艰辛的劳动。他们都是清华大学毕业的硕士/博士,在知名公司或研究所长期从事电子系统或芯片设计方面的工作。
作者李挥非常感谢北京大学深圳研究生院信息学院院长杨芙清院士给予本项目的支持和指导,非常感谢王阳元院士的指导及他领导的微系统科学与工程重点实验室为项目提供了完善的研发环境,同时感谢该实验室其他领导和同事在项目进行中的支持。芯片设

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧