基本信息
编辑推荐
本书适合电子工程专业、计算机专业高年级本科生和研究生作为教材使用,也非常适合从事电子技术领域科研工作的工程师参考。
内容简介
计算机书籍
本书通过大量实例由浅入深地介绍了数字电路和数字系统设计中的重要概念和知识要点。本书分两大部分。第一部分重点关注数字电路设计层面,偏重基础。第2章到第6章为Verilog语法与数字电路设计相关知识,包括常用语法、基本数字电路单元等。第7章到第9章重点介绍高级数字设计知识,包括数字系统架构设计、复杂数字系统中常用的电路单元、算法,并给出了大量工程实例。第10章给出了一些重要的工程设计经验,包括文档管理、代码设计、系统验证、高可靠性设计等。第二部分重点关注数字系统设计层面。第11章到第13章介绍了常用数字系统关键电路,包括与处理器系统相关的存储结构与存储访问技术、存储介质(硬盘、闪存、DDR等)与驱动电路、处理器总线结构与协议等。第14章和第15章介绍了电路可测性设计、静态定时分析、芯片工程修改的相关知识。第16章和第17章从电路设计层面到系统设计层面介绍了降低电路功耗的方法。第18章到第20章介绍常用串行总线和串行通信协议,包括PCI Express、SATA、USB及以太网技术。
作译者
Kishore Mishra 20年前进入Allied Telesyn International公司,最初从事以太网芯片设计。此后,他先后在Texas Instrument和Intel公司从事芯片设计和架构设计。他感兴趣和从事过的设计领域包括处理器外围芯片组设计,PCI Express、SATA和DDR技术,芯片功率管理/低功耗设计技术。Kishore与他人合作创立了多家公司,设计了PCI Express和SATA控制器芯片内核。作为ASIC Architect公司的CEO,带领公司设计了很多在业界很有影响力的IP核。在2008年,ASIC Architect公司被Gennum公司收购,他开始负责设计PCI Express交换芯片,并担任数字IP部门负责人。他负责设计的PCI Express交换芯片IP核被很多大型公司使用并实现了量产。他曾在多个国际会议上发表论文并持有3项美国专利。Kishore近年来专注于教材编写,分享20年来积累的数字系统设计知识和经验。
目录
第2章 寄存器传输语言(RTL)
第3章 可综合的Verilog——用于电路设计
3.1 什么是Verilog
3.2 Verilog的发展历史
3.3 Verilog的结构
3.4 硬件RTL代码的执行
3.5 Verilog模块分析
3.6 Verilog中的触发器
3.6.1 带RST复位引脚的触发器
3.6.2 没有复位引脚的触发器
3.7 组合逻辑
3.7.1 always块语句
3.7.2 case和if-else语句
3.7.3 赋值语句
3.8 Verilog操作符
3.8.1 操作符描述
3.8.2 操作符的执行顺序
3.8.3 Verilog中的注释
3.9 可重用和模块化设计
前言
本书面向从事数字系统设计和数字系统架构设计的研究生和工程师。本书划分为两大部分,第1章到第10章重点关注数字电路设计层面,第11章到第20章重点关注数字系统设计层面。
第1章重点介绍了本书面向的读者群体,以及本书的主要内容、组织方式和这样组织的原因。
第2章介绍了Verilog语言的历史、发展变化,以及Verilog在现代数字设计中的地位。
第3章和第4章介绍了在设计和验证中常用的Verilog语法结构。其中,第3章重点介绍了进行数字设计时使用的可综合的Verilog语法结构,同时给出了很多可重用的设计实例,这些例子中普遍使用了parameter、function和generate这类可重用设计方式;第4章初步介绍了电路验证问题,目的是使读者对电路验证有一个基本理解,能够使用Verilog进行模块级验证。
第5章介绍了数字设计中的基本单元,包括逻辑门、真值表、德摩根定理、建立时间/保持时间、边沿检测和数值系统。
第6章介绍了数字设计中的一些常用基本模块,包括LFSR(线性反馈移位寄存器)、扰码与解扰、检错与纠错、奇偶校验、CRC(循环冗余校验)、格雷码编码/解码和数字同步技术。在介绍这些基本模块的同时,给出了它们的常见实际应用例子。
第7章介绍了芯片设计和架构设计中的一些先进概念,主要包括时钟和复位设计策略、增加数字电路吞吐率的方法、减少电路延迟的方法、不同的流控机制、流水线操作、乱序执行等。
第8章继续介绍先进的数字设计概念,主要包括FIFO的操作和设计、状态机设计、仲裁、现代总线接口的种类、链表数据结构、LRU算法的用处及算法实现。
第9章介绍了怎样设计一片ASIC或SoC,介绍了芯片的微结构、芯片划分、数据通道和控制逻辑,介绍了与芯片实际设计相关的时钟树、复位树和EEPROM的使用。
第10章介绍了对芯片设计非常重要的实践经验,包括哪些事情应该避免,哪些经验应该采用。其中一节还给出了高速电路设计中好的经验。
本书的第二部分重点介绍了系统架构设计和IO协议。第11章介绍了存储器,包括cache在内的存储层次结构,中断机制和操作、不同类型的DMA和DMA操作。这里给出了一个典型DMA控制器的RTL设计代码,并通过一个详细的实例介绍了分/集式DMA的概念。
第12章描述了硬盘驱动器的工作机制和相关电路,包括固态盘驱动器的基本原理和操作细节。本章介绍了DDR的操作,介绍了系统中的BIOS、OS、驱动程序以及它们和硬件之间的相互操作。
第13章描述了嵌入式系统和不同种类的内部总线,如嵌入式设计中的AHB总线和AXI总线。本章还介绍了透明和非透明桥接的概念。
第14章和第15章引入了与芯片设计实际相关的一些知识。第14章介绍了芯片测试、DFT、边界扫描和ATPG。
第15章提供了详细的芯片设计流程,介绍了静态定时检查和分析,给出了一个实际的进行ECO的例子。
第16章和第17章介绍了低功耗设计方法和功耗管理协议。其中,第16章详细描述了不同的降低功耗的技术,包括变频技术、门控时钟技术、功率阱隔离技术,这些技术可以在不同层面上降低功耗;第17章介绍了功率管理协议,包括系统的S状态、CPU的C状态、设备的D状态,以及它们在工作中是如何相互配合的。
第18章解释了串行总线技术和PCS、PMA层的具体功能。本章通过实例介绍了串行IO的时钟关系,弹性缓冲区FIFO的操作特点,以及通道绑定、链路聚合和线路翻转等重要概念。本章还介绍了PMA中常用的发送/接收均衡、PLL和终端匹配技术。
第19章和第20章重点介绍串行总线协议和操作。其中,第19章介绍了PCIe、Serial ATA、USB和雷电接口技术;第20章从10M以太网开始,按照以太网的历史发展沿革,一直介绍到最新的100G以太网。
附录A列举了作者曾经参考或引用过的资源。附录B介绍了FPGA的优点、结构、应用、主要生产厂商以及与FPGA设计流程相关的知识。附录C介绍了用于验证的测试平台(testbench)。附录D重点介绍了System Verilog断言。