具体描述
基本信息
书名:EDA技术与VHDL
定价:39.00元
作者:潘松,黄继业
出版社:清华大学出版社
出版日期:2005-07-01
ISBN:9787302093640
字数:
页码:
版次:1
装帧:平装
开本:
商品重量:0.4kg
编辑推荐
内容提要
本书系统地介绍了基于FPGA/CPLD应用开发的EDA技术和硬件描述语言VHDL,将VHDL的基础知识、编程技巧和实用方法与实际工程开发技术在先进的EDA设计平台Quartus II上很好地结合起来,使读者能通过本书的学习迅速地了解并掌握EDA技术的基本理论和工程开发实用技术,并为后续的深入学习和发展打下坚实的理论与实践基础。
依据高校课堂教学和实验操作的规律与要求,并以提高学生的实际工程设计能力为目的,全书主要内容依次为EDA技术与VHDL的基本知识、FPGA/CPLD目标器件的结构原理、VHDL实用方法和设计深入、原理图输入方法、状态机设计、LPM宏功能模块使用方法、EDA设计优化,其中EDA技术综合设计与典型应用介绍了IP核的应用、电子设计竞赛项目开发、电机控制、VGA显示控制、高速采样等。除个别章节外,各章都安排了相应的习题和针对性强的实验和设计示例。书中列举的VHDL示例,都经编译通过或经硬件测试。
本书主要面向高等院校本专科EDA技术和VHDL语言基础课,可作为电子工程、通信、自动化、计算机、信息工程、仪器仪表等学科专业的课堂授课教材或实验指导课的主要参考书,同时也可作为电子设计竞赛、FPGA开发应用的自学参考书。
对于授课教师还能获赠本书CAI教学课件与实验指导课件(含实验示例源程序)。
目录
作者介绍
文摘
序言
探索数字设计的奥秘:EDA技术与硬件描述的深度解析 本书旨在为读者提供一个全面而深入的数字系统设计导论,重点聚焦于当前数字电路设计领域至关重要的两个方面:电子设计自动化(EDA)技术和硬件描述语言(HDL),并以VHDL为例进行详细阐述。通过本书的学习,读者将能够系统地掌握现代数字集成电路的设计流程、方法论以及相关的开发工具,为进入更复杂的数字系统设计和FPGA/ASIC开发打下坚实的基础。 第一部分:EDA技术——现代数字设计的基石 EDA技术,即电子设计自动化,是当前集成电路设计和数字系统开发不可或缺的工具集。它极大地提高了设计的效率、准确性和复杂性处理能力,使得摩尔定律得以延续。本部分将系统介绍EDA的起源、发展及其在现代电子工程中的核心地位。 第一章 EDA技术概述 EDA的定义与重要性: 详细阐述EDA的本质,即利用计算机软件辅助完成电子系统的设计、验证、测试和制造过程。分析EDA技术如何从手工布线时代演进而来,以及它在缩短产品上市时间、降低设计成本、提升产品性能和可靠性方面的决定性作用。 EDA的发展历程: 回顾EDA工具从早期简单的逻辑模拟器到如今集成了高级综合、物理设计、形式验证等全流程解决方案的发展脉络。重点介绍关键的技术突破和里程碑事件,如硬件描述语言的出现、FPGA技术的兴起以及ASIC设计流程的标准化。 EDA工具链的构成: 详细介绍一个典型的EDA工具链包含哪些核心组件,例如: 逻辑综合工具 (Logic Synthesis Tools): 将高层次的RTL(Register Transfer Level)代码转换为门级网表(Netlist),这是ASIC和FPGA设计流程中的关键步骤。 布局布线工具 (Place and Route Tools): 将门级网表映射到具体的物理元件(如门电路、触发器)并规划其在芯片上的位置和相互连接,对于FPGA和ASIC设计至关重要。 仿真器 (Simulators): 用于在软件层面验证设计的功能正确性,包括行为级仿真、RTL仿真和门级仿真。 静态时序分析工具 (Static Timing Analysis Tools - STA): 在不进行仿真运行的情况下,分析设计中的时序路径,确保设计满足时序约束。 形式验证工具 (Formal Verification Tools): 利用数学方法证明设计的逻辑正确性,与仿真相比,形式验证能够覆盖所有可能的输入组合,具有更高的验证深度。 物理验证工具 (Physical Verification Tools): 如DRC(Design Rule Check)、LVS(Layout Versus Schematic)等,用于检查物理设计是否符合制造工艺规则,以及版图是否与原理图一致。 EDA在不同领域的应用: 探讨EDA技术在通信、计算、消费电子、汽车电子、航空航天等众多领域的广泛应用,以及不同领域对EDA工具和流程的需求差异。 第二章 数字系统设计流程 本章将详细介绍一个典型的数字系统从概念到物理实现的设计流程,并强调EDA工具在其中扮演的角色。 需求分析与规格定义: 如何从项目需求出发,定义系统的功能、性能、接口等技术规格。 架构设计 (Architectural Design): 划分系统模块,定义模块间的接口和通信方式,建立系统的顶层设计框架。 行为级设计 (Behavioral Design): 使用高级语言(如C/C++)或HDL描述系统的整体功能,通常用于系统级的建模和算法验证。 寄存器传输级 (RTL) 设计: 使用硬件描述语言(如VHDL、Verilog)描述系统的硬件结构和数据流,是进行逻辑综合和后续物理实现的基础。本章将初步引入HDL的概念。 功能仿真 (Functional Simulation): 在RTL阶段对设计进行仿真验证,确保逻辑功能符合设计规格。 逻辑综合 (Logic Synthesis): 将RTL代码转换为门级网表,这是从行为描述到结构实现的桥梁。 时序约束与静态时序分析 (Timing Constraints and STA): 定义设计的时钟频率、输入输出延迟等时序要求,并使用STA工具进行时序检查,确保设计在目标频率下能够正确工作。 布局布线 (Place and Route): 将门级网表映射到目标硬件(FPGA或ASIC)的物理资源上,并规划连线。 后布局布线仿真与时序分析 (Post-Place and Route Simulation and STA): 考虑实际布局布线带来的延迟,再次进行仿真和STA,以验证设计的时序性能。 物理验证 (Physical Verification): 确保物理设计符合制造工艺要求。 生成最终网表/比特流: 对于FPGA,生成配置芯片的比特流文件;对于ASIC,生成可供制造的光刻掩膜文件。 硬件实现与测试: 将设计下载到FPGA板上进行实际测试,或将ASIC芯片流片制造并进行最终验证。 第二部分:VHDL——硬件描述的强大语言 硬件描述语言(HDL)是现代数字硬件设计的“编程语言”。它们允许工程师以文本的形式描述硬件的功能和结构,并能被EDA工具理解和处理,进而生成实际的硬件电路。VHDL(VHSIC Hardware Description Language)作为一种功能强大、标准化的HDL,在工业界得到了广泛的应用。本部分将深入讲解VHDL的语法、语义和建模能力。 第三章 VHDL基础 VHDL概述与特点: 介绍VHDL的起源(源于美国国防部VHSIC计划),其标准化(IEEE标准),以及其在描述并发、顺序逻辑和数据流方面的强大能力。强调VHDL是面向硬件的,其语法和结构反映了硬件的并行性。 VHDL设计单元: 实体 (Entity): 描述模块的外部接口,包括端口(输入、输出、双向)。 架构 (Architecture): 描述实体内部的功能或结构,可以有多个架构对应同一实体,用于实现不同的设计风格(行为级、结构级、数据流)。 配置 (Configuration): 用于选择和绑定实体与架构的组合,在大型设计中用于模块的复用和实例化。 VHDL数据类型: 标量类型 (Scalar Types): 如 `BIT` (0, 1), `BOOLEAN` (TRUE, FALSE), `INTEGER`, `REAL`, `CHARACTER`, `ENUMERATED TYPES` (用户自定义的枚举类型), `SIGNED` 和 `UNSIGNED` (用于数字运算)。 复合类型 (Composite Types): 如 `ARRAY` (一维、多维数组), `RECORD` (结构体)。 访问类型 (Access Types) 和 文件类型 (File Types): 用于更高级的内存管理和文件I/O。 标准库类型: 介绍 `std_logic_1164`(`STD_LOGIC`, `STD_ULOGIC`, `STD_LOGIC_VECTOR`)等 IEEE 标准库,它们提供了多值逻辑(9态:'U', 'X', '0', '1', 'Z', 'W', 'L', 'H', '-'),对于精确的仿真和设计至关重要。 VHDL运算符: 逻辑运算符 (`AND`, `OR`, `NOT`, `XOR`), 关系运算符 (`=`, `/=`, `<`, `<=`, `>`, `>=`), 加法运算符 (`+`, `-`), 乘法运算符 (``), 移位运算符 (`<<`, `>>`), 属性运算符 (`&` 连接符)。 VHDL赋值语句: 信号赋值 (`<=`), 变量赋值 (`:=`), 缓冲器赋值 (`<=` 配合 buffer 端口)。 VHDL进程 (Process): 描述并发执行的代码块,是VHDL建模的核心。介绍进程的敏感信号列表,以及在进程中如何描述组合逻辑和时序逻辑。 第四章 VHDL建模技术 本章将重点讲解如何利用VHDL的不同建模风格来描述硬件,以及如何根据设计需求选择合适的建模方式。 行为级建模 (Behavioral Modeling): 使用顺序语句(`IF-THEN-ELSE`, `CASE`, `LOOP`)和并发语句来描述系统的功能。 重点介绍如何使用 `WAIT` 语句控制仿真时间或等待特定事件。 示例:设计一个简单的计数器、加法器,描述状态机。 数据流建模 (Dataflow Modeling): 主要使用并发信号赋值语句,通过表达式描述数据在不同信号之间的流动。 适用于描述组合逻辑,如多路选择器、编码器、译码器。 示例:使用 `WITH-SELECT` 语句实现多路选择器。 结构级建模 (Structural Modeling): 通过实例化其他实体(组件)并连接它们的端口来描述设计。 适用于模块化设计,将大型系统分解为更小的、可管理的子模块。 介绍组件声明 (`COMPONENT`), 实例化的方法(位置映射和名称映射)。 示例:构建一个 ALU(算术逻辑单元),将各个逻辑门或更小的功能块实例化并连接。 混合建模: 结合上述几种建模方式,以达到最佳的设计效率和可读性。 时钟与复位: 同步设计 (Synchronous Design): 描述基于时钟边沿触发的电路,这是数字系统设计的通用范式。重点讲解如何利用时钟信号和敏感列表在进程中实现触发器和寄存器。 异步设计 (Asynchronous Design): 描述不依赖时钟的电路,在某些特定场景下(如全局时钟树不理想时)有应用,但设计和验证难度较大。 复位信号 (Reset Signal): 讲解同步复位和异步复位,以及它们在寄存器设计中的实现。 状态机 (Finite State Machine - FSM) 的建模: 详细介绍 Moore 型和 Mealy 型状态机的区别。 演示如何使用 VHDL 描述状态机,包括状态编码、状态转移逻辑和输出逻辑。 提供具体的 FSM 设计示例,如交通灯控制器、序列检测器。 第五章 VHDL的高级特性与实践 属性 (Attributes): VHDL 提供了丰富的属性,可以用来查询信号、类型、对象的信息,例如 `range`, `left`, `right`, `length`, `val`, `reverse_range` 等,有助于编写更灵活和通用代码。 函数 (Functions) 与过程 (Procedures): 介绍如何定义和使用函数(返回单个值)和过程(可包含多个语句,可修改参数),它们用于代码的复用和模块化。 包 (Packages) 与库 (Libraries): 讲解如何创建自己的库和包,以组织和共享可重用的VHDL代码和类型定义,提高设计效率。 通用体 (Generic) 与参数化设计 (Parameterized Design): 介绍 `GENERIC` 子句,使得模块可以参数化,例如,一个加法器可以参数化其数据宽度,从而在不同场景下重用同一模块。 并发语句与信号驱动 (Concurrent Statements and Signal Drivers): 深入分析 VHDL 的并发执行模型,理解信号如何在不同进程和并发语句之间传播和更新,以及信号的驱动和赋值对仿真结果的影响。 VHDL仿真与调试: 介绍常用的 VHDL 仿真器(如 ModelSim/QuestaSim, Vivado Simulator, Active-HDL 等)的基本使用。 讲解如何编写测试平台 (Testbench) 来驱动被测模块 (DUT - Design Under Test),并对输出结果进行检查。 介绍波形查看器 (Waveform Viewer) 的使用,以及如何通过波形分析来定位设计错误。 代码风格与最佳实践: 提供编写清晰、可读性强、易于维护的 VHDL 代码的建议,包括命名规范、注释、模块化设计、避免潜在陷阱等。 第六章 VHDL在FPGA和ASIC设计中的应用 FPGA设计流程: 详细介绍使用 EDA 工具(如 Xilinx Vivado, Intel Quartus Prime)进行 FPGA 设计的完整流程,包括项目创建、HDL 编译、综合、实现(布局布线)、时序分析、生成比特流,以及 FPGA 上的硬件调试。 重点讲解如何根据 FPGA 目标器件的特性优化 VHDL 代码。 ASIC设计流程: 介绍 ASIC 设计流程的特点,与 FPGA 设计的异同。 讲解 ASIC 设计中逻辑综合、时序收敛、功耗优化、版图设计等关键环节。 提及 ASIC 设计中更严格的验证和形式验证要求。 从VHDL到硬件的映射: 解释 EDA 工具如何将 VHDL 代码映射到 FPGA 的逻辑资源(LUTs, Flip-flops)或 ASIC 的标准单元库,以及这个映射过程的原理。 时序收敛 (Timing Closure) 的挑战与技巧: 探讨在高性能设计中,如何通过优化 VHDL 代码、调整综合和布局布线策略来满足严格的时序要求。 本书将通过丰富的实例和清晰的讲解,引导读者逐步掌握EDA技术和VHDL语言的精髓,使其能够独立完成中等规模的数字系统设计。无论是希望进入数字IC设计行业,还是从事FPGA开发,亦或是对数字硬件工作原理感兴趣的学生和工程师,本书都将是宝贵的参考资料。