




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 【要求】 理解可编程逻辑器件和EDA技术的初步知识。 【知识点】理解EDA技术的概念理解EDA技术的发展理解EDA技术的主要内容理解可编程逻辑器件的发展理解可编程逻辑器件的分类与结构及原理理解面向CPLD/FPGA的设计流程 【重点和难点】EDA技术的概念和发展可编程逻辑器件的分类与结构第1章 EDA技术概述下一页第1页,共734页。第1章 EDA技术概述1.1 EDA历史与发展1.2 可编程逻辑器件1.3 本章小结上一页第2页,共734页。一、EDA技术的概念 电子设计自动化(Electronic Design Automation, EDA)技术已经成为现代电子设计技术的核心,广泛应用于
2、集成电路IC、复杂电了电路和PCB的设计。EDA技术的发展,使得ASIC设计得到了快速的发展。 什么是EDA技术? EDA技术是现代电了产品设计技术中的一门综合性新技术,包括广义和狭义的EDA技术。 广义的EDA技术,包括计算机辅助分析CAA技术(EWB, MATLAB等),印制电路板计算机辅助设计PCB-CAD技术(Protel, Or CAD等),专用集成电路设计ASIC技术等。 1.1 EDA历史与发展下一页第3页,共734页。下一页上一页 1.1 EDA历史与发展 狭义的EDA技术是指IES/ASIC自动化设计技术,是以计算机为基本工作平台,以硬件描述语言为系统逻辑描述的主要表达方式,
3、以EDA工具软件为开发环境,以大规模可编程逻辑器件为设计载体,以专用集成电路ASIC (Application Special Integrated Circuit)、单片电子系统SOC (System On Chip)芯片为目标器件,以电子系统设计为应用方向的电子产品设计自动化过程。 电子系统设计的自动化过程主要包括有:逻辑编译、逻辑化简、逻辑综合及优化、逻辑布局布线、逻辑仿真、逻辑适配等过程。 本书讨论的对象专指狭义的EDA技术。第4页,共734页。下一页上一页 1.1 EDA历史与发展二、EDA技术的历史与发展 EDA技术随着计算机技术、微电子技术、电子系统设计技术的发展,主要经历了3个
4、发展阶段: 计算机辅助设计(Computer-Aided Design CAD)阶段 计算机辅助工程设计(Computer-Aided Engineering Design CAED)阶段; 电子系统设计自动化(Electronic System Design Automation, ESDA)阶段。 第5页,共734页。下一页上一页 1.计算机辅助设计CAD阶段 20世纪70年代,MOS工艺得到了广泛的应用,中、小规模的集成电路有了新的发展。可编程逻辑技术和可编程逻辑器件的出现,可以应用计算机技术,将平面图形设计与分析工具CAD代替乎工制图、布线等,出现了第一代EDA技术。由于受计算机工作平
5、台的技术条件制约,当时的计算机辅助设计技术还比较差。2.计算机辅助工程设计CAED阶段 20世纪80年代,随着个人工作站计算机平台的出现和集成电路设计CMOS时代的到来、FPGA的出现等,极大地推动EDA工具发展,使得计算机工作平台技术得到迅速发展。出现了以计算1.1 EDA历史与发展第6页,共734页。机仿真技术和自动布线技术为核心的第一代EDA技术。设计工程师可以通过软件工具来完成产品开发的设计、分析、生产、测试等各项工作。但是,基于原理图进行设计开发的CAE工具,仍然不能满足高集成度的复杂电了系统设计的要求,设计工程中的系统优化设计也被固定的具体化的电路元件所制约。3.电子系统设计自动化
6、ESDA阶段 20世纪90年代,设计工程师在产品设计过程中,从使用硬件转向设计硬件,从电路级电子产品开发转向系统级电子产品开发。硬件描述语言的标准化及基于计算机技术的面向用户的低成本大规模ASIC设计技术的应用,集成电路设计工艺进入到了超深亚微下一页上一页1.1 EDA历史与发展第7页,共734页。米阶段,使得SEDA技术得到了全新的发展。SEDA工具软件以系统级设计为核心,集成了系统行为描述与结构综合、系统仿真与测试、系统划分与指标分配、系统决策与文件生成等完整的电了系统设计自动化工具,极大地提高了电子系统设计的效率。 EDA技术在进入21世纪后,得到了更大的发展,主要表现在以下几个方面:
7、使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。 在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断推出。 下一页上一页1.1 EDA历史与发展第8页,共734页。 电子技术全方位纳入EDA领域。 EDA使得电子领域各学科的界限更加模糊,更加互为包容。 更大规模的FPGA和CPLD器件的不断推出。 基于EDA工具的ASIC设计标准单元已涵盖大规模电了系统及 复杂IP核(IP: Intellectual Property,知识产权的简称,常指公司开发的硬件设计包)模块。 SoC高效低成本设计技术的成熟。 系统级、行为验证级硬件描述语言(如System C)的出现,使复
8、杂电子系统的设计和验证简单化。 新一代的EDA技术将会向着功能强大、简单易学以及使用方便的方向发展。下一页上一页1.1 EDA历史与发展第9页,共734页。下一页上一页1.1 EDA历史与发展三、EDA技术的主要内容 EDA技术的主要内容包括:硬件描述语言、可编程逻辑器件和EDA软件工具。硬件描述语言是EDA技术的主要描述与表达方式,可编程逻辑器件是EDA技术的主要目标器件,EDA软件工具是EDA技术的开发平台。它们是EDA技术的主要内容,是EDA设计的主要支撑。 1.硬件描述语言 硬件描述语言(Hardware Description Language ) HDL是EDA技术的重要组成部分,
9、是EDA各种描述方法中最能体现EDA优越性的描述方法。第10页,共734页。 所谓硬件描述语言,就是一个描述工具,用以描述设计系统的逻辑功能,实现该功能的算法、电路结构及约束条件等。它要求既能描述系统的行为,又能描述系统的结构。常见的HDL有VHDL, Verilog HDL, System Verilog, System C等。其中,Sy stemVerilog和System C这两种HDL还处于不断完善的过程中。而VHDL和VerilogHDL在EDA设计中使用最多,几乎所有的主流EDA工具都支持。VHDL是电子设计主流硬件的描述语言之一,本书主要以VHDL为学习的重点。 VHDL是VHS
10、IC(Very High Speed Integrated Circuit) Hardware DescriptionLanguage,即超高速集成电路硬件描述语言的简称,是美国国防部于1983年开发创建的,并由IEEE(下一页上一页1.1 EDA历史与发展第11页,共734页。The Institute of Electrical and Electronic Engineers)进一步发展,在1987年被确定为标准化的硬件描述语言。1993年IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展了VHDL内容,公布了新版本VHDL,即IEEE 1076-1993版本。现在,最新
11、的VHDL标准版本是IEEE 1076-2002。 VHDL已经成为系统描述的国际公认标准,得到众多EDA公司的支持,更多的硬件设计者使用VHDL描述数字系统。 VHDL具有与具体硬件电路无关、与设计平台无关的特性,并具有强大的电路行为描述和系统的能力,支持硬件的设计、验证、综合和测试,在语言易读性和层次化设计等方面都具有很强的生命力和应用潜力。下一页上一页1.1 EDA历史与发展第12页,共734页。 VHDL能在多个级别上对同一逻辑功能进行描述,如可以在寄存器级别上对电路结构进行描述,也可以在行为描述级别上对电路功能与性能进行描述,各个描述都能利用综合工具将描述转化为硬件结构。 VHDL的
12、基本结构含有一个实体和一个结构体,而一个完整的VHDL结构还应该包括程序包、库与配置。用VHDL进行电路设计描述时,通常采用的是“自顶向下”的结构化的设计方法。 VHDL的特点概括起来有以下几点: VHDL具有强大的功能,覆盖面广,描述能力强。VHDL支持门级电路的描述,支持以寄存器、存储器、总线及运算单元等构成的寄存器传输级电路的描述,还支持以行为算法和结构的混合描 下一页上一页1.1 EDA历史与发展第13页,共734页。述为对象的系统级电路的描述。 VHDL具有良好的可读性。它可以被计算机接受,也很容易被读者理解。VHDL源文件,既是程序又是文档,是工程技术人员间交换信息的文件。 VHD
13、L具有良好的可移植性。作为被IEEE承认的工业标准,VHDL实队、上己成为通用的硬件描述语言,可以在各种EDA的设计环境和开发平台中使用。 VHDL提高了设计效率,缩短了设计周期。VHDL描述的硬件电路可以与工艺无关,设计者只需考虑功能即可。 VHDL采用“自顶向下”的设计方法及对已有设计的再利用。 下一页上一页1.1 EDA历史与发展第14页,共734页。 VHDL可描述复杂电路系统,支持对大规模设计的分解,由多人、多项目组共同完成。标准化规则和设计风格,为设计的再利用提供了有力的支持。 VHDL设计有利于保护知识产权。VHDL设计的ASIC,在将设计文件下载到ASIC芯片时,可以采用加密的
14、保护措施,有效保护设计成果。2.可编程逻辑器件 可编程逻辑器件(Programmable Logic Device ) PLD是一种由用户编程实现某种逻辑功能的新型逻辑器件。自20世纪70年代问世后,就以其速度快、集成度高、可加密和重新定义编程、上万次的编程次数等优点得到了广泛应用。 下一页上一页1.1 EDA历史与发展第15页,共734页。 可编程逻辑器件由PLA到CPLD/FPGA,到SoC,在高速度、高集成度、高可靠性方面得到了快速的发展。片上系统(System on a Chip, SoC)指的是以嵌入式系统为核心,集软硬件于一体,内嵌复杂功能模块的集成芯片。3. EDA软件工具 ED
15、A工具在EDA技术应用中占据极其重要的位置,EDA的核心是利用计算机完成电路设计的全程自动化,因此,基于计算机环境下的EDA工具软件的支持是必不可少的。 由于EDA整个流程涉及不同技术环节,每一个环节中必须有对应的软件包或专用EDA工具独立处理,包括对电路模型功能模拟、对VHDL行为描述逻辑综合等。下一页上一页1.1 EDA历史与发展第16页,共734页。 EDA工具大致可以分为设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)、下载器(或编程器)5个模块。这5个模块不同程度地集成综合在各个EDA公司自己开发的EDA开发软件工具中。 目前在国内比较流行的EDA软件工具主要有Alter
16、a公司的MAX+plus II 和Quartos II , Lattice公司的Expert LEVER和 Synario, Xilinx公司的Foundation和 Alliance, Actel公司的Actel Designer等。 Altera其主要产品有MAX7000/9000, FELXIOK, APEX20K, ACEXIK, Cyclone等系列。Altera公司在20世纪90年代后发展很快,认为他们的开发工具MAX+plus II是最成功 下一页上一页1.1 EDA历史与发展第17页,共734页。的EDA开发平台之一,Quartos II是MAX+plus II的升级版本。 X
17、ilinx是FPGA的发明者,其产品种类比较齐全,主要有XC9500/4000,Spartan, Virtex, Coolrunner等。Xilinx和Altera是主要的可编程逻辑器件供应商,在欧洲,使用Xilinx公司产品的人较多;在日本及亚太地区,使用Altera公司产品的人较多;在美国,则是平分秋色。这两大供应商提供了全球60%以上的PLD/FPGA产品。可以说,Altera和Xilinx共同决定了PLD技术的发展方向。 Lattice是ISP(在系统可编程)技术的发明者,其主要产品有ispLSI2000/5000/8000, MACH4/5, ispMACH4000等。下一页上一页1
18、.1 EDA历史与发展第18页,共734页。 与Altera公司和 Xilinx公司相比,Lattice公司的开发工具略逊一筹,但其中小规模PLD比较有特色。Lattice公司于1999年推出可编程模拟器件,并收购了、Vantis(原AMD了公司),成为第二大可编程逻辑器件供应商。 Actel是反熔丝PLD技术的领导者。由于反熔丝PLD抗辐射,耐高低温,功耗低,速度快,所以在军工产品和宇航产品上有较大优势。Altera和Xilinx则一般不涉足军工产品和宇航产品市场。 本书主要是以Altera公司的Quartos II为开发平台,以可编程逻辑器件为目标器件,以VHDL为描述的EDA技术学习。
19、返 回上一页1.1 EDA历史与发展第19页,共734页。一、可编程逻辑器件的发展过程 20世纪70年代,熔丝编程的PROM和PLA是最早的可编程逻辑器件。 20世纪70年代末,AMD公司对PLA进行改进,推出了PAL器件。 20世纪80年代初,Lattice公司发明电可擦写的、比PAL使用更灵活的GAL器件。 20世纪80年代中期,Xilinx公司提出现场可编程概念,产生了世界上第一片FPGA。下一页1.2 可编程逻辑器件第20页,共734页。 同期,Altera公司推出EPLD器件,比GAL具有更高的集成度,可以用紫外线或电擦除。 20世纪80年代末,Lattice公司提出在系统可编程技术
20、,并推出一系列具备在系统可编程能力的CPLD器件,将可编程逻辑器件的性能和应用技术推向了全新的高度。 进入20世纪90年代后,可编程逻辑集成电路技术进入了高速发展的时期。器件的可用逻辑门数超过百万门,出现了内嵌复杂功能模块(如加法器、乘法器、RAM, CPU核、DSP核、PLL等) SoPC。 下一页上一页1.2 可编程逻辑器件第21页,共734页。下一页上一页二、可编程逻辑器件分类 可编程逻辑器件的种类很多,都具有自身的结构特点。对其进行分类,主要的分类方法有: 按集成度分、按结构分、按编程工艺分。 按集成度分,一般可用分成两大类: 可用逻辑门数大约在500以下,称为简单PLD。如早期的PR
21、OM, PLA,PAL, GAL等。 集成度较高的,称为复杂PLD。如现在大量使用的CPLD /FPGA。 按结构分,一般也分为两大类: 乘积项结构器件。其基本结构为“与-或”阵列的器件,大部分简单PLD和CPLD都属于这类。1.2 可编程逻辑器件第22页,共734页。下一页上一页 查找表结构器件。由简单的查找表组成可编程门,再构成阵列 形式的器件,FPGA属于这类。 按编程工艺分,大致有: 熔丝(Fuse)型。早期的PROM采用熔丝结构,编程过程中根据设计的熔丝图文件来烧断对应的熔丝,达到编程的目的。 反熔丝 ( Antifuse)型。这是对熔丝技术的改进,在编程处通过击穿漏层使得亮点间导通
22、。与熔丝烧断获得开路相反。Actel公司的FPGA采用的就是这种技术。 EPROM型。EPROM型称为紫外线擦除电可编程逻辑器件,可多次编程。 EEPROM型。EEPROM型称为电可擦写编程逻辑器件,是1.2 可编程逻辑器件第23页,共734页。下一页上一页1.2 可编程逻辑器件对EPROM工艺的改进。现有的大部分CPLD和GAL器件采用这样的工艺。 SRAM型。即SRAM查找表结构器件,大部分FPGA采用这样的结构。 Flash型。采用Flash工艺的FPGA 可以实现多次可编程,掉电后也不需要重新配置。三、可编程逻辑器件的结构和原理 可编程逻辑器件从结构上划分,可以分为乘积项结构和查找表结
23、构。 下面分别介绍基于这两种结构的可编程逻辑器件的内部结构和实现原理。第24页,共734页。下一页上一页1.2 可编程逻辑器件 1.基于乘积项(Product-Term)的PLD结构 简单的PLD和CPLD都采用这种结构,Altera公司的MAX7000S系列具有一定的典型性,下面以此为例介绍基于乘积项的PLD的结构,如图1-1所示。 这种PLD的结构可以分为二个部分:宏单元(Macrocell) ,可编程连线(PIA )用I /O端子控制块。 宏单元是PLD的基本结构,多个宏单元组成一个逻辑阵列块(LAB)。 可编程连线可以传递信号,连接所有的宏单元。I/O端子控制块负责输入/输出端子的电气
24、特性控制。宏单元的结构如图1-2所示。第25页,共734页。下一页上一页 2.乘积项结构PLD的逻辑实现原理 下面以一个简单的例了,具体说明PLD是如何利用其结构实现组合逻辑的。利用PLD实现下列逻辑函数: PLD将以如图1-3所示的方式来实现组合逻辑 由PLD的I/O引脚进入可编程连线阵列(PIA) ,在内部会产生 6个输出。图中的“点”和“叉”都表示相连(可编程熔丝导通)1.2 可编程逻辑器件第26页,共734页。所以有: 这样就实现了需要的组合逻辑。这样一个简单的组合逻辑,一个宏单元就可以完成。但是对于一个比较复杂的电路,一个宏单元是不能实现的,这样就需要通过并行扩展项和共享逻辑扩展项将
25、多个宏单元连接,通过将一个宏单元的输出再输入到另一个宏单元的输入,这样就可以实现更复杂的逻辑了。1.2 可编程逻辑器件下一页上一页第27页,共734页。 3.基于查找表(Look-Up-Table)的FPGA结构 FPGA器件采用的是这种结构。 查找表(LUT)实际上就是一个RAM。FPGA多数使用的是4输入的LUT,每一个LUT可以看成一个4位地址线的16X 1的RAM。 用户通过原理图或HDL描述了一个逻辑电路后,PLD/FPGA开发软件就会自动计算逻辑电路的所有可能的结果,并把结果预先写入RAM。 这样,每一个输入信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,输出结果。
26、 图1-4是Altera的FLEX l OK芯片的内部结构(其他系列的FPGA结构也基本相同,只以FLEXIOK为例)。1.2 可编程逻辑器件下一页上一页第28页,共734页。下一页上一页1.2 可编程逻辑器件 其主要包括LAB, I/O块、RAM块(图中未表小出)、可编程行/列连线。LE是FLEX/ACEX系列芯片实现逻辑的最基本结构,其结构如图1-5所示。一个LAB又包括8个逻辑单元(LE)、一个LE有一个LUT,一个触发器和相关的逻辑。 4.查找表结构的FPGA逻辑实现原理 仍以简单的例子进行说明:用FPGA实现下列逻辑函数: A, B, C由FPGA的I/O引脚输入后进入可编程连线(P
27、IA),然后作为地址连线连接到LUT, LUT中已经事先写入所有可能的逻辑结果。第29页,共734页。 通过地址查找到相应的数据,然后输出,这样,组合逻辑就实现了。这些实现的步骤都是由软件自动完成的,不需要人为的干预。这是一个简单的逻辑电路,只需要一个LUT就可以完成。对于一个LUT无法完成的复杂电路,需要通过进位链将多个单元连接,一同实现复杂的逻辑功能。 由于LUT适合SRAM工艺生产,所以大部分FPGA都是基于SRAM工艺的。SRAM工艺的芯片在断电后信息会丢失,所以需要外加一片专用配置芯片,在通电的时候,由该配置芯片把数据信息加载到FPGA中,FPGA才可以正常工作。由于配置芯片进行配置
28、的时间很短,不会影响系统正常工作。有少数FPGA采用反熔丝或Flash工艺,这样就不需要外加专用配置芯片了。1.2 可编程逻辑器件下一页上一页第30页,共734页。四、面向CPLD/FPGA的EDA设计流程 EDA设计的大部分工作都是在EDA软件工具平台上进行的,面向CPLD/FPGA的EDA设计流程如图1-6所示。EDA设计流程包括设计准备、设计输入、设计实现、器件编程4个步骤,以及相应的功能仿真、时序仿真、硬件测试3个设计验证过程。 1.设计准备 设计准备是设计者在进行系统设计之前,根据任务要求,确定系统所要实现的功能及复杂度,进行器件资源的利用、成本等准备工作。如进行方案论证、系统设计分
29、解、器件选择等。1.2 可编程逻辑器件下一页上一页第31页,共734页。 2.设计输入 设计输入是设计者将系统的设计按照EDA开发软件的要求以某种形式描述表达出来,并被计算机所接收。设计输入主要有原理图输入方式、采用HDL描述的文本输入方式、波形输入方式、文本和图形混合的设计输入方式。也可以采用“自顶向下”的层次结构化设计法,将多个输入文件合并成一个设计文件。 (1)原理图输入方式 原理图输入是图形输入编辑方式,是一种最直接的描述表达方式。使用软件系统提供的元器件库和各种符号连线设计成系统电路的原理图,形成图形输入文件。其优点是易于实现仿真,便于信号的观察。1.2 可编程逻辑器件下一页上一页第
30、32页,共734页。 (2)硬件描述语言输入方式 硬件描述语言输入是文本输入编辑方式,是一种行为描述表达方式。硬件描述语言输入方式具有很强的逻辑描述和功能仿真,可实现与工艺无关的编程设计。设计者在系统设计、逻辑验证阶段便可确立方案的可行性,输入效率高。运用VHDL或Verilog HDL硬件描述语言进行设计已是当前的趋势。 (3)波形图输入方式 波形图输入方式主要用于建立和编辑波形设计文件及输入仿真向量和功能测试向量。波形图输入适用于时序逻辑仿真,开发软件平台可以根据用户定义的输入波形自动生成输出与输入的逻辑关系。1.2 可编程逻辑器件下一页上一页第33页,共734页。3.设计实现 设计实现是
31、面向CPLD/FPGA的EDA设计的核心环节。在这个环节,开发软件平台将对设计输入文件进行逻辑化简、综合优化、自动适配,最后产生编程用的编程文件。设计实现过程主要包括设计编译检查、逻辑综合优化、适配分割、布局布线、生成编程数据文件等。 (1)设计编译检查 设计输入完成之后,要进行编译。编译过程将进行语法检查,有错误的会提出错误信息报告,供设计者修改。编译后进行设计规则检查,指明设计有无违反规则及是否存在潜在不可靠情况,供设计者纠正。 1.2 可编程逻辑器件下一页上一页第34页,共734页。 (2)逻辑综合优化 逻辑优化主要是面积优化和时间优化。面积优化的目的是使设计所占用的PLD中的逻辑元件(
32、LE)数最少。时间优化的目的是使设计的系统传输延迟时间最小。综合的目的是将多个模块化设计文件合并为一个网表文件。 (3)适配分割 适配是将综合器产生的网表文件针对具体的日标器件进行逻辑映射操作。分割工作也在适配的过程中自动实现,主要是在整个设计不能装入一片器件时,自动分割成多块并装入同一系列的多片器件中。 1.2 可编程逻辑器件下一页上一页第35页,共734页。 (4)布局布线 布局布线工作是在设计验证通过后由软件自动完成的,能以最优的方式对逻辑元件进行布局,实现元件间的布线互连。布局布线完成后,软件自动生成布线报告,为设计者提供设计中资源利用的相关信息。 (5)生成编程数据文件 软件最后会自
33、动生成可供器件编程使用的数据文件。目标器件若是CPLD,则是生成熔丝图文件(JEDEC文件,也简称JED文件),若是FPGA,则是生成位流数据文件(BG文件)。1.2 可编程逻辑器件返 回上一页第36页,共734页。 1.3 本章小结返 回EDA技术概论面向CPLD/FPGA的EDA设计流程EDA技术的主要内容可编程逻辑器件的结构和原理可编程逻辑器件的分类可编程逻辑器件的发展EDA技术的历史与发展EDA技术的概念可编程逻辑器件EDA历史与发展第37页,共734页。图1-1 基于乘积项的PLD内部结构返 回 图中是乘积项阵列,实际上就是一个与阵列,每一个交义点都是一个可编程熔丝,若导通则实现的是
34、与逻辑。中间的乘积项选择矩阵是一个或阵列,与阵列一起完成组合逻辑。第38页,共734页。图1-2 宏单元结构返 回 该图是一个D触发器,它的时钟、清零信号都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑产生的时钟和清零。若不需要触发器,则可将其旁路信号直接给PIA或I/O端子。第39页,共734页。图1-3 实现组合逻辑返 回第40页,共734页。图1-4 Altera的FLEX l0K芯片的内部结构返 回第41页,共734页。 图1-5 逻辑单元 (LE) 内部结构返 回第42页,共734页。 图1-6 CPLD/FPGA设计流程返 回设计准备设计输入原理图硬件描述语言波
35、形图设计实现综合、优化适配、分割布局、布线时序仿真功能仿真硬件测试设计完成器件编程第43页,共734页。 【要求】 掌握VHDL语言的基本知识和运用VHDL语言设计逻辑电路的基本方法。 【知识点】理解VHDL程序的基本结构理解VHDL程序的顺序语句理解VHDL程序的并行语句理解VHDL程序的语言要素第2章 VHDL设计入门下一页第44页,共734页。 【重点和难点】 VHDL程序的顺序结构 VHDL程序的并行结构【引言】 HDL文本输入设计法是Quartus II的一个重要输入设计法 ,本书主要介绍VHDL文本输入法。本章讨论VHDL语言的基本知识和运用 VHDL语言设计逻辑电路的方法,在以后
36、各章再对VHDL文本输入设计法及其应用作进一步的讨论。 本章先介绍VHDL程序的基本结构、顺序语句和并行 语句,最后对VHDL程序的语言要素做一个总结。第2章 VHDL设计入门下一页上一页第45页,共734页。第2章 VHDL设计入门2.1 VHDL程序的基本结构2.2 VHDL程序的顺序语句2.3 VHDL程序的并行语句2.4 VHDL程序的语言要素总结2.5 本章小结上一页第46页,共734页。 VHDL程序包含实体(ENTITY ) 、结构体(ARCHITECTURE ) 、配置( CONFIGURATION)、程序包(PACKAGE、库(LIBRARY)5个部分。 简单的实体是由实体和
37、结构体两部分组成的。 实体用于描述设计系统的外部接口信号,结构体用于描述系统的行为、系统数据的流程或者系统组织结构形式。 设计实体是VHDL程序的基本单元,是电子系统的抽象。 简单的实体可以是一个与门电路( AND GATE),复杂的实体可以是一个微处理器或一个数字电了系统。 实体由实体说明和结构体说明两部分组成。2.1 VHDL程序的基本结构下一页第47页,共734页。下一页上一页2.1 VHDL程序的基本结构 【例2.1】以下是一个简单的VHDL源程序,可以归纳出VHDL程序的基本结构。 ENTITY m yand2 IS -实体名称为and2 PORT (a,b:IN BIT; -a,
38、b是两个输入引脚 c:OUT BIT); -c为输出引脚 END m yand2; ARCHITECTURE examl OF myand2 IS -结构体 BEGIN exam 1是对实体and2的内部 c=a AND b; 描述,描述了and2器件的内部 功能为实现一个2输入与门 END exam1; 第48页,共734页。下一页上一页 由例2.1可以看出,VHDL程序由两部分组成: 第1部分为实体说明. 第2部分为结构体。 VHDL程序结构更抽象、更基本、更简练的表示如图2-1所示。 设计实体用关键字ENTITY来标识,结构体ARCHITECTURE来标识。 系统设计中的实体提供该设计系
39、统的公共信息,结构体定义了各个 模块内的操作特性。 一个设计实体必须包含一个结构体或含有多个结构体。一个电子系统的设计模型如图2-2所示。2.1 VHDL程序的基本结构第49页,共734页。下一页一、实体 实体由实体名、类型说明、端口说明、实体说明部分和实体语句部分组成。1.实体语句结构根据IEEE标准,实体组织的一般格式为: ENTITY实体名IS GENERIC(类型说明); PORT(端口说明); 实体说明部分: BEGIN 实体语句部分; END ENTITY实体名;2.1 VHDL程序的基本结构上一页第50页,共734页。 实体名是设计者自己给设计实体的命名,其他设计实体可对该设计实
40、体进行调用。中间在方括号内的语句描述,在特定的情况下并非是必须的。 2.类型说明 类型说明是实体说明中的可选项,放在端口说明之前,其一般使写格式为: GENERIC CONSTANT名字表: 1N了类型标识:一静态表达式, 举例: GENERIC(m:TIME: =3ns) 这个参数说明是指在VHDL程序中,结构体内的参数m的值为3ns。 下一页上一页2.1 VHDL程序的基本结构第51页,共734页。 类型说明和端口说明是实体说明的组成部分,用于说明设计实体和外部通信的通道。利用外部通信通道,参数的类型说明为设计实体提供信息。参数的类型用来规定端口的大示、I/O引脚的指派、实体中子元件的数口
41、和实体的定时特性等信息。 3.端口说明 端口说明是对设计实体与外部接口的描述,是设计实体和外部环境动态通信的通道,其功能对应于电路图符号的一个引脚。实体说明中的每一个I/O信号被称为一个端口,一个端口就是一个数据对象。端口可以被赋值,也可以当做变量用在逻辑表达式中。定义实体的一组端口称作端口说明。 下一页上一页2.1 VHDL程序的基本结构第52页,共734页。 端口说明的组织结构必须有一个名称、一个通信模式和一个数据类型。端口说明的一般格式为: Port(端口名,端口名:模式 数据类型名 端口名,端口名:模式 数据类型名); 端口名是赋于每个外部引脚的名称,名称的含义要明确,如D开头的端口名
42、表示数据,A开头的端口名表示地址等。端口名通常用几个英文字母或一个英文字母加数字表示。 下面是合法的端口名:CLK, RESET, A0, D3。 模式用来说明数据、信号通过该端口的传输方向。端口模式有IN, OUT,BUFFER, 1NOUT。下一页上一页2.1 VHDL程序的基本结构第53页,共734页。下一页上一页 (1)输入(IN) 输入仅允许数据流入输入模式主要用于时钟输入、控制输入(如RESET, ENABLE, CLK)和单向的数据输入,如地址信号(ADDRESS)。不用的输入一般接地,以免浮动引入干扰噪声。 (2)输出(OUT) 输出仅允许数据流从实体内部输出。端口的驱动源是由
43、被设计的实体内部进行的。输出模式不能用于被设计实体的内部反馈,因为输出端口在实体内不能看做可读的。输出模式常用于计数输出、单向数据输出、设计实体产生的控制其他实体的信号等。一般而言,不用的输出端口不能接地,避免造成输出高电平时烧毁被设计实体。 2.1 VHDL程序的基本结构第54页,共734页。 (3)缓冲(BUFFER) 缓冲模式的端口与输出模式的端口类似,只是缓冲模式允许内部引用该端口的信号。缓冲端口既能用于输出,也能用于反馈。 缓冲端口的驱动源可以是: 设计实体的内部信号源; 其他实体的缓冲端口。 缓冲不允许多重驱动,不与其他实体的双向端口和输出端口相连。 内部反馈的实现方法有: 建立缓
44、冲模式端口; 建立设计实体的内部节点。 下一页上一页2.1 VHDL程序的基本结构第55页,共734页。 缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器输出,计数器的现态被用来决定计数器的次态。实体既需要输出,又需要反馈,这时设计端口模式应为缓冲模式。 (4)双向模式(INOUT) 双向模式可以代替输入模式、输出模式和缓冲模式。 在设计实体的数据流中,有些数据是双向的,数据可以流入该设计实体,也有数据从设计实体流出,这时需要将端口模式设计为双向端口。 双向模式的端口允许引入内部反馈,所以双向模式端口还可以作为缓冲模式用。由上述分析可见,双向端口是一个完备的端口模式。下一页上一页2.1
45、 VHDL程序的基本结构第56页,共734页。二、结构体 结构体具体指明了该设计实体的行为,定义了该设计实体的功能,规定了该端口。输入信号的驱动源由设计实体的数据流程,指派了实体中内部元件的连接关系。 用VHDL语言描述结构体有4种方法: 行为描述法:采用进程语句,顺序描述被称设计实体的行为。 数据流描述法:采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。 结构描述法:采用并行处理语句描述设计实体内的结构组织和元件互连关系。 下一页上一页2.1 VHDL程序的基本结构第57页,共734页。 采用多个进程(PROCESS)、多个模块(BLOCKS)、多个子程序(SUBPRO
46、GRAMS)的子结构方式。 结构体的一般书写格式为: ARCHITECTURE结构体名OF实体名IS 定义语句,内部信号,常数,数据类型,函数定义 BEGIN 并行处理语句; 进程语句; END结构体名; 下一页上一页2.1 VHDL程序的基本结构第58页,共734页。 一个结构体的组织结构从“ARCHITECTURE结构体名OF实体名IS”开始,到“END结构体名”结束。 结构体名称由设计者自由命名,是结构体的唯一名称。OF后面的实体名称表明该结构体属于哪个设计实体,有些设计实体中可能含有多个结构体。这些结构体的命名可以从不同侧面反映结构体的特色,让人一目了然。例如: ARCHITECTUR
47、E behacvioral OF mux IS -用结构体行为命名 ARCHITECTURE dataflow OF mux IS -用结构体的数据流命名 下一页上一页2.1 VHDL程序的基本结构第59页,共734页。 ARCHITECTURE structural OF mux IS -用结构体的组织结构命名 ARCHITECTURE bool OF mux IS -用结构体的数学表达方式命名 ARCHITECTURE latch OF mux IS -用结构体的功能来定义 上述几个结构体都属于设计实体mux,每个结构体有着不同的名称,使得阅读VHDL程序的人能直接从结构体的描述方式了解功
48、能,定义电路行为。下一页上一页2.1 VHDL程序的基本结构第60页,共734页。三、程序包 实体中定义的各种数据类型、子程序和元件调用说明只能局限在该实体内或结构体内调用,其他实体不能使用。 程序包的语句格式如下: PACKAGE程序包名IS -程序包首开始 程序包首说明语句 END程序包名; -程序包首结束 PACKAGE BODY程序包名IS -程序包体开始 程序包体说明语句 END程序包名; -程序包体结束 下一页上一页2.1 VHDL程序的基本结构第61页,共734页。 STD_LOGIC_1164程序包是IEEE库中最常用的程序包,是IEEE的标准程序包。其中包括了一些数据类型、了
49、类型和函数的定义,这些定义将VHDL扩展为一个能描述多值逻辑(即除具有“0”和“1”以外还有其他的逻辑量,如高阻态“Z、不定态“X”等)的硬件描述语言。 程序包结构中,程序包体并非是必须的,程序包首可以独立定义和使用。 例如: PACKAGE PAC1 IS -程序包首开始 TYPE BYTE IS RANGE 0 TO 255; -定义数据类型BYTE 下一页上一页2.1 VHDL程序的基本结构第62页,共734页。 SIGNAL ADDEND: NIBBLE; -定义信号ADDEND END PAC1; -程序包首结束 如果要使用这个程序包中的所有定义,可用USE语句访问此程序包: USE
50、 WORK.PAC1.ALL;四、库 在利用VHDL进行工程设计中,为了提高设计效率以及使设计遵循某些统一的语言标准或数据格式,有必要将一些有用的信息汇集在一个或几个库中以供调用。这些信息可以是预先定义的数据类型、子程序等设计单元的集合体(程序包),或预先设计好的各种设计实体(元件库程序包)。因此,可以把库看成是一种用来存储预先完成的程序包和数据集合体的仓库。 上一页下一页2.1 VHDL程序的基本结构第63页,共734页。 库的语句格式如下: LIBRARY库名: 这一语句相当于为其后的设计实体打开了以次库名命名的库,以便设计实体可以利用其中的程序包。如语句“LIBRARY_IEEE;”表示
51、打开IEEE库。 1.库的种类 (1)IEEE库 IEEE库是VH支持工业标准的程序包。IEEE库中的标准程序包主要包含STD_LOGIC_1164, STD_LOGIC_ARITH, STD_LOGIC_SIGNED , STD_LOGIC_UNSIGNED程序包。 上一页下一页2.1 VHDL程序的基本结构第64页,共734页。 (2)STD库 STD库是VHDL的标准库,VHDL在编译过程中自动使用这个库,所以使用时不需要语句说明,类似“LIBRARY_STD”这种语句是不必要的。 (3)WORK库 WORK库是用户的VHDL设计的现行工作库,用于存放用户设计和定义的一些设计单元和程序包
52、。因此,自动满足VHDL的语言标准,实际调用中,也不需要语句说明。 2.库的用法 在VHDL中,库的说明语句是放在实体单元的前面,而目库语言一般必须与USE语言同用。库语言关键词LIBRARY,指明所使用的库上一页下一页2.1 VHDL程序的基本结构第65页,共734页。名。USE语句指明库中的程序包。一旦说明了程序包,整个设计实体都可以进入访问和调用,但其作用范围仅限于所说明的设计实体。 USE语句的使用将使说明的程序包对本设计实体部分全部开放, USE语句的使用有两种常用格式: USE库名.程序包名.项目名; USE库名.程序包名.ALL; 例如: LIBRARY IEEE; -打开IEE
53、E库 USE IEEE.STD_LOGIC_1164.ALL; -使用IEEE库内的STD_LOGIC_1164 上一页下一页2.1 VHDL程序的基本结构第66页,共734页。 USE IEEE.STD_LOGIC_UNSIGNED.ALL; -使用IEEE库内的STD LOGIC UNSIGNED程序包内 的所有资源五、配置 配置可以把特定的结构体指定给一个确定的实体。为了满足不同设计阶段或不同场合的需要,对某一个实体,我们可以给出几种不同形式的结构体描述,这样在其他实体调用该实体时,就可以根据需要选择其中某一个结构体,选择不同的结构体以便进行性能对比试验,确认性能最佳的结构体。以上这些工
54、作就由配置来完成。 上一页下一页2.1 VHDL程序的基本结构第67页,共734页。配置语句的一般语句如下: CONFIGURATION 配置名 OF 实体名 IS 配置语句说明 END 配置名; 例2.2在描述一个与非门NAND的设计实体中会有两个不同的逻辑描述方法构成的结构体。用配置语句来为特定的结构体击求作配置指定。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MYNAND IS 上一页下一页2.1 VHDL程序的基本结构第68页,共734页。 PORT (A:IN STD_LOGIC; B: IN STD_LOGIC; C: OUT
55、 STD_LOGIC); END ENTITY MYNAND; ARCHITECTURE ART1 OF MYNAND IS BEGIN C=NOT(A AND B); END ARCHITECYURE ART1; ARCHITECTURE ART2 OF MYNAND IS BEGIN 上一页下一页2.1 VHDL程序的基本结构第69页,共734页。 C=1 WHEN (A=0)AND(B=0) ELSE 1 WHEN (A=0)AND(B=1) ELSE 1 WHEN (A=1)AND(B=0) ELSE 0 WHEN (A=1)AND(B=1) ELSE 0; END ARCHITECT
56、URE; CONFIGURATION SECOND OF IS FOR ART2 END FOR; END SECOND; 上一页下一页2.1 VHDL程序的基本结构第70页,共734页。 CONFIGURATION FIRST OF IS FOR ART1 END FOR; END FIRST; 在本例中,若指定配置名为SECOND,则为实体NAND配置的结构体为ART2;若指定配置名为FIRST,则为实体NAND配置的结构体为ARTl。两种结构的描述方式不同,但是逻辑功能相同。 上一页返 回2.1 VHDL程序的基本结构第71页,共734页。 顺序语句是VHDL程序设计中很贡要的语句系列之
57、一,它能够从多个侧面完整地描述数字系统的硬件结构和基本逻辑功能。顺序语句与传统软件要指的是语句的执行(指仿真执行)顺序与它们书写顺序基本一致。 顺序语句只能出现在进程(PROCESS)或了程序(PROCEDURE)、函数(FUNCTION)中使用,按程序书写的顺序自上而下、一个一个语句地执行。进程本身属于并行语句,这就是说在同一设计实体中,所有的进程都是并行执行的,每一个进程内部的语句是顺序执行的。 本节主要介绍赋值语句、IF语句、CASE语句、LOOP语句。 2.2 VHDL程序的顺序语句下一页第72页,共734页。一、顺序赋值语句 顺序语句中的赋值语句分变量赋值语句和信号赋值语句。其用途是
58、将一个值或者表达式的运算结果传递给一个变量、信号或者由它们组成的数组。但一者是有区别的,变量赋值时间延迟为零,而信号赋值一定存在时间延迟。 1.变量赋值语句 格式:口标变量名:一赋值源(表达式): 例如:x:=5.0; z:=x+y; 其中x和z都是变量,:=表示给变量赋值。 上一页下一页 2.2 VHDL程序的顺序语句第73页,共734页。 2.信号赋值语句 格式:口标信号名=赋值源: 例如:y=3; b(3 TO 4)=c(1 TO 2); 其中y为信号,而b则为数组型信号,=表示给信号赋值。 二、IF语句 IF语句的书写格式如下二种: 1.简化的IF语句 IF条件表达式THEN 顺序语句
59、: END IF: 上一页下一页 2.2 VHDL程序的顺序语句第74页,共734页。 第一种语句的执行情况是,当程序执行到该语句时,首先检测关键词IF后的“条件表达式”的布尔值是否为真(TURE。如果为真,那么THEN将顺序执行“顺序语句”中的各条语句,直到“END IF: ;如果为假CFALSE),则不执行“顺序语句”,直接到跳到“END IF ,结束IF语句的执行。 【例2.3 】用IF语句描述一个简单的D触发器。 ENTITY dffl IS PORT(d,c1k:IN BIT; q:ouT BIT); END dffl; 上一页下一页 2.2 VHDL程序的顺序语句第75页,共734
60、页。 ARCHITECTURE one OF dffl IS BEGIN PROCESS(clk) BEGIN IF (clkevent AND clk=1) THEN q=d; END IF; END PROCESS; END one;上一页下一页 2.2 VHDL程序的顺序语句第76页,共734页。 2.两分支结构 IF 条件表达式 THEN 顺序语句; ELSE 顺序语句; END IF; 两分支结构的执行情况是,当关键词“IF”后的“条件表达式”为真时,则顺序执行其下面的“顺序语句”中的各条语句,当“顺序语句”执行完成后,直接跳到“END IF: ”,结束IF语句的执行;当“IF ”)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西民族博物馆编外人员招聘1人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年广西广电大数据科技有限公司第二季度招聘3人考前自测高频考点模拟试题及答案详解(易错题)
- 2025江苏无锡市卫生健康委直属事业单位招聘专技人才50人考前自测高频考点模拟试题及1套参考答案详解
- 2025江苏连云港市赣榆农业发展集团有限公司及下属子公司招聘设备工程师岗(A36)技能考前自测高频考点模拟试题及答案详解(各地真题)
- 2025北京首都医科大学附属北京朝阳医院派遣合同制岗位招聘12人(第三次)考前自测高频考点模拟试题及完整答案详解1套
- 2025年勘察设计注册岩土工程师考试(公共基础)全真题库及答案(广东省)
- 甘肃省平凉市勘察设计注册岩土工程师考试模拟题库:(公共基础)全真模拟试题及答案(2025年)
- 2025年勘察设计注册土木工程师考试(岩土专业知识)模拟试题及答案(乌鲁木齐)
- 海南白沙县2025年勘察设计注册土木工程师考试(岩土专业知识)模拟试题及答案
- 投标文件的编制实践试题及答案
- 麦肯锡商业计划书模板
- 项目经理职业生涯规划
- 除锈剂MSDS参考资料
- 高一英语选择性必修一课文及翻译(外研版新教材)中英Word精编文档
- 社会调查研究抽样课件
- 消防管道支架工程量计算表
- 应用成型的双面彩钢板复合风管代替传统的铁皮风管
- JJF(石化)006-2018漆膜弹性测定器校准规范
- 东华软件需求调研提纲汇总版与03-02同步
- 电焊工模拟试题(含答案)
- 全国优质课一等奖初中数学《有理数的乘方》精品课件
评论
0/150
提交评论