EDA技术及其应用 第1章 概 述
1.1 EDA技术 EDA (Electronic Design Automation) EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL (Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。 EDA技术为现代电子理论和设计的表达与实现提供了可能性。
1.1 EDA技术 EDA技术发展阶段 20世纪70年代 MOS工艺已得到广泛的应用 20世纪80年代 集成电路设计进入了CMOS(互补场效应管)时代 20世纪90年代 EDA技术推向成熟和实用 21世纪后 ▲在FPGA上实现DSP应用 ▲在一片FPGA中实现一个完备的嵌入式系统 ▲ EDA软件不断推出 ▲ EDA使得电子领域各学科的界限更加模糊,更加互为包容 ▲基于EDA的用于ASIC设计的标准单元已涵盖大规模电子系统及复杂IP核模块 ▲软硬IP(Intellectual Property)核广泛应用 ▲ SoC高效低成本设计技术的成熟 ▲系统级、行为验证级硬件描述语言的出现,使复杂电子系统的设计和验证趋于简单
1.2 EDA技术应用对象 ASIC的设计和实现 1. 大规模可编程逻辑器件 2. 半定制或全定制ASIC 3. 混合ASIC FPGA/CPLD(或称可编程ASIC)开发应用 ASIC的设计和实现 实现目标 1. 大规模可编程逻辑器件 2. 半定制或全定制ASIC 门阵列ASIC 标准单元ASIC 全定制芯片 3. 混合ASIC
1.3 VHDL VHDL、Verilog HDL、ABEL、AHDL、SystemVerilog 、SystemC等 HDL VHDL--VHSIC(Very High Speed Integrated Circuit)Hardware Description Language VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。 VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。
1.4 EDA的优势 EDA技术 手工设计方法 ●计算机模拟验证,缩短设计周期 ; ●各类库的支持 ; ●极大地简化设计文档的管理 ; ●最具现代电子设计技术特征的功能是日益强大的逻辑设计仿真测试技术 ; ●设计者拥有完全的自主权,再无受制于人之虞 ; ●良好的可移植与可测试性,为系统开发提供了可靠的保证 ; ●能将所有设计环节纳入统一的自顶向下的设计方案中 ; ●系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。 手工设计方法 ●复杂电路的设计、调试十分困难; ●无法进行硬件系统仿真,若某一过程存在错误,查找和修改十分不便; ●设计过程中产生大量文档,不易管理; ●对于IC设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差; ●只有在设计出样机或生产出芯片后才能进行实测;
1.5 面向FPGA的EDA开发流程 1.5.1 设计输入 图1-1 FPGA的EDA开发流程
1.5 面向FPGA的EDA开发流程 1.5.1 设计输入 状态图输入 1. 图形输入 波形图输入 原理图输入 2. 硬件描述语言文本输入 1.5.1 设计输入 状态图输入 1. 图形输入 波形图输入 原理图输入 2. 硬件描述语言文本输入 将使用了某种硬件描述语言(HDL)的电路设计文本,如VHDL或Verilog的源程序,进行编辑输入。
1.5 面向FPGA的EDA开发流程 1.5.2 综合 将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配而成的过程。 1.5.2 综合 将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配而成的过程。 自然语言综合 自然语言表述 VHDL语言算法表述 行为综合 算法表述 寄存器传输级表述 逻辑综合 RTL级表述 逻辑门(触发器)表述 结构综合 FPGA的配置网表文件 版图综合 逻辑门表述 版图表述(ASIC设计)
1.5 面向FPGA的EDA开发流程 1.5.3 适配(布线布局) 1.5.4 仿真 1.5.3 适配(布线布局) 适配器也称结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、Jam格式的文件。适配所选定的目标器件必须属于原综合器指定的目标器件系列。 1.5.4 仿真 在编程下载前必须利用EDA工具对适配生成的结果进行模拟测试 仿真 时序仿真 功能仿真
1.6 PLD 1.6.1 PLD的分类 集成度 低集成度芯片 高集成度芯片 可编程逻辑器件 乘积项结构器件 查找表结构器件 编程工艺 熔丝(Fuse)型器件 反熔丝(Anti-fuse)型器件 EPROM型 EEPROM型 SRAM型 Flash型
1.6 PLD 1.6.2 PROM可编程原理 图1-2 PLD的互补缓冲器 图1-3 PLD的互补输入 图1-4 PLD中与阵列表示
1.6 PLD 1.6.2 PROM可编程原理 图1-7 PROM表达的PLD阵列图
1.6 PLD 1.6.2 PROM可编程原理 图1-8 用PROM完成半加器逻辑阵列
1.6 PLD 1.6.3 GAL GAL的OLMC单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等,为逻辑电路设计提供了极大的灵活性。由于具有结构重构和输出端的任何功能均可移到另一输出引脚上的功能,在一定程度上,简化了电路板的布局布线,使系统的可靠性进一步地提高。GAL的出现是复杂PLD的里程碑。
1.7 CPLD的结构与可编程原理 图1-9 MAX7000系列的单个逻辑宏单元结构
1.7 CPLD的结构与可编程原理 1.逻辑阵列块 对于每个LAB,输入信号来自3部分: (1)来自作为通用逻辑输入的PIA的36个信号; (2)来自全局控制信号,用于寄存器辅助功能; (3)从I/O引脚到寄存器的直接输入通道。 图1-10 MAX7128S的结构
1.7 CPLD的结构与可编程原理 2.逻辑宏单元 逻辑阵列 乘积项选择矩阵 逻辑宏单元 可编程寄存器 每个可编程寄存器可以按三种时钟输入模式工作: ◆ 全局时钟信号。 ◆ 全局时钟信号由高电平有效的时钟信号使能。 ◆ 用乘积项实现一个阵列时钟。
1.7 CPLD的结构与可编程原理 3.可编程连线阵列 图1-11 PIA信号布线到LAB的方式
1.7 CPLD的结构与可编程原理 4.I/O控制块 图1-12 EPM7128S器件的I/O控制块
1.8 FPGA的结构与工作原理 1.8.1 查找表逻辑结构 图1-13 FPGA查找表单元 图1-14 FPGA查找表单元内部结构
1.8.2 FPGA的结构与原理 图1-15 Cyclone LE结构图
1.8 FPGA的结构与工作原理 1.8.2 FPGA的结构与原理 图1-16 Cyclone LE普通模式
1.8 FPGA的结构与工作原理 1.8.2 FPGA的结构与原理 在Cyclone器件里面存在大量LAB 图1-17所示的LE排列成LAB阵列构成了Cyclone FPGA丰富的编程资源。 图1-17 Cyclone LAB结构
1.8 FPGA的结构与工作原理 1.8.2 FPGA的结构与原理 图1-18 LAB阵列
1.9 硬件测试技术 1.9.1 内部逻辑测试 在设计时加入用于测试的部分逻辑,即进行可测性设计(DFT,Design For Test),在设计完成后用来测试关键逻辑。 在ASIC设计中的扫描寄存器,是可测性设计的一种,原理是把ASIC中关键逻辑部分的普通寄存器用测试扫描寄存器来代替,在测试中可以动态地测试、分析设计其中寄存器所处的状态,甚至对某个寄存器加以激励信号,改变该寄存器的状态。
1.9 硬件测试技术 1.9.2 JTAG边界扫描测试 表1-1 边界扫描IO引脚功能 引 脚 描 述 功 能 TDI 1.9 硬件测试技术 1.9.2 JTAG边界扫描测试 表1-1 边界扫描IO引脚功能 引 脚 描 述 功 能 TDI 测试数据输入(Test Data Input) 测试指令和编程数据的串行输入引脚。数据在TCK的上升沿移入。 TDO 测试数据输出(Test Data Output) 测试指令和编程数据的串行输出引脚,数据在TCK的下降沿移出。如果数据没有被移出时,该引脚处于高阻态。 TMS 测试模式选择(Test Mode Select) 控制信号输入引脚,负责TAP控制器的转换。TMS必须在TCK的上升沿到来之前稳定。 TCK 测试时钟输入(Test Clock Input) 时钟输入到BST电路,一些操作发生在上升沿,而另一些发生在下降沿。 TRST 测试复位输入(Test Reset Input) 低电平有效,异步复位边界扫描电路(在IEEE规范中,该引脚可选)。
1.10 FPGA/CPLD产品概述 1.10.1 Altera公司FPGA和CPLD器件系列 2. ACEX系列FPGA Altera专门为通信(如xDSL调制解调器、路由器等)、音频处理及其他一些场合的应用而推出的芯片系列。 3. MAX系列CPLD 4. Cyclone系列FPGA低成本FPGA 5. Cyclone II系列FPGA
1.10 FPGA/CPLD产品概述 1.10.1 Altera公司FPGA和CPLD器件系列 1. Stratix II 系列FPGA Stratix II提供了高速I/O信号和接口: ◎ 专用串行/解串(SERDES)电路。 ◎ 动态相位调整(DPA)电路。 ◎ 支持差分I/O信号电平,包括HyperTransport™、LVDS、LVPECL及差分SSTL和HSTL。 ◎ 提供外部存储器接口。
1.10 FPGA/CPLD产品概述 1.10.2 Lattice公司CPLD器件系列 1.10.3 Xilinx公司的FPGA和CPLD器件系列 1. Virtex-4系列FPGA 2. SpartanⅡ& Spartan-3 & Spartan 3E器件系列 3. XC9500 & XC9500XL系列CPLD
1.11 编程与配置 目前常见的大规模可编程逻辑器件的编程工艺有三种: 1.基于电可擦除存储单元的EEPROM或Flash技术。 1.11 编程与配置 目前常见的大规模可编程逻辑器件的编程工艺有三种: 1.基于电可擦除存储单元的EEPROM或Flash技术。 2.基于SRAM查找表的编程单元。 3.基于反熔丝编程单元。
1.12 FPGA配置器件 由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程 主动配置方式 被动配置方式 由外部计算机或控制器控制配置过程 EPC器件中的EPC2型号的器件是采用Flash存储工艺制作的具有可多次编程特性的配置器件。
1.13 QuartusII 图1-19 Quartus II设计流程
1.14 IP核 用HDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。 完成了综合的功能块 提供设计的最终阶段产品:掩膜
1.15 EDA的发展趋势 随着市场需求的增长,集成工艺水平及计算机自动设计技术的不断提高,促使单片系统,或称系统集成芯片成为IC设计的发展方向 随着系统开发对EDA技术的目标器件各种性能要求的提高,ASIC和FPGA将更大程度相互融合。 现在,传统ASIC和FPGA之间的界限正变得模糊。系统级芯片不仅集成RAM和微处理器,也集成FPGA。整个EDA和IC设计工业都朝这个方向发展,这并非是FPGA与ASIC制造商竞争的产物,而对于用户来说,意味着有了更多的选择。