Verilog高级数字系统设计技术与实例分析

本书特色

[

本书通过大量实例由浅入深地介绍了数字电路和数字系统设计中的重要概念和知识要点。本书分两大部分。*部分重点关注数字电路设计层面,偏重基础。第2章到第6章为Verilog语法与数字电路设计相关知识,包括常用语法、基本数字电路单元等。第7章到第9章重点介绍高级数字设计知识,包括数字系统架构设计、复杂数字系统中常用的电路单元、算法,并给出了大量工程实例。第10章给出了一些重要的工程设计经验,包括文档管理、代码设计、系统验证、高可靠性设计等。第二部分重点关注数字系统设计层面。第11章到第13章介绍了常用数字系统关键电路,包括与处理器系统相关的存储结构与存储访问技术、存储介质(硬盘、闪存、DDR等)与驱动电路、处理器总线结构与协议等。第14章和第15章介绍了电路可测性设计、静态定时分析、芯片工程修改的相关知识。第16章和第17章从电路设计层面到系统设计层面介绍了降低电路功耗的方法。第18章到第20章介绍常用串行总线和串行通信协议,包括PCI Express、SATA、USB及以太网技术。

]

内容简介

[

本书通过大量实例由浅入深地介绍了数字电路和数字系统设计中的重要概念和知识要点。本书分两大部分。*部分重点关注数字电路设计层面,偏重基础。第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年来积累的数字系统设计知识和经验。
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年来积累的数字系统设计知识和经验。

]

目录

