内容简介
《国外电子与通信教材系列:Verilog HDL高级数字设计(第2版)》依据数字集成电路系统工程开发的要求与特点,利用Verilog HDL对数字系统进行建模、设计与验证,对ASIC/FPGA系统芯片工程设计开发的关键技术与流程进行了深入讲解,内容包括:集成电路芯片系统的建模、电路结构权衡、流水线技术、多核微处理器、功能验证、时序分析、测试平台、故障模拟、可测性设计、逻辑综合、后综合验证等集成电路系统的前后端工程设计与实现中的关键技术及设计案例。书中以大量设计实例叙述了集成电路系统工程开发须遵循的原则、基本方法、实用技术、设计经验与技巧。
作者简介
科罗拉多大学电气与计算机工程系教授。研究方向包括通过硬件描述语言进行数字系统的建模、综合与验证、系统级设计语言和fpga嵌入式系统。其著作还有digital design,fourth edition(其翻译版和影印版均由电子工业出版社出版)。作者曾在惠普、福特微电子和prisma等公司进行vlsi电路设计的研发工作,在数字系统和嵌入式系统研究、设计等领域有丰富的研发和教学经历。
内页插图
目录
第1章 数字设计方法概论
1.1 设计方法简介
1.1.1 设计规格
1.1.2 设计划分
1.1.3 设计输入
1.1.4 仿真与功能验证
1.1.5 设计整合与验证
1.1.6 预综合完成
1.1.7 门级综合与工艺映射
1.1.8 后综合设计确认
1.1.9 后综合时序验证
1.1.10 测试生成与故障模拟
1.1.11 布局与布线
1.1.12 物理和电气设计规则检查
1.1.13 提取寄生参量
1.1.14 设计完成
1.2 IC工艺选择
1.3 后续内容概览
参考文献
第2章 组合逻辑设计回顾
2.1 组合逻辑与布尔代数
2.1.1 ASIC库单元
2.1.2 布尔代数
2.1.3 狄摩根定律
2.2 布尔代数化简定理
2.3 组合逻辑的表示
2.3.1 积之和表示法
2.3.2 和之积表示法
2.4 布尔表达式的化简
2.4.1 异或表达式的化简
2.4.2 卡诺图(积之和形式)
2.4.3 卡诺图(和之积形式)
2.4.4 卡诺图与任意项
2.4.5 扩展的卡诺图
2.5 毛刺与冒险
2.5.1 静态冒险的消除(积之和形式)
2.5.2 消除两级电路静态冒险的小结
2.5.3 多级电路中的静态冒险
2.5.4 消除多级电路静态冒险的小结
2.5.5 动态冒险
2.6 逻辑设计模块
2.6.1 与非或非结构
2.6.2 多路复用器
2.6.3 多路解复用器
2.6.4 编码器
2.6.5 优先编码器
2.6.6 译码器
2.6.7 优先译码器
参考文献
习题
第3章 时序逻辑设计基础
3.1 存储元件
3.1.1 锁存器
3.1.2 透明锁存器
3.2 触发器
3.2.1 D触发器
3.2.2 主从触发器
3.2.3 J-K触发器
3.2.4 T触发器
3.3 总线与三态器件
3.4 时序机设计
3.5 状态转移图
3.6 设计举例: BCD码到余3码的转换器
3.7 数据传输的串行线码转换器
3.7.1 设计举例: 用Mealy型FSM实现串行线性码转换
3.7.2 设计举例: 用Moore型FSM实现串行线码转换
3.8 状态化简与等价状态
参考文献
习题
第4章 Verilog逻辑设计介绍
4.1 组合逻辑的结构化模型
4.1.1 Verilog原语和设计封装
4.1.2 Verilog结构化模型
4.1.3 模块端口
4.1.4 语言规则
4.1.5 自顶向下的设计和模块嵌套
4.1.6 设计层次和源代码结构
4.1.7 Verilog矢量
4.1.8 结构化连接
4.2 逻辑系统设计验证及测试方法
4.2.1 Verilog中的四值逻辑和信号解析
4.2.2 测试方法
4.2.3 测试平台的信号发生器
4.2.4 事件驱动仿真
4.2.5 测试模板
4.2.6 定长数
4.3 传播延时
4.3.1 惯性延时
4.3.2 传输延时
4.4 组合与时序逻辑的Verilog真值表模型
参考文献
习题
第5章 用组合与时序逻辑的行为级模型进行逻辑设计
5.1 行为建模
5.2 行为级建模的数据类型的简要介绍
5.3 基于布尔方程的组合逻辑行为级模型
5.4 传播延时与连续赋值
5.5 Verilog中的锁存器和电平敏感电路
5.6 触发器和锁存器的周期性行为模型
5.7 周期性行为和边沿检测
5.8 行为建模方式的比较
5.8.1 连续赋值模型
5.8.2 数据流/寄存器传输级模型
5.8.3 基于算法的模型
5.8.4 端口名称: 风格问题
5.8.5 用行为级模型仿真
5.9 多路复用器、 编码器和译码器的行为模型
5.10 线性反馈移位寄存器的数据流模型
5.11 用循环算法的数字机模型
5.11.1 IP(知识产权)的复用和参数化模型
5.11.2 时钟发生器
5.12 多循环操作状态机
5.13 设计文件中的函数和任务: 是精明还是愚蠢?
5.13.1 任务
5.13.2 函数
5.14 行为建模的算法状态机图
5.15 ASMD图
5.16 计数器、 移位寄存器和寄存器组的行为级模型
5.16.1 计数器
5.16.2 移位寄存器
5.16.3 寄存器组和寄存器(存储器)阵列
5.17 用于异步信号的去抖动开关、 亚稳定性和同步装置
5.18 设计实例: 键盘扫描器和编码器
参考文献
习题
第6章 组合逻辑与时序逻辑的综合
6.1 综合简介
6.1.1 逻辑综合
6.1.2 RTL综合
6.1.3 高级综合
6.2 组合逻辑的综合
6.2.1 优先级结构的综合
6.2.2 利用逻辑无关紧要条件
6.2.3 ASIC单元与资源共享
6.3 带锁存器的时序逻辑综合
6.3.1 锁存器的无意综合
6.3.2 锁存器的有意综合
6.4 三态器件和总线接口的综合
6.5 带有触发器的时序逻辑综合
6.6 显式状态机的综合
6.6.1 BCD码/余3码转换器的综合
6.6.2 设计举例: Mealy型NRZ码/Manchester线性码转换器的综合
6.6.3 设计举例: Moore型NRZ码/Manchester线性码转换器的综合
6.6.4 设计举例: 序列检测器的综合
6.7 寄存器逻辑
6.8 状态编码
6.9 隐式状态机、 寄存器和计数器的综合
6.9.1 隐式状态机
6.9.2 计数器综合
6.9.3 寄存器综合
6.10 复位
6.11 门控时钟与时钟使能的综合
6.12 预测综合结果
6.12.1 数据类型综合
6.12.2 运算符分组
6.12.3 表达式替代
6.13 循环的综合
6.13.1 不带内嵌定时控制的静态循环
6.13.2 带内嵌定时控制的静态循环
6.13.3 不带内嵌定时控制的非静态循环
6.13.4 带内嵌定时控制的非静态循环
6.13.5 用状态机替代不可综合的循环
6.14 要避免的设计陷阱
6.15 分割与合并: 设计划分
参考文献
习题
第7章 数据通路控制器的设计与综合
7.1 时序状态机的划分
7.2 设计实例: 二进制计数器
7.3 RISC存储程序机的设计与综合
7.3.1 RISC SPM: 处理器
7.3.2 RISC SPM: ALU
7.3.3 RISC SPM: 控制器
7.3.4 RISC SPM: 指令集
7.3.5 RISC SPM: 控制器设计
7.3.6 RISC SPM: 程序执行
7.4 设计实例: UART
7.4.1 UART的操作
7.4.2 UART发送器
7.4.3 UART接收器
参考文献
习题
第8章 可编程逻辑及存储器件
8.1 可编程逻辑器件
8.2 存储器件
8.2.1 只读存储器
8.2.2 可编程ROM(PROM)
8.2.3 可擦除ROM
8.2.4 基于ROM的组合逻辑实现
8.2.5 用于ROM的Verilog系统任务
8.2.6 ROM的比较
8.2.7 基于ROM的状态机
8.2.8 闪存
8.2.9 静态随机存储器(SRAM)
8.2.10 铁电非易失性存储器
8.3 可编程逻辑阵列(PLA)
8.3.1 PLA最小化
8.3.2 PLA建模
8.4 可编程阵列逻辑(PAL)
8.5 PLD的可编程性
8.6 复杂可编程逻辑器件
8.7 现场可编程门阵列
8.7.1 FPGA在ASIC市场中的角色
8.7.2 FPGA技术
8.7.3 Xilinx公司Virtex系列FPGA
8.8 片上系统(SoC)的嵌入式可编程IP核
8.9 基于Verilog的FPGA设计流程
8.10 FPGA综合
参考文献
相关网站
习题及基于FPGA的设计训练
第9章 数字处理器的算法和架构
9.1 算法、 循环嵌套程序和数据流图
9.2 设计实例: 半色调像素图像转换器
9.2.1 半色调像素图像转换器的原型设计
9.2.2 基于NLP的半色调像素图像转换器结构
9.2.3 半色调像素图像转换器的最小并行处理器结构
9.2.4 半色调像素图像转换器: 设计权衡
9.2.5 带反馈数据流图的结构
9.3 数字滤波器和信号处理器
9.3.1 FIR滤波器
9.3.2 数字滤波器设计过程
9.3.3 IIR滤波器
9.4 构建信号处理器的基本运算单元模型
9.4.1 积分器(累加器)
9.4.2 微分器
9.4.3 抽样和插值滤波器
9.5 流水线结构
9.5.1 设计实例: 流水线型加法器
9.5.2 设计实例: 流水线型FIR滤波器
9.6 环形缓冲器
9.7 异步FIFO――跨越时钟域的同步问题
9.7.1 简化异步FIFO
9.7.2 异步FIFO的时钟同步
参考文献
习题
第10章 算术处理器架构
10.1 数的表示方法
10.1.1 负整数的原码表示
10.1.2 负整数的反码表示方法
10.1.3 正数和负数的补码表示方法
10.1.4 小数的表示
10.2 加减法功能单元
10.2.1 行波进位加法器
10.2.2 超前进位加法器
10.2.3 上溢出和下溢出
10.3 乘法运算功能单元
10.3.1 组合(并行)二进制乘法器
10.3.2 时序二进制乘法器
10.3.3 时序乘法器设计: 层次化分解
10.3.4 基于STG的控制器设计
10.3.5 基于STG的高效二进制时序乘法器
10.3.6 基于ASMD的时序二进制乘法器
10.3.7 基于ASMD的高效二进制时序乘法器
10.3.8 基于ASMD数据通路和控制器设计的总结
10.3.9 精简寄存器时序乘法器
10.3.10 隐式状态机二进制乘法器
10.3.11 Booth算法时序乘法器
10.3.12 比特对编码
10.4 有符号二进制数乘法
10.4.1 有符号数的乘积: 被乘数为负, 乘数为正
10.4.2 有符号数的乘积: 被乘数为正, 乘数为负
10.4.3 有符号数的乘积: 被乘数、 乘数均为负
10.5 小数乘法
10.5.1 有符号小数: 被乘数、 乘数均为正
10.5.2 有符号小数: 被乘数为负, 乘数为正
10.5.3 有符号小数: 被乘数为正, 乘数为负
10.5.4 有符号小数: 被乘数、 乘数均为负
10.6 除法功能单元
10.6.1 无符号二进制数的除法
10.6.2 无符号二进制数的高效除法
10.6.3 精简寄存器时序除法器
10.6.4 有符号二进制数(补码)的除法
10.6.5 带符号的计算
参考文献
习题
第11章 后综合设计任务
11.1 后综合设计验证
11.2 后综合时序验证
11.2.1 静态时序分析
11.2.2 时序规范
11.2.3 影响时序的因素
11.3 ASIC中时序违约的消除
11.4 虚假路径
11.5 用于时序验证的系统任务
11.5.1 时序检查: 建立时间条件
11.5.2 时序检查: 保持时间约束
11.5.3 时序检查: 建立时间和保持时间约束
11.5.4 时钟检查: 脉冲宽度约束
11.5.5 时序检查: 信号偏移约束
11.5.6 时序检查: 时钟周期
11.5.7 时序检查: 恢复时间
11.6 故障模拟及制造测试
11.6.1 电路缺陷和故障
11.6.2 故障检测与测试
11.6.3 D标记法
11.6.4 组合电路的自动测试模板生成
11.6.5 故障覆盖和缺陷级别
11.6.6 时序电路的测试生成
11.7 故障模拟
11.7.1 故障解析
11.7.2 串行故障模拟
11.7.3 并行故障模拟
11.7.4 并发性故障模拟
11.7.5 概率性故障模拟
11.8 JTAG端口和可测性设计
11.8.1 边界扫描和JTAG端口
11.8.2 JTGA操作模式
11.8.3 JTAG寄存器
11.8.4 JTAG指令
11.8.5 TAP结构
11.8.6 TAP控制器状态机
11.8.7 设计实例: JTAG测试
11.8.8 设计实例: 内建自测试
参考文献
习题
附录A Verilog原语
附录B Verilog关键词
附录C Verilog数据类型
附录D Verilog运算符
附录E Verilog语言形式化语法(I)
附录F Verilog语言形式化语法(II)
附录G Verilog语言的附加特性
附录H 触发器和锁存器类型
附录I Verilog 2001, 2005
附录J 编程语言接口
附录K 相关网站
中英文术语对照表
精彩书摘
第1章 数字设计方法概论
电路设计的经典设计方法是依赖于电路原理图的人工设计方法,而现在的大规模复杂电路广泛采用基于计算机语言的现代设计方法。这种实践变革有几方面的原因,其中最重要的原因是没有任何一支设计工程师团队能够用人工方法有效、全面、正确地设计和管理含数百万门级的现代集成电路(ⅡC)。但使用硬件描述语言(HDL),工程师们能很容易地实现对大型复杂电路系统的设计和管理。即使小规模电路的设计也更多地依赖于基于语言的描述,因为工程师们必须快速设计生产出满足瞬息万变的市场需求的产品。
基于语言的设计易于移植且不依赖于工艺,设计团队也可以重用或修改以前的设计,以保持与更先进工艺的一致性。随着器件物理尺寸的缩小,电路密度的提高,基于原有HDL模型进行综合生成的电路同样具有更高的性能。
硬件描述语言也是将各种设计专利成果集成为知识产权核(IP)的一种方便而有效的工具和手段。通过使用这种通用设计语言的描述,电路模块可以根据需要单独或合并进行综合和测试,以缩短设计周期。有些仿真工具还支持基于多种语言的混合描述。
采用HDL最显著的优点在于:基于语言描述的电路及其优化可以自动地进行综合,而不用经历人工设计方法中那些费力的步骤(如用卡诺图化简逻辑函数)。
目前,基于HDL的综合方法是工业界普遍采用的主流设计方法。设计者可以通过构建一个软件原型或模型来验证其功能,然后利用综合工具自动对所设计的电路进行优化,并且可以生成针对某物理工艺技术的网表(nctlist)。
HDL和综合工具的应用使得工程师们更关注有关功能的设计,而不是具体的单个晶体管或逻辑门的设计;综合得到的电路可以实现预期的功能,并满足面积和/或性能的约束要求。无论是功能模型还是行为模型的HDL模型描述,都可综合出不同的结构,并可据此快速对设计进行评估和折中。
HDL可作为多种设计工具的平台,包括:设计输入、设计验证、测试向量生成、故障分析和仿真、时序分析和/或验证、综合和原理图的自动生成等任务。HDL这种宽范围的覆盖使得设计者的设计工作通过工具链路时,由于不再需要考虑设计描述在不同工具间的转换过程而大大提高了设计流程的工作效率。
Veriog和VHDL两种语言受到工业界的广泛支持,这两种语言都成为了IEEE(电气和电子工程师协会)标准,并都得到ASIC(专用集成电路)和PPGA(现场可编程门阵列)相关综合工具的支持。模拟电路设计语言,如SpiceL3,,在验证电路的关键时序路径上扮演着重要角色。但由于这些模拟电路描述语言对大型设计来说需要大得惊人的计算量,而且也不支持抽象设计,使得它们在大规模电路设计应用中变得很不实际。混合语言(如Verilog.A语言)用于设计兼有数字和模拟电路的混合信号系统。近几年还出现了SystcmC和Superlog这样的系统级设计语言,它们能够支持比Verilog或VHDL语言更高抽象级别的设计。
……
前言/序言
精炼、明晰化与验证
用硬件描述语言(HDL)建立行为级模型是现代专用集成电路设计的关键技术。如今,大多数设计者使用基于硬件描述语言的设计方法,创建基于语言的高层、抽象的电路描述,以验证其功能和时序。在本书第一版的使用过程中,讲授设计方法学所用的语言(IEEE 1464.1995)已经历了两次修改,分别是IEEE 1364.2001及2005年的修订版,即Verilog-2001和Verilog-2005,以提高--其有效性和效率。
这一版的编写动机和第一版基本是相同的。对那些准备在产品研发团队做出成绩的学生们来说。必须了解如何在设计流程的关键阶段使用硬件描述语言。因此,需要有 l‘q在内容上超越先修课程“数字设计”中学习过的基本原则和方法的课程,本书就是为该课程而著的。
现在,市面上讨论硬件描述语言的书籍的数量已远远超过本书第一版出版时的数量。但是,这些书大部分都定位于解释语法,而不是如何运用语言进行设计,不太适合于课堂教学。本书的重点是硬件描述语言的设计方法学,因此语言本身只是一个配角。这一版中强化了如何通过实例证明,将一个数字系统描述并划分为数据通路、状态(反馈)信号和控制器(有限状态机)系统结构的重要性。我们认为,这种描述可使设计和验证复杂数字系统的方法更加清楚、直接、明了。本书给出了大量的仿真结果和注释,以帮助学生掌握时序机的操作过程,并深入理解由控制器产生的信号间的时序互动关系,数据通路的操作,以及从数据通路回馈给控制器的信号。其目的都是为了开发出可综合、无锁存且无竞争的设计。
vcril
国外电子与通信教材系列:Verilog HDL高级数字设计(第二版) 下载 mobi epub pdf txt 电子书 格式