730 likes | 1.05k Views
EDA 技术. 第 9 章 FPGA 硬件设计. 内 容. 9.1 Cyclone 系列 FPGA 器件的特点 9.2 EP1C3 FPGA 硬件设计 9.3 Quartus II 开发平台应用 9.4 简单的 LED 测试程序. 9.1 Cyclone 系列 FPGA 器件的特点. CPLD 与 FPGA 的选择 Cyclone 系列 FPGA 器件的特点. CPLD 与 FPGA 的选择. CPLD 与 FPGA 有什么区别?. FPGA.
E N D
EDA技术 • 第9章 FPGA硬件设计
内 容 • 9.1 Cyclone系列FPGA器件的特点 • 9.2 EP1C3 FPGA硬件设计 • 9.3 Quartus II开发平台应用 • 9.4 简单的LED测试程序
9.1 Cyclone系列FPGA器件的特点 • CPLD与FPGA的选择 • Cyclone系列FPGA器件的特点
CPLD与FPGA的选择 • CPLD与FPGA有什么区别?
FPGA • 1984年在硅谷工作的2个聪明的工程师和1个营销主管作了一个梦。 Bernie Vonderschmitt、Ross Freeman和Jim Barnett梦想创立一家不同于一般的公司。 Bernie Vonderschmitt是Xilinx创始人之一,提出了“无工厂”半导体这一创新理论 Ross Freeman是Xilinx创始人之一,发明了“现场可编程门阵列”(FPGA)这种新型可编程逻辑。
Ross Freeman是 Xilinx创始人之一,发明了“现场可编程门阵列”( FPGA)这种新型可编程逻辑。 Bernie Vonderschmitt是Xilinx创始人之一,提出了“无工厂”半导体这一创新理论。 他们希望创建一家在新领域内开发和推出先进技术的公司。 并且,他们还希望以这种方式领导它:在这里工作的人们热爱他们的工作、享受工作的乐趣,并对他们所从事的工作着迷。 这项推动Xilinx成立的技术在1984年的时候还被人们认为是古怪的理论。 新型半导体(现称为现场可编程门阵列)由Xilinx创始人之一Ross Freeman发明,是一种全新的可编程逻辑。
有效的合作伙伴关系 • Bernie Vonderschmitt是一名工程师,并获MBA学位,提出了一个功能强大的、针对新型企业的企业模型。 他担任RCA的Solid State部门总经理之职时,他确信应与3个生产半导体的工厂合作,以便避开化费昂贵并且还很麻烦的半导体工厂。 “如果我要创建一家半导体公司,它要实现无工厂化,”他发誓说。 “我们要找到能够为我们进行生产的合作伙伴。” 这正是Xilinx公司1984年所作的工作。 自那以后,这种思想开始盛行,以至于现在全球有近700家无工厂半导体公司。
FPGA (Field Programmable Gate Arry)是指现场可编程门阵列,最早由Xilinx公司发明。内部由许多陈列排列的LE(Logic Element)组成,编程多为SRAM 工艺,基于查找表(Look Up Table)结构,要外挂配置用的EPROM。现在也有内部编程采用Fllash工艺的,掉电后不须重新烧录。
CPLD • Altera由Robert Hartmann、Michael Magranet、Paul Newhagen和Jim Sansbury于1983年创立,这些有远见的人们对当时的研究进行投资,认为半导体客户将从用户可编程标准产品中受益,逐步取代逻辑门阵列。为满足这些市场需求,Altera的创始人发明了首款可编程逻辑器件(PLD)棗EP300,开创了半导体业界全新的市场领域。这一灵活的新解决方案在市场上打败了传统的标准产品,为Altera带来了半导体创新领先企业的盛誉。 • 1983 : Altera公司成立 • 1984:EP300 器件和管芯, 世界上第一款可编程逻辑器件(PLD) 除了英特尔和AMD之间波澜起伏的市场争斗,半导体行业的竞争都比不上Xilinx和Altera之间的冲突来得有趣、刺激。
内部由许多陈列排列的乘积项组成,编程多为EEPROM工艺,无需外挂配置用的EPROM。内部由许多陈列排列的乘积项组成,编程多为EEPROM工艺,无需外挂配置用的EPROM。
Lattice在PLD领域以创新求发展 • Lattice是ISP技术和器件的发明者,同时也是isp/pLSI,GAL/ispGAL、ispGDS和E2CMOS PLD技术的开拓者。目前,Lattice拥有业界最快的PLD-isp LSI 2032VE,它的速度已达到了300MHz,同时有3ns的管脚到管脚的延迟,是其第二代3.3V Super FAST BFW高密度PLD的代表之一。Lattice的各种CPLD、SPLD(简单PLD )产品中三分之二用于通信领域,公司的销售工程师80%左右都曾是产品设计工程师。 • 什么叫isp技术?
什么叫isp下载技术 • ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程
尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: • ①CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 • ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 • ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。
④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 • ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 • ⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程 数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 • ⑧CPLD保密性好,FPGA保密性差。
⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。 • CPLD最基本的单元是宏单元。一个宏单元包含一个寄存器(使用多达16个乘积项作为其输入)及其它有用特性。 因为每个宏单元用了16个乘积项,因此设计人员可部署大量的组合逻辑而不用增加额外的路径。这就是为何CPLD被认为是“逻辑丰富”型的。 • 宏单元以逻辑模块的形式排列(LB),每个逻辑模块由16个宏单元组成。宏单元执行一个AND操作,然后一个OR操作以实现组合逻辑。
CPLD有什麽好处? • 1、I/O数量多 CPLD的好处之一是在给定的器件密度上可提供更多的I/O数,有时甚至高达70%。 2、时序模型简单 CPLD优于其它可编程结构之处在于它具有简单且可预测的时序模型。这种简单的时序模型主要应归功于CPLD的粗粒度特性。 CPLD可在给定的时间内提供较宽的相等状态,而与路由无关。这一能力是设计成功的关键,不但可加速初始设计工作,而且可加快设计调试过程。 3、粗粒CPLD结构的优点 CPLD是粗粒结构,这意味著进出器件的路径经过较少的开关,相应地延迟也小。因此,与等效的FPGA相比,CPLD可工作在更高的频率,具有更好的性能。 4、CPLD的另一个好处是其软件编译快,因为其易于路由的结构使得布放设计任务更加容易执行。
细粒FPGA结构的优点 • 1、FPGA是细粒结构,这意味著每个单元间存在细粒延迟。 • 如果将少量的逻辑紧密排列在一起,FPGA的速度相当快。然而,随著设计密度的增加,信号不得不通过许多开关,路由延迟也快速增加,从而削弱了整体性能。CPLD的粗粒结构却能很好地适应这一设计布局的改变。 • 2、如果设计中使用到大量触发器(时序逻辑),那么使用FPGA就是一个很好选择。 • 根据结构和原理可以知道,PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此,PLD适合用于设计译码等复杂组合逻辑。 3、 3、FPGA芯片中包含的LUT和触发器的数量非常多 • FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。
9.1 Cyclone系列FPGA器件的特点 • 2002年9月23日,Altera宣布推出新一代低成本FPGA。Cyclone(飓风)是一款低价格、中等密度的FPGA,采用0.13um,全铜SRAM工艺,容量从2,910个逻辑单元到20,010个逻辑单元,1.5v内核。
9.1.3 Cyclone II器件介绍 • Altera公司于2004年6月推出了Cyclone II系列FPGA器件,是Cyclone系列FPGA的新一代产品,也是低成本FPGA类型。CycloneII FPGA采用TSMC 90nm Low-K工艺,1.2v内核。CycloneII将和高性能的StratixII FPGA成为Altera未来几年中的两个主要FPGA产品。
9.1.4 Cyclone III器件介绍 • Altera公司于2007年07月宣布开始发售业界的首款65nm低成本FPGA——Cyclone III系列。Cyclone III FPGA含有5K至120K逻辑单元(LE),288个数字信号处理(DSP)乘法器,存储器达到4Mbits。 • Cyclone III系列比前一代产品每逻辑单元成本降低20%,使设计人员能够更多地在成本敏感的应用中使用FPGA。 • Cyclone III FPGA 采用台湾半导体生产公司 (TSMC) 的 65nm 低功耗 (LP) 工艺技术生产,其他的主要半导体生产商也在小型器件中采用了该技术。
9.1.5 Altera串行配置器件简介 • Altera串行配置器件是工业级低成本的配置器件。提供在系统编程(ISP)和多次编程能力,Altera的串行配置器件是Cyclone III, Cyclone II和Cyclone系列器件最完美的补充,它们也给Stratix III, Stratix II 和Stratix FPGA系列提供了低成本、小型化的解决方案。这种串行配置器件可提供存储容量的范围从1Mbit到64MMbit。
9.2 EP1C3 FPGA硬件设计 • EDA与传统电子设计方法 • 以Cyclone系统的EP1C3为例,介绍FPGA的最小系统设计方法。
EDA与传统电子设计方法 • 在做课程设计时,你们的设计步骤如何?
EDA与传统电子设计方法 1 传统的电子设计方法 传统的电子设计技术通常是自底向上的,即: 首先确定构成系统的最底层的电路模块或元件的结构和功能; 然后根据主系统的功能要求,将它们组合成更大的功能块,使它们的结构和功能满足上层系统的要求。 以此流程,逐步向上递推,直至完成整个目标系统的设计。
EDA与传统电子设计方法 例如,对于—般电子系统的设计,使用自底向上的设计方法,必须首先决定使用的器件类别和规格,如74系列的器件、某种RAM和ROM、某类CPU或单片机以及某些专用功能芯片等; 然后是构成多个功能模块,如数据采集控制模块、信号处理模块、数据交换和接口模块等,直至最后利用它们完成整个系统的设计。 以一个六进制计数器设计为例作以说明:
EDA与传统电子设计方法 第一步,选择逻辑元、器件。由数字电路的基本知识可知,可以用与非门,或非门,D触发器,JK触发器等基本逻辑元、器件来构成一个计数器。设计者根据电路尽可能简单,价格合理,购买和使用方便及各自的习惯来选择六进制计数器的逻辑元、器件。本例中我们选择JK触发器和D触发器作为六进制计数器的主要逻辑元、器件。 第二步,进行电路设计。假设六进制计数器采用约翰逊计数器(环扭型)。3个触发器应该产生8种状态,现在只使用6个状态,将其中的010和101两种状态禁止掉。
自底向上设计方法的特点是必须首先关注并致力于解决系统最底层硬件的可获得性,以及它们的功能特性方面的诸多细节问题;自底向上设计方法的特点是必须首先关注并致力于解决系统最底层硬件的可获得性,以及它们的功能特性方面的诸多细节问题; 各种不可预测的外部因素,都将可能使前面的工作在整个逐级设计和测试过程中,始终必须顾及具体目标器件的技术细节。 在这个设计过程中的任一时刻,最底层目标器件的更换,或某些技术参数不满足总体要求,或缺货,或由于市场竞争的变化,临时提出降低系统成本,提高运行速度前功尽弃,工作又得重新开始。 由此可见,在某些情况下,自底向上的设计方法是一种低效、低可靠性、费时费力、且成本高昂的设计方法。
2 自顶向下的电子设计方法 在电子设计领域,自顶向下的设计方法,只有在EDA技术得到快速发展和成熟应用的今天才成为可能。自顶向下设计方法的有效应用必须基于功能强大的EDA工具、具备集系统描述、行为描述和结构描述功能为一体的VHDL硬件描述语言,以及先进的ASIC制造工艺和FPGA开发技术。当今,自顶向下的设计方法已经是EDA技术的首选设计方法,是ASIC或FPGA开发的主要设计手段。 在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。一个项目的设计过程包括从自然语言说明到VHDL的系统行为描述、系统的分解、RTL模型的建立、门级模型产生,到最终的可以物理布线实现的底层电路,就是从高抽象级别到低抽象级别的整个设计周期。后端设计还必须包括涉及硬件的物理结构实现方法和测试(仍然利用计算机完成)。
自顶而下的设计方法能使系统被分解为各个模块的集合之后,可以对设计的每个独立模块指派不同的工作小组。这些小组可以工作在不同地点,甚至可以分属不同的单位,最后将不同的模块集成为最终的系统模型,并对其进行综合测试和评价。自顶而下的设计方法能使系统被分解为各个模块的集合之后,可以对设计的每个独立模块指派不同的工作小组。这些小组可以工作在不同地点,甚至可以分属不同的单位,最后将不同的模块集成为最终的系统模型,并对其进行综合测试和评价。
第一层次是行为描述。 • 该段VHDL语言程序勾画出了六进制计数器的输入输出引脚和内部计数器过程的技术状态变化时序和关系。这实际上是计数器工作模型的描述。当该程序仿真通过以后,说明六进制计数器模型是正确的。
第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。行为方式描述的系统结构的程序,抽象程度高,是很难直接映射到具体逻辑元件结构的硬件实现的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。可通过EDA软件自动完成。第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。行为方式描述的系统结构的程序,抽象程度高,是很难直接映射到具体逻辑元件结构的硬件实现的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。可通过EDA软件自动完成。 第三层次是逻辑综合。逻辑综合这一阶段是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可以将逻辑综合结果,以逻辑原理图方式输出。也就是说,逻辑综合的结果相当于在人工设计硬件电路时,根据系统要求画出了系统的逻辑电路原理图。
EDA与传统电子设计方法的比较 传统的数字电子系统或IC设计中,手工设计占了较大的比例。一般先按电子系统的具体功能要求进行功能划分,然后对每个子模块画出真值表,用卡诺图进行手工逻辑简化,写出布尔表达式,画出相应的逻辑线路图,再据此选择元器件,设计电路板,最后进行实测与调试。
一、手工设计方法的缺点 (1)复杂电路的设计、调试十分困难。 (2)如果某一过程存在错误,查找和修改十分不便。 (3)设计过程中产生大量文档,不易管理。 (4)对于集成电路设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差。 (5)只有在设计出样机或生产出芯片后才能进行实测。
二、EDA设计方法的特点 (1)采用硬件描述语言作为设计输入。 用HDL对数字电子系统进行抽象的行为与功能描述到具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性。可以大大降低设计成本,缩短设计周期。 (2)库(Library)的引入。 EDA工具之所以能够完成各种自动设计过程,关键是有各类库的支持。如逻辑仿真时的模拟库、逻辑综合时的综合库、版图综合时的版图库、测试综合时的测试库等。这些库都是EDA设计公司与半导体生产厂商紧密合作、共同开发的。 (3)设计文档的管理。 某些HDL语言也是文档型的语言(如VHDL),极大地简化了设计文档的管理。
(4)强大的系统建模、电路仿真功能。 (5)具有自主知识产权。 无论传统的应用电子系统设计得如何完美,使用了多么先进的功能器件,如某公司的单片机、CPU、DSP处理器、数字锁相环或其他特定功能的IC,都掩盖不了一个无情的事实,即该系统对于设计者来说,没有任何自主知识产权可言,因为系统中的关键性的器件并非出自设计者之手,这将导致该系统在许多情况下的应用直接受到限制,而且有时是致命的。如该系统中某关键器件失去供货来源,或作为极具竞争性的产品批量外销,或应用于关键的军事设备中等情况。基于EDA技术的设计则不同,由于用HDL表达的成功的专用功能设计在实现目标方面有很大的可选性,它既可以用不同来源的通用FPGA/CPLD实现,也可以直接以ASIC来实现,设计者拥有完全的自主权,再无受制于人之虞。
(6)开发技术的标准化、规范化以及IP核的可利用性。(6)开发技术的标准化、规范化以及IP核的可利用性。 (7)适用于高效率大规模系统设计的自顶向下设计方案。从电子设计方法学来看,EDA技术最大的优势就是能将所有设计环节纳入统一的自顶向下的设计方案中。传统的电子设计技术中,由于没有规范的设计工具和表达方式,无法进行这种先进的设计流程。 (8)全方位地利用计算机自动设计、仿真和测试技术。
(9)对设计者的硬件知识和硬件经验要求低。 对于传统的电子设计而言,对电子设计工程师似乎有更多的要求:他在电子技术理论和设计实践方面必须是行家里手;他不但应该是软件高手,同时还是经验丰富的硬件设计能工巧匠;他必须熟悉针对不同单片机或DSP器件开发系统的使用方法和性能,还必须知道许多器件的封装形式和电器特性,知道不同的在线测试仪表的使用方法和性能指标;他要熟练掌握大量的与设计理论和优化技术毫无关系的技能技巧,不得不事无巨细,事必躬亲。
(10)高速性能好。这是与以CPU为主的电路系统相比。(10)高速性能好。这是与以CPU为主的电路系统相比。 以软件方式控制操作和运算的系统速度显然无法与纯硬件系统相比,因为软件是通过顺序执行指令的方式来完成控制和运算步骤的,而用HDL语言描述的系统是以并行方式工作的。 以对A/D进行数据采样控制为例,采样周期包括对A/D工作时序的控制和将每一次获得的数据存入RAM(或FIFO)中。工作于12MHz晶振频率的MCS51系列单片机对A/D控制的采样频率为20KHz上下,即约每秒两万次。但若用FPGA中设计的状态机来完成同样的工作,如对于具有流水线采样工作时序的A/D来说,只需两个状态即可完成一次采样,状态间转换的时间仅为一个时钟周期,而如果FPGA的工作频率是100MHz,则采样速度可达50MHz。
(11)纯硬件系统的高可靠性。 大量事实表明,由CPU(或单片机)为核心的系统的可靠性通常不高,而且与CPU的种类关系不大,即任何由CPU为主控单元的系统,都不得不受到用户的特别关注。其主要原因是,以软件运行为核心的CPU的指令地址指针在外部干扰下,容易发生不可预测的变化,而使运行陷入不可预测的非法循环中,使系统瘫痪。 IP核 IP(Intellectual Property)就是知识产权核或知识产权模块的意思,在EDA技术和开发中具有十分重要的地位。著名的美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。IP分软IP、固IP和硬IP。
9.2 EP1C3 FPGA硬件设计 • 以Cyclone系统的EP1C3为例,介绍FPGA的最小系统设计方法。在设计FPGA的最小系统时,一般需要注意以下几个方面: • (1)必需的功能:最小系统之中,除了EP1C3芯片之外,应该还包括3.3V的I/O口用稳压电源、内核用1.5V稳压电源、测试用发光二极管指示灯、JTAG口、I/O口引出排针、有源晶振电路等。 • (2)I/O口的引出与排列:最小系统板,除了用于做一些简单的编程实验之外,最主要还是用于与其它扩展板配合使用,即可以嵌入到一些复杂的系统中。因此,尽量把所有的I/O都引出,同时应该分类引出,并且排列比较连贯。
(3)器件的选择:对于低成本小系统,一般选择EP1C3或EP1C6,稳压芯片一般选择1117系列。有许多厂家都有1117系列,并且各种不同的输出电压值都有,方便设计时灵活选择。(3)器件的选择:对于低成本小系统,一般选择EP1C3或EP1C6,稳压芯片一般选择1117系列。有许多厂家都有1117系列,并且各种不同的输出电压值都有,方便设计时灵活选择。 • (4)可选功能:1~3路RS_232接口、I2C总路线存储器(例如24C02、24C64)。如果考虑到将来想以Nios II的应用为主,FPGA可以改用EP1C6,144引脚封装的EP1C6与EP1C3除了几个I/O有特别的功能外,其它I/O完全兼容。可按照Altera公司或相关开发板公司提供的Nios II开发板加上外部Flash和SDRAM。
9.2.3 JTAG接口 • JTAG接口如图9.7所示。
对于FPGA开发,我们更常用的是另外一个配置接口,即主动串行配置(Active Serial Programming ,简称AS接口)接口。AS接口与配置芯片EPCS1的连接图如图9.8所示。