第1章 绪论第2章 寄存器传输语言(RTL)第3章 可综合的Verilog——用于电路设计3.1 什么是Verilog3.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 可重用和模块化设计3.9.1 参数化设计3.9.2 Verilog函数3.9.3 Verilog中的generate结构3.9.4 Verilog中的`ifdef3.9.5 数组、多维数组第4章 用于验证的Verilog语法4.1 Verilog的测试平台4.2 initial语句4.3 Verilog 系统任务4.3.1 $finish/$stop4.3.2 $display/$monitor4.3.3 $time,$realtime4.3.4 $random/$random(seed)4.3.5 $save4.3.6 $readmemh/$writememh4.3.7 $fopen/$fclose4.4 任务4.5 存储器建模4.6 其他Verilog语法结构4.6.1 while循环4.6.2 for循环、repeat4.6.3 force/release4.6.4 fork / join4.7 一个简单的testbench第5章 数字电路设计——初级篇5.1 组合逻辑门5.1.1 逻辑1和逻辑05.1.2 真值表5.1.3 晶体管5.1.4 反相器5.1.5 与门5.1.6 或门5.1.7 与非门5.1.8 或非门5.1.9 XOR(异或)、XNOR(异或非)5.1.10 缓冲门5.1.11 复用器5.1.12 通用逻辑门——NAND、NOR5.1.13 复杂门电路5.1.14 噪声容限5.1.15 扇入和扇出5.2 德摩根定理5.3 通用D触发器5.3.1 D触发器时序图5.4 建立和保持时间5.4.1 建立时间5.4.2 保持时间5.4.3 亚稳态5.5 单比特信号同步5.5.1 两个触发器构成的同步器5.5.2 信号同步规则5.6 关于时序5.7 事件/边沿检测5.7.1 同步上升沿检测5.7.2 同步下降沿检测5.7.3 同步上升/下降沿检测5.7.4 异步输入上升沿检测5.8 数值系统5.8.1 十进制数值系统5.8.2 二进制数5.8.3 十进制数到二进制数的转换5.8.4 十六进制数值系统5.8.5 十六进制数和二进制数的转换5.9 加法和减法5.9.1 行波进位加法器5.9.2 超前进位加法5.9.3 累加器5.10 乘和除5.10.1 乘以一个常数5.10.2 除以常数(2的整数次幂)5.11 计数器5.11.1 加法/减法计数器5.11.2 LFSR(线性反馈移位寄存器)计数器第6章 数字设计——基础模块6.1 LFSR6.1.1 引言6.1.2 斐波那契LFSR与伽罗瓦LFSR6.1.3 LFSR反馈多项式6.1.4 LFSR的用法6.2 扰码与解扰6.2.1 什么是扰码与解扰6.2.2 扰码的作用6.2.3 串行扰码器6.2.4 并行扰码器6.2.5 扰码电路设计要点6.2.6 PCIe扰码电路6.2.7 Verilog RTL-PCIe扰码器6.3 检错与纠错6.3.1 检错6.3.2 错误纠正6.3.3 纠错编码6.3.4 汉明码6.3.5 汉明码应用举例——DDR ECC6.3.6 BCH编码6.3.7 里德-所罗门编码6.3.8 LDPC编码6.3.9 卷积码6.3.10 卷积译码6.3.11 软判决与硬判决6.4 奇偶校验6.4.1 偶校验和奇校验6.4.2 奇偶校验位的生成6.4.3 奇偶校验的应用6.5 CRC(循环冗余校验)6.5.1 CRC介绍6.5.2 串行CRC计算6.5.3 并行CRC计算6.5.4 部分数据CRC计算6.5.5 常用CRC类型6.6 格雷编码/解码6.6.1 二进制码转换为格雷编码的通用电路6.6.2 格雷码转换为二进制码的通用电路6.7 译码器(7段数码显示实例)6.8 优先级编码6.8.1 常规编码器的Verilog 代码6.8.2 优先级编码器的Verilog代码6.9 8b/10b编码/解码6.9.1 8b/10b编码方式6.9.2 多字节8b/10b编码6.9.3 disparity选择8b/10b编码方案6.10 64b/66b编码/解码6.10.1 64b/66b编码机制6.10.2 128b/130b编码机制6.11 NRZ、NRZI编码6.12 移位寄存器与桶形移位器6.12.1 左移位与右移位6.12.2 左循环移位与右循环移位6.12.3 桶形移位器6.13 数据转换器6.13.1 由宽到窄数据转换6.13.2 由窄到宽数据转换6.14 同步技术6.14.1 使用FIFO进行的数据同步6.14.2 握手同步方式6.14.3 脉冲同步器6.14.4 相位、频率关系固定时的跨时钟域数据传输6.14.5 准同步时钟域6.15 计时(微秒、毫秒和秒)脉冲的产生6.16 波形整形电路第7章 数字设计先进概念(第1部分)7.1 时钟7.1.1 频率和时钟周期7.1.2 不同的时钟机制7.1.3 同步时钟7.1.4 源同步时钟7.1.5 嵌入式时钟7.1.6 准同步时钟7.1.7 异步系统7.1.8 扩频时钟7.1.9 时钟抖动7.2 复位方法7.2.1 非同步复位(异步复位)7.2.2 复位同步电路7.2.3 同步复位7.2.4 异步复位和同步复位的选择7.3 吞吐率7.3.1 增加吞吐率的方法7.3.2 更高的频率7.3.3 更宽的数据通道7.3.4 流水线7.3.5 并行处理7.3.6 无序执行(乱序执行)7.3.7 高速缓存(cache)7.3.8 预读取7.3.9 多核7.4 时延7.4.1 降低时延的方法7.5 流控7.5.1 介绍7.5.2 数据转发:data_valid和data_ack7.5.3 基于信用的流控:PCIe7.5.4 SATA流控机制7.5.5 吉比特以太网流控7.5.6 TCP滑动窗流控机制7.6 流水线操作7.6.1 流水线介绍7.6.2 流水线的简单实例7.6.3 RISC——流水线处理器7.6.4 流水线结构和并行操作7.6.5 流水线加法器7.6.6 并行加法器7.6.7 系统设计中的流水线7.7 out-of-order执行(乱序执行)7.7.1 现代处理器:out-of-order执行7.7.2 SATA NCQ:out-of-order执行第8章 数字设计先进概念(第2部分)8.1 状态机8.1.1 引言8.1.2 状态机泡泡图8.1.3 状态机:推荐方式8.1.4 二进制编码的状态机8.1.5 独热码编码的状态机8.1.6 二进制编码和独热码比较8.1.7 米里型和摩尔型状态机8.1.8 子状态机8.2 FIFO8.2.1 引言8.2.2 FIFO操作8.2.3 同步FIFO8.2.4 同步FIFO8.2.5 异步FIFO的工作机制8.2.6 异步FIFO的实现8.3 FIFO高级原理8.3.1 FIFO的大小8.3.2 FIFO的深度8.3.3 辅助数据或标签8.3.4 快照/回退操作8.3.5 直通交换和存储转发模式8.3.6 FIFO指针复位8.3.7 不同的写入、读取数据宽度8.3.8 使用FIFO的缺点8.3.9 基于触发器或者SRAM的FIFO8.4 仲裁8.4.1 关于仲裁8.4.2 常规仲裁方案8.4.3 严格优先级轮询8.4.4 公平轮询8.4.5 公平轮询(仲裁w/o死周期)8.4.6 带权重的轮询(WRR)8.4.7 权重轮询(WRR):第二种方法8.4.8 两组轮询8.5 总线接口8.5.1 总线仲裁8.5.2 split-transaction(分割处理)总线8.5.3 流水线式总线8.6 链表8.7 近期*少使用(LRU)算法8.7.1 LRU的矩阵实现8.7.2 采用矩阵法实现LRU的Verilog代码第9章 设计ASIC/SoC9.1 设计芯片——如何开展9.2 结构和微结构9.2.1 尽可能保持简单9.2.2 善于平衡9.2.3 处理好错误和异常9.3 数据路径9.3.1 数据流9.3.2 时钟9.4 控制单元9.4.1 关注边界条件9.4.2 注意细节9.4.3 多输入点9.4.4 正确理解规范9.5 其他考虑9.5.1 门数9.5.2 焊盘受限与内核受限9.5.3 时钟树和复位树9.5.4 EEPROM、配置引脚第10章 设计经验10.1 文档10.1.1 可读性10.1.2 注释10.1.3 命名规则10.2 在编写**行代码之前10.2.1 直到你脑海里有了蓝图才开始10.2.2 脑海中的模拟10.3 一些建议10.3.1 哪种风格——数据流或算法10.3.2 寄存器型输出10.3.3 使用状态机而不是松散的控制逻辑10.3.4 综合和仿真不匹配10.3.5 设计的模块化和参数化10.3.6 加法器、减法器的有效使用10.4 需要避免的情况10.4.1 不要形成组合逻辑环路10.4.2 避免意外生成锁存器10.4.3 不要采用基于延迟的设计10.4.4 不要对一个变量多次赋值10.5 初步完成RTL代码之后10.5.1 初步完成代码之后的回顾10.5.2 目测RTL代码10.5.3 对发现bug感到惊喜10.6 设计要面向未来使用需求10.6.1 易于实现的寄存器结构10.6.2 考虑将来需求10.7 高速设计10.7.1 使用独热码进行状态编码10.7.2 使用互斥的数据选择器而不是优先级编码器10.7.3 避免大量散乱的组合逻辑电路10.7.4 复制或克隆10.7.5 使用同步复位时要小心10.7.6 将后到的信号放在逻辑的前面10.8 SoC设计经验10.8.1 使用双触发器同步电路10.8.2 将所有复位电路放在一起第11章 系统概念(第1部分)11.1 PC系统结构11.2 存储器11.2.1 存储器层次结构11.2.2 CPU使用高速缓存的方法11.2.3 cache的架构11.2.4 cache的组织方式11.2.5 虚拟存储器(Virtual Memory)11.2.6 动态随机访问存储器(DRAM)11.2.7 静态随机访问存储器(SRAM)11.2.8 内容可寻址存储器(CAM)11.2.9 CAM的Verilog模型11.2.10 ROM、PROM、EPROM和EEPROM11.2.11 闪存11.3 中断11.3.1 中断不同部分11.3.2 中断向量表11.3.3 I/O设备产生的中断11.3.4 高级可编程中断控制器11.3.5 INTx中断共享11.3.6 MSI中断11.3.7 MSI-X中断11.3.8 中断聚合11.3.9 中断产生的RTL示例11.4 PIO(Programmed IO)模式的数据传送11.5 直接存储器访1

封面

Verilog高级数字系统设计技术与实例分析

书名:Verilog高级数字系统设计技术与实例分析

作者:基肖尔.米什拉

页数:395

定价:¥109.0

出版社:电子工业出版社

出版日期:2018-02-01

ISBN:9787121334832

PDF电子书大小:145MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注