内容简介
《FPGA技术及应用》依托重庆市教委教研教改项目(项目编号:163163)和重庆工程学院校内教改重点项目(项目编号:JY2015204),按照CDIO工程教育创新模式,结合教育部“卓越工程师教育培养计划”的实施原则,突出基本理论与实际应用相结合。通过合理安排内容,在保证基本理论知识的前提下,兼顾传统设计方法与软硬件设计方法、单元电路与系统设计的关系。
《FPGA技术及应用》以Altera的FPGA为例,对FPGA内部结构做了深入的分析,并介绍了Altera公司的Modelsim仿真软件及Quartusll开发环境。
《FPGA技术及应用》共8章。第1章FPGA入门简介,讲述可编程器件的一些基本概念、主要应用领域、相比传统技术的优势以及开发流程。第2章VerilogHDL的基础知识,介绍使用*广泛的Verilog语言的基本语法及使用方法。第3章设计验证,讲述如何验证所电路的正确性。第4章Modelsim仿真软件,介绍Modelsim仿真软件的安装流程及使用方法。第5章Quartusll综合工具,介绍Quartusll综合软件安装流程、使用方法及如何下载程序至开发板上。第6章可综合模型设计,介绍优良的代码书写规范和风格。第7章有限状态机的设计,使用2个实例着重介绍时序设计的应用。第8章FPGA系统设计实例,通过6个项目来展示FPGA的一些设计流程及在线调试方法。
内页插图
目录
第1章 FPGA入门简介
1.1 FPGA发展历程
1.2 FPGA与ASIC、CPLD的区别
1.2.1 FPGA与CPLD
1.2.2 FPGA与CPLD
1.3 FPGA工作原理
1.3.1 FPGA的基本特点
1.3.2 FPGA配置模式
1.4 FPGA设计流程与设计方法
1.4.1 关键步骤的实现
1.4.2 自顶向下和自底向上
1.4.3 基于lP核的设计
1.5 主要FPGA/CPLD厂家
1.6 FPGA的应用
1.7 EAD技术
1.8 本书的编排
第2章 VerilogHDL的基础知识
2.1 硬件描述语言(HDL)概述
2.1.1 硬件描述语言的优越性
2.1.2 硬件描述语言的发展历史
2.1.3 HDL语言的主要特征
2.1.4 VerilogHDL与VHDL的比较
2.1.5 VerilogHDL设计流程及设计方法简介
2.1.6 硬件描述语言新的发展
2.2 程序结构
2.3 词法习俗
2.4 数据类型
2.4.1 物理数据类型
2.4.2 抽象数据类型
2.5 运算符和表达式
2.5.7 其他运算符
2.5.8 运算符优先级排序
2.6 控制结构
2.6.1 选择结构
2.6.2 重复结构
2.7 其他语句
2.8 任务和函数结构
2.9 时序控制
2.9.1 延迟控制
2.9.2 事件
2.9.3 等待语句
2.9.4 延迟定义块
第3章 设计验证
3.1 验证综述
3.1.1 验证的概念
3.1.2 验证和测试
3.1.3 自顶向下和自底向上的验证方法
3.1.4 主要验证技术
3.1.5 验证工具介绍
3.1.6 验证计划和流程
3.2 功能验证
3.2.1 验证程序(testbench)的组成
3.2.2 实用构造testbench技术
3.3 基于断言的验证
3.4 时序验证
3.4.1 静态时序分析概述
3.4.3 假路径和多周期路径
第4章 Modelsim仿真软件
4.1 Modelsim软件安装
4.2 Modelsim仿真方法
4.2.1 前仿真
4.2.2 后仿真
4.3 Modelsim仿真的基本步骤
4.3.1 建立库
4.3.2 编写与编译测试文件
4.3.3 执行仿真
4.4 Modelsim波形
4.4.1 手动创建输入波形
4.4.2 观察特定信号波形
……
第5章 Quartus综合工具
第6章 可综合模型设计
第7章 有限状态机的设计
第8章 FPGA系统设计实例
参考文献
前言/序言
FPGA(现场可编程门阵列)是一种大规模可编程逻辑器件,在当前的电子设计领域被广泛应用。虽然FPGA芯片的成本较高,但是它给电子系统所带来的不可限量的速度和带宽,及其在灵活性、小型性方面的优势,越来越被追求高性能、偏重定制化需求的开发者所青睐。因此,在高校开设此门课程,以适应电子设计专业的发展需要,对培养专业人才,强化学生实践能力意义重大。
本书依托重庆市教委教研教改项目(项目编号:163163)和重庆工程学院校内教改重点项目(项目编号:JY2015204),按照CDIO工程教育创新模式,结合教育部“卓越工程师教育培养计划”的实施原则,突出基本理论与实际应用相结合。通过合理安排内容,在保证基本理论知识的前提下,兼顾传统设计方法与软硬件设计方法、单元电路与系统设计的关系。本书以Altera的FPGA为例,对FPGA内部结构做了深入的分析,并介绍了Altera公司的Modelsim仿真软件及Quartusll开发环境。
全书共8章。第1章FPGA入门简介,讲述可编程器件的一些基本概念、主要应用领域、相比传统技术的优势以及开发流程。第2章VerilogHDL的基础知识,介绍使用最广泛的Verilog语言的基本语法及使用方法。第3章设计验证,讲述如何验证所电路的正确性。第4章Modelsim仿真软件,介绍Modelsim仿真软件的安装流程及使用方法。第5章Quartusll综合工具,介绍Quartusll综合软件安装流程、使用方法及如何下载程序至开发板上。第6章可综合模型设计,介绍优良的代码书写规范和风格。第7章有限状态机的设计,使用2个实例着重介绍时序设计的应用。第8章FPGA系统设计实例,通过6个项目来展示FPGA的一些设计流程及在线调试方法。
全书由重庆工程学院李成勇主任统稿和审校,其中第4、5、6、7、8章由李翠锦执笔,第1、3章由朱济宇执笔,第2章由钱雅楠执笔。另外,在本书的编写过程中,得到了曾凡鑫教授的大力支持,他为本书提出了许多宝贵意见,在此表示感谢。
限于编者水平,书中难免存在不足之处,恳请各位专家和读者批评指正。
《集成电路设计与仿真》 内容概述: 本书旨在系统阐述集成电路(IC)设计的理论基础、流程方法以及实际应用,为读者构建一个完整、深入的学习框架。从最基本的半导体器件原理出发,逐步深入到复杂的数字逻辑设计、模拟电路设计、以及物理版图实现等关键环节。全书紧密结合行业主流EDA(Electronic Design Automation)工具,通过理论讲解与实例演示相结合的方式,帮助读者掌握现代集成电路设计所需的理论知识和实践技能。 第一部分:集成电路基础与设计流程 本部分将首先回顾和巩固集成电路设计的基石——半导体器件物理。我们将详细讲解MOSFET(金属氧化物半导体场效应晶体管)和BJT(双极结型晶体管)的工作原理、特性曲线、以及关键参数的意义。在此基础上,深入探讨CMOS(互补金属氧化物半导体)工艺的特点,分析其在功耗、速度和集成度方面的优势,为后续的电路设计打下坚实的理论基础。 接着,本书将全面介绍集成电路设计的整体流程,从需求分析、架构设计,到逻辑设计、仿真验证,再到物理设计、流片制造,最后到封装测试,层层递进,梳理清晰。我们将重点讲解不同设计阶段所采用的方法论和关键技术,例如: 需求分析与规格定义: 如何将用户需求转化为精确的技术规格,是IC设计的第一步,也是至关重要的一步。 架构设计(Architecture Design): 宏观层面的系统划分、模块定义、接口设计,决定了芯片的整体性能和可实现性。我们将介绍一些常用的架构设计方法和权衡技巧。 逻辑设计(Logic Design): 使用硬件描述语言(HDL),如Verilog或VHDL,将抽象的逻辑功能转化为可综合的电路网表。我们将深入讲解HDL的语法、常用结构、以及如何编写高效、可综合的代码。 功能仿真(Functional Simulation): 在逻辑设计阶段,通过仿真器验证设计的逻辑功能是否符合预期。我们将详细介绍仿真器的使用方法,波形分析技巧,以及如何编写激励(testbench)来全面覆盖设计场景。 综合(Synthesis): 将HDL代码转化为门级网表,这一过程需要考虑时序、面积和功耗等约束。本书将讲解综合工具的工作原理、常用约束设置,以及如何优化综合结果。 静态时序分析(Static Timing Analysis, STA): 在综合和布局布线后,进行精确的时序检查,确保电路在最高工作频率下能够稳定运行。我们将深入讲解时序模型的建立、关键路径的识别、以及时序违例的分析和修复方法。 物理设计(Physical Design): 包括布局(Placement)、时钟树综合(Clock Tree Synthesis, CTS)、布线(Routing)等环节,将逻辑网表转化为可在晶圆上制造的版图。我们将讲解这些过程的算法原理、关键技术和优化策略。 版图设计规则检查(Design Rule Checking, DRC)与电气规则检查(Layout Versus Schematic, LVS): 在版图完成后,必须进行严格的检查,确保版图符合半导体制造厂的要求,并且逻辑功能与版图一致。 第二部分:数字集成电路设计 本部分将专注于数字集成电路的设计方法与实践。我们将从最基础的组合逻辑和时序逻辑电路出发,逐步过渡到更复杂的数字系统设计。 组合逻辑电路设计: 详细讲解门电路、加法器、减法器、多路选择器、译码器、编码器等基本组合逻辑模块的设计和Verilog/VHDL实现。 时序逻辑电路设计: 深入分析触发器(D触发器、JK触发器、T触发器)、寄存器、计数器、状态机(有限状态机FSM)的设计原理和实现技巧。我们将重点讲解Mealy型和Moore型状态机的区别及其在实际应用中的设计方法。 同步与异步设计: 讨论同步设计在数字系统中广泛应用的原因,以及异步设计的一些基本概念和适用场景。 高级数字设计技术: 介绍一些更高级的设计技术,如流水线(Pipelining)以提高性能,缓存(Cache)的设计与原理,以及数据通路(Datapath)和控制通路(Control Path)的设计方法。 特定功能模块设计: 讲解一些常见的数字功能模块的设计,例如: 存储器(Memory)设计: RAM(随机访问存储器)和ROM(只读存储器)的基本结构、接口和设计考量。 算术逻辑单元(Arithmetic Logic Unit, ALU): 复杂算术运算和逻辑运算的实现。 接口模块设计: 如UART(通用异步收发器)、SPI(串行外设接口)、I2C(集成电路互联总线)等常用通信接口的设计。 低功耗设计技术(Low Power Design): 针对移动设备和高性能计算的需求,介绍时钟门控(Clock Gating)、电源门控(Power Gating)、动态电压频率调整(DVFS)等低功耗设计策略。 验证方法学(Verification Methodology): 强调验证在IC设计中的重要性,介绍各种验证方法,如面向测试的设计(DFT),以及更高级的验证技术,如断言(Assertions)、随机验证(Random Verification)和覆盖率(Coverage)分析。 第三部分:模拟与混合信号集成电路设计 本部分将深入探讨模拟电路和混合信号集成电路的设计。 模拟电路基础: 回顾和扩展模拟电路设计的基础知识,包括放大器(共源共栅放大器、差分放大器、运算放大器)、滤波器、振荡器、稳压器等基本模拟模块的设计原理和电路结构。 CMOS模拟电路设计: 重点介绍CMOS工艺下模拟电路的设计方法,包括器件的跨导、输出电阻、噪声特性等关键参数的分析,以及各种CMOS基本模拟电路的实现。 运算放大器设计: 详细讲解不同类型的运算放大器(如单级、多级、折叠式)的设计,包括增益、带宽、稳定性、共模抑制比(CMRR)、电源抑制比(PSRR)等关键指标的分析和优化。 数据转换器(Data Converters): 深入研究模数转换器(ADC)和数模转换器(DAC)的设计原理、不同架构(如逐次逼近、流水线、Sigma-Delta)的优缺点,以及相关的性能指标(如分辨率、采样率、信噪比、失真)。 低噪声与低功耗模拟电路设计: 探讨如何在模拟电路设计中实现低噪声和低功耗,这在许多应用中至关重要。 混合信号集成电路(Mixed-Signal Integrated Circuits): 介绍数字和模拟电路如何在一个芯片上协同工作,以及混合信号系统设计中的挑战和解决方案。我们将讨论时钟同步、信号完整性、电源耦合等问题。 第四部分:EDA工具与实际应用 本部分将侧重于介绍集成电路设计过程中广泛使用的EDA工具,并结合实际应用案例进行讲解。 EDA工具概览: 介绍主流EDA厂商提供的设计工具,如Synopsys、Cadence、Mentor Graphics等,以及不同设计阶段所使用的工具类别,包括: HDL仿真器: 如VCS、ModelSim/QuestaSim。 逻辑综合工具: 如Design Compiler。 静态时序分析工具: 如PrimeTime。 布局布线工具: 如Innovus、ICC2。 版图设计工具: 如Virtuoso。 物理验证工具: 如Calibre。 使用EDA工具进行设计流程演示: 通过具体的项目实例,演示从RTL编码、功能仿真、综合、STA、布局布线到物理验证的完整流程。我们将选择一些具有代表性的应用场景,如简单的CPU核、嵌入式控制器、数字信号处理单元等。 实际应用案例分析: 结合当前热门的集成电路应用领域,如物联网(IoT)设备、通信芯片、嵌入式系统、消费电子产品等,深入分析这些领域中集成电路设计的特点、挑战和解决方案。我们将讨论如何根据具体应用的需求,选择合适的架构、工艺和设计方法。 流片与制造流程简介: 简要介绍从版图设计完成到最终芯片制造完成的流程,包括掩膜制作、晶圆制造、封装和测试等环节,让读者对整个IC产业有一个宏观的认识。 学习目标: 通过学习本书,读者将能够: 1. 理解集成电路设计的基本原理和核心概念。 2. 掌握数字和模拟电路设计的常用方法和技巧。 3. 熟练使用主流EDA工具进行IC设计流程的实践。 4. 能够独立完成一些中小型集成电路的设计项目。 5. 了解当前集成电路设计领域的最新发展趋势和应用方向。 本书适合集成电路设计领域的初学者、在校学生、以及希望提升IC设计能力的工程师阅读。本书力求理论与实践相结合,为读者提供一条通往集成电路设计领域的坚实路径。