EDA技术与Verilog HDL设计(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-02 16:24:38

点击下载

作者:王金明

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

EDA技术与Verilog HDL设计

EDA技术与Verilog HDL设计试读:

前言

本书与“十二五”普通高等教育本科国家级规划教材、普通高等教育“十一五”国家级规划教材《EDA技术与VHDL设计》(07755)为姊妹篇,本书介绍Verilog HDL语言的开发,后者则介绍VHDL语言的开发。

目前EDA技术已经成为电子信息类专业的一门重要专业基础课程,并且在教学、科研及大学生电子设计竞赛等活动中起着越来越重要的作用,成为电子信息类本科生和研究生必须掌握的专业基础知识与基本技能。随着教学改革的深入,对EDA课程教学的要求也不断提高,必须对教学内容进行更新和优化,与EDA技术的发展相适应,正是基于以上考虑,作者编写了本书。

在EDA教学中应注意如下几点。首先要明确最基本的教学内容,并突出重点。EDA技术教学的目的是使学生掌握一种通过软件的方法来高效地完成硬件设计的方法与技术,因此应以培养学生的创新思维和设计思想为主,同时使学生掌握基本的设计工具和设计方法。其次要改善教学方法。EDA教学应主要以引导性教学为主,合理安排理论教学和实验教学的学时比例,使学生能够理论联系实际,提高实际动手能力和工程设计能力。再次要注重实验教学。EDA课程具有很强的实践性,针对性强的实验应该是教学的重要环节,应格外重视EDA实验的质量。

作者基于以上的认识,合理安排了本书的章节,本书是以FPGA器件、EDA设计工具、Verilog HDL硬件描述语言三方面内容为主线展开的,贯穿其中的则是现代数字设计的新思想、新方法。本书内容新颖、技术先进、由浅入深,既有关于EDA技术、FPGA器件和Verilog HDL硬件描述语言的系统介绍,又有丰富的设计实例。

全书共11章。第1章对EDA技术做了综述,解释了有关概念;第2章介绍PLD器件的发展、分类、编程工艺及设计流程等;第3章具体介绍典型FPGA/CPLD器件的结构与配置;第4章介绍用Quartus Ⅱ软件进行设计开发的流程,以及基于宏功能模块的设计开发过程;第5章介绍Verilog HDL的语法与要素;第6章介绍Verilog HDL行为语句;第7章讨论Verilog HDL设计的层次与风格,以及常用组合电路、时序电路的Verilog HDL描述方法;第8章结合具体实例,介绍用Verilog HDL语言进行数字设计的方法;第9章介绍用Verilog HDL进行仿真和验证;第10章是用Verilog HDL语言进行数字电路与系统设计的实例;第11章是数字通信常用模块的设计实例。

为适应教学模式、教学方法和手段的改革,本书提供配套多媒体电子课件、实验与设计和程序代码,请登录华信教育资源网(http://www.hxedu.com.cn)免费注册下载。

在本书的编写过程中,王金明编写了本书多数章节并负责统稿,徐志军编写了本书第1、2章,潘克修编写了第3章,苏勇编写了第10、11章,周顺编写了第11章的实验与设计部分内容。

本书是几位老师在多年EDA课程教学经验的基础上精心编写而成的,虽经很大努力,但由于作者水平有限,加之时间仓促,书中错误与疏漏之处在所难免,敬请广大读者批评指正。

作 者

2013年7月于解放军理工大学

第1章 EDA技术概述

信息社会的发展离不开集成电路,现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快。当前集成电路正朝着速度快、容量大、体积小、功耗低的方向发展,实现这种进步的主要原因是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到超深亚微米阶段,可以在几平方厘米的芯片上集成上亿个晶体管;后者的核心是EDA技术,目前已经渗透到电子产品设计的各环节,成为电子学领域的重要学科,形成了一个独立的产业。

没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。本章将简要回顾电子设计技术的发展历程,主要介绍EDA基本概念、EDA技术的实现目标、EDA设计流程和设计工具、EDA技术的发展趋势和所面临的挑战。

1.1 EDA技术及其发展历程

EDA是电子设计自动化(Electronic Design Automation)的英文缩写,是随着集成电路和计算机技术的飞速发展应运而生的一种快速、有效、高级的电子设计自动化工具。换句话说,EDA就是立足于计算机工作平台而开发出来的一整套先进的电子设计软件工具。EDA工具是融合了应用电子技术、计算机技术和智能化技术的最新成果,主要能辅助进行三方面的设计工作:集成电路(IC)设计、电子电路设计以及印刷电路板(PCB)设计。采用EDA技术,用计算机进行模拟、检验、布图和测试,不但能大大减少人工劳动量,缩短设计周期,提高设计的可靠性,而且可以在产品生产之前进行各种设计方案的比较、参数的优选,从而提高了设计的质量。

EDA技术的发展历程同大规模集成电路技术、计算机技术、可编程逻辑器件以及电子设计技术和工艺技术的发展是同步的。回顾四十多年来电子技术的发展历程,可将电子设计自动化技术大致分为三个发展阶段,如图1.1所示。图1.1 EDA技术的不同发展阶段

20世纪70年代到80年代初为CAD阶段,也是EDA技术发展的初级阶段。这一阶段由于受到计算机的运行速度、存储量和图形功能等方面的限制,电子CAD和EDA技术没有形成系统,而仅仅是一些孤立的软件程序。这些软件程序在逻辑仿真、印刷电路板(PCB)布局布线和IC版图编辑等方面取代了设计人员烦琐的手工计算和操作,大大提高了电子系统和集成电路设计的效率和可靠性,从而产生了计算机辅助设计的概念。但这些软件一般只有简单的人机交互能力,能处理的电路规模不是很大,计算和绘图的速度都受到限制,而且由于没有采用统一的数据库管理技术,程序之间的数据传输和交换也不方便。

20世纪80年代中后期为CAE阶段,也是EDA技术发展的中级阶段。在这一阶段,计算机与集成电路技术得到了高速发展,CAD软件主要用来实现模拟与数字电路仿真、集成电路的布局布线、IC版图参数提取与验证、印刷电路板的布图与检验以及设计文档制作等各设计阶段的自动设计。将这些工具软件集成为一个有机的EDA系统,在工作站或超级微机上运行,具有直观、友好的图形界面,可以用电路原理图的形式输入,以图形菜单的方式选择各种仿真工具和不同的模拟功能。每个工具软件都有自己的元件库,工具之间由统一的数据库进行数据存放、传输和管理。与初期的CAD相比,这一阶段的软件除了具有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,以实现工程设计,这就是计算机辅助工程(Computer Aided Engineering,CAE)的概念。

20世纪90年代以后是设计自动化阶段,也是EDA技术发展的高级阶段。在这个时期,微电子技术以惊人的速度发展,一个芯片上可以集成几千万只晶体管,超高速数字集成电路的工作速率已经达到10Gbps,射频集成电路的最高工作频率已超过6GHz。电子系统朝着多功能、高速度、智能化的趋势发展,如数字声广播(DAB)与音响系统、高清晰度电视(HDTV)、多媒体信息处理与传播、光通信等电子系统,它们对集成电路和专用集成电路(ASIC)的容量、速度、频带等都提出了更高的要求,要在短时间内正确地设计成功这种高难度的IC,必须将EDA技术提高到一个更高的水平。另一方面,随着集成度的提高,一个复杂的电子系统可以在一个集成电路芯片上实现,这就要求EDA系统能够从电子系统的功能和行为描述开始,综合设计出逻辑电路,并自动地映射到可供生产的IC版图,称之为集成电路的高级设计。因此20世纪90年代后的EDA系统真正具有了自动化设计能力,将EDA技术推向了成熟和实用。用户只要给出电路的性能指标要求,EDA系统就能对电路结构和参数进行自动化处理和综合,寻找最佳设计方案,通过自动布局布线功能将电路直接形成集成电路的版图,并对版图的面积及电路延时特性做优化处理。

进入21世纪以后,EDA技术得到了更大的发展,开始步入了一个崭新的时期,突出地表现在以下几个方面。(1)电子技术各领域全方位融入EDA技术,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大的变化:软件无线电技术的崛起,模拟电路硬件描述语言的表达和设计标准化,系统可编程模拟器件的出现,数字信号处理和图像处理的全硬件实现方案的推出,软硬件技术的进一步融合等。(2)IP(Intellectual Property,知识产权)核在电子行业的产业领域、技术领域和设计领域得到了广泛的应用,基于IP核的SoC(System on Chip,片上系统)高效低成本设计技术趋向成熟,使得电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。(3)在FPGA(Field Programmable Gate Array,现场可编程门阵列)实现DSP(数字信号处理)应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力地推动了软件无线电技术的实用化。基于FPGA的DSP技术为高速数字信号处理算法提供了实现途径。(4)嵌入式微处理器软核的出现,更大规模的FPGA/CPLD器件的不断推出,使得SOPC(System on Programmable Chip,可编程片上系统)步入了大规模应用阶段,使得在一片FPGA芯片中实现一个完备的数字信号处理系统成为可能。(5)在仿真和设计两方面支持标准硬件描述语言的EDA软件不断推出,系统级、行为验证级硬件描述语言的出现(如System C)使得复杂电子系统的设计和验证趋于简单。(6)EDA技术使得电子领域各学科的界限更加模糊,更加相互包容和渗透,如模拟与数字、软件与硬件、系统与器件、ASIC与FPGA、行为与结构等,基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块。

EDA技术为现代电子学理论和设计理念的表达与实现提供了可能性。在硬件实现方面,EDA技术融合了大规模集成电路制造技术、IC版图设计技术、ASIC测试和封装技术、FPGA/CPLD编程下载技术、自动测试技术等;在工程实现方面融合了计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电路基础理论、数字信号处理技术、数字系统建模、优化设计技术等。因此,现代EDA技术已经不是某一学科的分支或某种新的技能技术,而应该是一门综合性学科。它融合多学科于一体,又渗透于各学科之中,打破了软件与硬件间的壁垒,使计算机的软件技术与硬件实现、设计效率和产品性能合二为一,代表了现代电子设计技术和应用技术的发展方向。

1.2 EDA技术的特征和优势

在现代电子设计领域,EDA技术已经成为电子系统设计的重要手段。无论是设计数字系统还是集成电路芯片,其设计作业的复杂程度都在不断增加,仅仅依靠手工进行设计已经不能满足要求,所有的设计工作都需要在计算机上借助于EDA软件工具进行。在EDA软件的支持下,设计者只需完成对系统功能的描述,就可以由计算机软件进行处理,得到设计结果,修改设计如同修改软件一样方便。利用EDA设计工具,设计者可以预知设计结果,减少设计的盲目性,极大地提高设计的效率。1.2.1 EDA技术的特征

现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力,具有开放式的设计环境,具有丰富的元件模型库等。EDA技术依赖功能强大的计算机,在EDA工具软件的平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、布局布线和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。

1.硬件描述语言设计输入

用硬件描述语言进行电路与系统的设计是当前EDA技术的一个重要特征,硬件描述语言输入是现代EDA系统的主要输入方式。统计资料表明,在硬件描述语言和原理图两种输入方式中,前者约占70%以上,并且这个趋势还在继续增长。与传统的原理图输入设计方法相比较,硬件描述语言更适合于规模日益增大的电子系统,同时,它还是进行逻辑综合优化的重要工具。硬件描述语言使得设计者可以在比较抽象的层次上描述设计的结构和内部特征,其突出优点是:语言的公开可利用性,设计与工艺的无关性,宽范围的描述能力,便于组织大规模系统的设计,便于设计的复用和继承等。

2.“自顶向下”的设计方法

近十年来,电子系统的设计方法发生了很大的变化。过去,电子产品设计的基本思路一直是先选用标准通用集成电路芯片,再由这些芯片和其他元件自下而上地构成电路、子系统和系统。这样设计出的电子系统所用元件的种类和数量均较多、体积功耗大、可靠性差。随着集成电路技术的不断进步,半导体集成电路也由早期的单元集成、部件电路集成发展到整机电路集成和系统电路集成。电子系统的设计方法也由过去的那种集成电路厂家提供通用芯片,整机系统用户采用这些芯片组成电子系统的“Bottom-up”(自底向上)设计方法改变为一种新的“Top-down”(自顶向下)设计方法。在这种新的设计方法中,由整机系统用户对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路ASIC来实现,且这些专用集成电路是由系统和电路设计师亲自参与设计的,直至完成电路到芯片版图的设计,再交由IC工厂投片加工,或者用可编程ASIC(CPLD和FPGA)现场编程实现。图1.2所示为电子系统的两种不同的设计步骤。图1.2“自顶向下”与“自底向上”设计“自顶向下”法是一种概念驱动的设计方法。该方法要求在整个设计过程中尽量运用概念(即抽象)去描述和分析设计对象,而不要过早地考虑实现该设计的具体电路、元器件和工艺,以便抓住主要矛盾,避免纠缠在具体细节上,这样才能控制住设计的复杂性。整个设计在概念上的演化从顶层到底层应当逐步由概括到展开,由粗略到精细。只有当整个设计在概念上得到验证与优化后,才能考虑采用什么电路、元器件和工艺去实现该设计的具体问题。

在进行“自顶向下”的设计时,首先从系统级设计入手,在顶层进行功能方框图的划分和结构设计;在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述;在功能一级进行验证,然后用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。而“自底向上”的设计方法一般是在系统划分和分解的基础上先进行单元设计,在单元的精心设计后逐步向上进行功能块设计,然后再进行子系统的设计,最后完成系统的总成设计。“自顶向下”的设计方法有利于在早期发现结构设计中的错误,提高设计的一次成功率,因而在现代EDA系统中被广泛采用。

3.逻辑综合与优化

逻辑综合是20世纪90年代电子学领域兴起的一种新的设计方法,是以系统级设计为核心的高层次设计。逻辑综合是将最新的算法与工程界多年积累的设计经验结合起来,自动地将用真值表、状态图或VHDL硬件描述语言等所描述的数字系统转化为满足设计性能指标要求的逻辑电路,并对电路进行速度、面积等方面的优化。

逻辑综合的特点是将高层次的系统行为设计自动翻译成门级逻辑的电路描述,做到了设计与工艺的相互独立。逻辑综合的作用是根据一个系统的逻辑功能与性能的要求,在一个包含众多结构、功能和性能均已知的逻辑元件的逻辑单元库的支持下,寻找出一个逻辑网络结构最佳的(至少是较佳的)实现方案。逻辑综合的过程主要包含以下两个方面。(1)逻辑结构的生成与优化。进行逻辑化简与优化,达到尽可能地用较少的元件和连线形成一个逻辑网络结构(逻辑图),满足系统逻辑功能的要求。(2)逻辑网络的性能优化。利用给定的逻辑单元库,对已生成的逻辑网络进行元件配置,进而估算实现该逻辑网络的芯片的性能与成本。性能主要指芯片的速度,成本主要指芯片的面积与功耗。速度与面积、速度与功耗是矛盾的。这允许使用者对速度与面积或速度与功耗相矛盾的指标进行性能与成本的折中,以确定合适的元件配置,完成最终的、符合要求的逻辑网络结构。

4.开放性和标准化

开放式的设计环境也称为框架结构(Framework)。框架是一种软件平台结构,它在EDA系统中负责协调设计过程和管理设计数据,实现数据与工具的双向流动,为EDA工具提供合适的操作环境。框架结构的核心是可以提供与硬件平台无关的图形用户界面以及工具之间的通信、设计数据和设计流程的管理等,还包括各种与数据库相关的服务项目。

任何一个EDA系统只要建立了一个符合标准的开放式框架结构,就可以接纳其他厂商的EDA工具一起进行设计工作。框架结构的出现使国际上许多优秀的EDA工具可以合并到一个统一的计算机平台上,成为一个完整的EDA系统,充分发挥每个设计工具的技术优势,实现资源共享。在这种环境下,设计者可以更有效地运用各种工具,提高设计质量和效率。

近年来,随着硬件描述语言等设计数据格式的逐步标准化,不同的设计风格和应用要求导致各具特色的EDA工具被集成在同一个工作站上,从而使EDA框架标准化。新的EDA系统不仅能够实现高层次的自动逻辑综合、版图综合和测试码生成,而且可以使多个仿真器对同一个设计进行协同仿真,从而进一步提高了EDA系统的工作效率和设计的正确性。

5.库(Library)

EDA工具必须配有丰富的库(元器件图形符号库、元器件模型库、工艺参数库、标准单元库、可复用的电路模块库、IP库等),才能够具有强大的设计能力和较高的设计效率。

在电路设计的每个阶段,EDA系统需要各种不同层次、不同种类的元器件模型库的支持。例如,在原理图输入时需要元器件外形库,在逻辑仿真时需要逻辑单元的功能模型库,在电路仿真时需要模拟单元和器件的模型库,在版图生成时需要适应不同层次和不同工艺的底层版图库,在测试综合时需要各种测试向量库等。每一种库又分为不同层次的单元或元素库,如逻辑仿真的库又按照行为级、寄存器级和门级分别设库。VHDL语言输入所需的库则更为庞大和齐全,几乎包括了上述所有库的内容。各种模型库的规模和功能是衡量EDA工具优劣的一个重要标志。1.2.2 EDA技术的优势

传统的数字系统设计一般采用搭“积木块”的手工设计方式,即由器件搭成电路板,再由电路板搭成电子系统。数字系统最初的“积木块”是标准的集成电路,如74/54系列(TTL)、4000/4500系列(CMOS)芯片和一些固定功能的大规模集成电路。在设计数字电路时,一般先按照数字系统的具体功能要求进行功能划分,然后对每个子模块画出逻辑真值表和状态转换真值表,用卡诺图进行手工逻辑化简和状态化简,写出布尔表达式,画出相应的逻辑线路图,再据此选择合适的器件,并按照器件推荐的电路设计电路板,最后进行实测与调试。

手工设计方法有很多缺点:如对于复杂电路的设计,调试十分困难;对于设计过程中出现的错误,查找和修改十分不便;在设计过程中产生大量文档,不易管理;只有在设计出样机或生产出芯片后才能进行实测等。相比之下,采用EDA技术进行电子系统的设计有很大的优势。(1)采用硬件描述语言,便于复杂系统的设计

从电子设计方法学来看,EDA技术的最大优势是能够将所有的设计环节纳入统一的自顶向下的设计方案中。用HDL对数字电子系统进行结构描述、功能描述和行为描述,从而可以在电子设计的各阶段、各层进行计算机模拟验证,保证了设计过程的正确性,降低了设计成本,缩短了设计周期。此外,某些硬件描述语言(如VHDL)也是文档型的语言,可以极大地简化设计文档的管理。(2)强大的系统建模和电路仿真功能

EDA技术中最为瞩目的功能是日益强大的仿真测试技术。EDA仿真测试技术只需通过计算机就能对所设计的电子系统进行不同层次的性能测试和逻辑仿真,在实际系统完成后,还能对系统上的目标器件进行边界扫描测试,极大地提高了大规模电子系统的设计自动化程度。(3)具有自主的知识产权

无论传统的应用电子系统设计得如何完美,使用了多么先进的功能部件,都掩盖不了一个不争的事实,即该系统对于设计者来说,没有任何的知识产权可言。因为系统中的关键器件往往并非出自设计者之手,这将导致该系统在许多情况下的应用受到直接限制,而且有时是致命的(如系统中某些关键器件失去供货来源、应用于军事电子装备中的关键器件等)。基于EDA技术的设计则不同,由于用HDL表达的设计在实现目标方面有很大的可选性,它既可以用不同来源的FPGA器件实现,也可以直接以ASIC来实现,设计者拥有完全的自主权,再也不会受制于人。(4)开发技术的标准化和规范化

传统的电子设计方法至今没有任何标准规范加以约束,设计效率低,系统性能差,开发成本高,市场竞争能力弱。EDA技术的设计语言是标准化的,不会由于设计对象的不同而改变;EDA开发工具是规范化的,它支持任何标准化的设计语言;EDA技术的设计成果是通用性的,IP核具有规范的接口协议和良好的可移植性与可测试性,为系统开发提供了可靠的保证。(5)全方位地利用计算机的自动设计、仿真和测试技术

EDA不但在整个设计流程上充分利用计算机的自动设计能力,在各设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。对于传统的设计方法,如单片机仿真器的使用仅能在最后完成的系统上进行局部的软件仿真调试,在整个设计的中间过程中是无能为力的。至于硬件系统测试,由于现在的许多系统主板不但层数多,而且许多器件都是BGA(Ball-Grid Array)封装,所有引脚都在芯片的底面,焊接后普通的仪器仪表无法接触到所需要的信号点,因此无法测试。(6)对设计者的硬件知识和硬件经验要求低

传统的电子设计对于电子工程师的要求似乎很高:他在电子技术理论和设计实际方面必须是行家;他不但应该是软件高手,同时还是经验丰富的硬件设计能工巧匠;他必须熟悉针对不同单片机或DSP器件开发系统的使用方法和性能,还必须知道许多器件的封装形式和电气特性,知道不同的在线测试仪表的使用方法和性能指标;他要熟练掌握大量的与设计理论和优化技术毫无关系的技能技巧,不得不事无巨细,事必躬亲。

所有这一切显然不符合现代电子技术的发展需求,首先不符合快速换代的产品市场要求,不符合需求巨大的人才市场的要求。EDA技术的标准化和HDL设计语言与设计平台对具体硬件的无关性,使设计者能更大程度地将自己的才能和创造力集中在设计项目性能的提高和成本的降低上,而将更具体的硬件实现工作交给专业部门来完成。显然,高技术人才比经验性人才的培养效率要高得多。

1.3 EDA设计的目标和流程

EDA技术的范畴包括电子工程师进行产品开发的全过程,以及在电子产品生产的全过程中期望由计算机提供的各种辅助工作。从一个角度看,EDA技术可粗略分为系统级、电路级和物理实现级三个层次的辅助设计过程;从另一个角度来看,EDA技术应包括电子电路设计的各领域,即从低频电路到高频电路、从线性电路到非线性电路、从模拟电路到数字电路、从分立电路到集成电路的全部设计过程。EDA技术的范畴如图1.3所示。图1.3 EDA技术的范畴1.3.1 EDA设计的目标

一般来说,利用EDA技术进行电子系统设计,归纳起来主要有以下4个应用领域:印刷电路板(PCB)设计、集成电路(IC或ASIC)设计、可编程逻辑器件(FPGA/CPLD)设计和混合电路设计。

印刷电路板的设计是EDA技术最初的实现目标。电子系统大多采用印刷电路板的结构,在系统实现过程中,印刷电路板设计、装配和测试占据了很大的工作量。印刷电路板设计是一个电子系统进行技术实现的重要环节,也是一个很具有工艺性、技巧性的工作。利用EDA工具来进行印刷电路板的布局布线设计和验证分析是早期EDA技术最基本的应用。

集成电路是指通过一系列特定的加工工艺,将晶体管、二极管等有源器件和电阻、电容等无源器件,按照一定的电路互连,“制作”(集成)在一块半导体单晶薄片上,经过封装而形成的具有特定功能的完整电路。集成电路一般要通过“掩膜”来制作,按照实现的工艺,又分为全定制或半定制的集成电路。集成电路设计包括逻辑(或功能)设计、电路设计、版图设计和工艺设计多个环节。随着大规模和超大规模集成电路的出现,传统的手工设计方法遇到的困难越来越多,为了保证设计的正确性和可靠性,必须采用先进的EDA软件工具来进行集成电路的逻辑设计、电路设计和版图设计。集成电路设计是EDA技术的最终实现目标,也是推动EDA技术推广和发展的一个重要源泉。

可编程逻辑器件PLD(Programmable Logic Device)是一种由用户根据需要而自行构造逻辑功能的数字集成电路,其特点是直接面向用户,具有极大的灵活性和通用性,使用方便,开发成本低,工作可靠性好。可编程逻辑器件目前主要有两大类:复杂可编程逻辑器件CPLD(Complex PLD)和FPGA(Field Programmable Gate Array)。它们的基本设计方法是借助EDA软件,用原理图、状态机、布尔表达式和硬件描述语言等方法,生成相应的目标文件,最后通过编程器或下载电缆由目标器件实现。可编程逻辑器件的开发与应用是EDA技术将电子系统设计与硬件实现进行有机融合的一个重要体现。

随着集成电路复杂程度的不断提高,各种不同学科技术、不同模式、不同层次的混合设计方法已被认为是EDA技术所必须支持的方法。不同学科的混合设计方法(Mixed-discipline)主要指电子技术与非电学科技术的混合设计方法;不同模式的混合方法(Mixed-mode)主要指模拟电路与数字电路的混合、模拟电路与DSP技术的混合、电路级与器件级的混合方法等;不同层次的混合方法(Multi-level)主要指逻辑设计中行为级、寄存器级、门级以及开关级的混合设计方法。目前在各种应用领域,如数字电路、模拟电路、DSP专用集成电路、多芯片模块(Multi-Chip Module,MCM)以及印刷电路系统的设计都需要采用各种混合设计方法。1.3.2 EDA设计的流程

利用EDA技术进行电路设计的大部分工作是在EDA软件平台上进行的。一个典型的EDA设计流程主要包括设计准备、设计输入、设计处理、设计验证和器件编程这5个基本步骤,如图1.4所示。图1.4 典型的EDA设计流程

设计输入有多种方式,包括采用硬件描述语言(如AHDL、VHDL和Verilog HDL等)进行设计的文本输入方式、图形输入方式和波形输入方式,或者采用文本、图形两者混合的设计输入方式。也可以采用自顶向下的层次结构设计方法,将多个输入文件合并成一个设计文件等。

设计处理是EDA设计中的核心环节。在设计处理阶段,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动地进行适配,最后产生编程用的编程文件。设计处理主要包括设计编译和检查、逻辑优化和综合、适配和分割、布局和布线、生成编程数据文件等过程。

设计验证过程包括功能仿真和时序仿真,这两项工作是在设计处理过程中同时进行的。功能仿真是在设计输入完成以后,在选择具体器件进行编译之前进行的逻辑功能验证,因此又称为前仿真。此时的仿真没有延时信息或者只有由系统添加的微小标准延时,这对于初步的功能检测非常方便。在仿真前,先要利用波形编辑器或硬件描述语言等建立波形文件或测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中可以观察到各节点信号的变化。若发现错误,则返回设计输入方式,修改逻辑设计。时序仿真是在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为后仿真或时延仿真。由于不同器件的内部延时不一样,不同的布局、布线方案也会给延时造成不同的影响,因此在设计处理以后,对系统的各模块进行时序仿真、分析其时序关系、估计设计的性能以及检查和消除竞争冒险等是非常必要的。

器件编程是将设计处理中产生的编程数据文件通过软件放到具体的可编程逻辑器件中去。对于CPLD器件来说,就是将熔丝图JED文件下载(DOWN)到CPLD器件中;对FPGA器件来说,就是将位流数据文件配置到FPGA器件中。

设计验证可以在EDA硬件开发平台上进行。EDA硬件开发平台的核心是一片可编程逻辑器件FPGA或CPLD,再附加一些输入/输出设备,如按键、数码显示器、指示灯、扬声器等,还提供时序电路需要的脉冲信号源。将设计电路编程下载到FPGA或CPLD中后,根据EDA硬件开发平台的操作模式要求,进行相应的输入操作,然后检查输出结果,验证设计电路。1.3.3 数字集成电路的设计

数字集成电路的EDA设计流程如图1.5所示。首先由系统描述开始,在这个阶段中要对用户的需求、市场前景以及互补产品进行充分的调研与分析;对设计模式和制造工艺的选择进行认证;最终目标是用工程化语言将待设计IC的技术指标、功能、外形尺寸、芯片面积、工作速度与功耗等描述出来,形成这一步的文档。

下一步是功能设计,这一阶段的工作是根据用户提出的系统指标要求,将该系统划分成若干子系统,在行为级上将IC的功能及其各组成子系统的功能关系正确而完整地描述出来。然后是进行逻辑设计,这一阶段的主要任务是得到一个实现系统功能的逻辑结构(通常用逻辑图、HDL文本或布尔表达式来表示),并对它进行逻辑模拟,验证其正确性。接着是进行电路设计,这一阶段的主要任务是将逻辑图中的各逻辑部件细化成由一些基本门电路互连的结构,最后转变成由晶体管互连构成的电子电路。在电路设计中要考虑电路的速度和功耗,要注意所使用的元件性能。

最后是进行物理设计,包括版图设计与版图验证两方面的任务。版图设计是将电路的表示转化为几何表示(制造芯片所用的掩膜版图);版图验证是保证集成电路版图设计正确性和可靠性的重要手段。版图的设计应符合与制造工艺有关的设计要求;版图的验证内容包括几何设计规则检查(DRC)、电学规则检查(ERC)、版图与电路原理图一致性检查(LVS)以及版图的电参数提取(LPE)以及后模拟。图1.5 数字集成电路的EDA设计流程

需要指出的是:在逻辑设计完成后要进行逻辑模拟,在电路设计完成后要进行电路模拟,在版图设计的全过程中以及完成后均需进行版图验证,以保证所设计的版图满足制造工艺要求和符合系统的设计规范。当不满足要求时,在后模拟与版图设计之间将会发生一个多次迭代过程。逻辑模拟十分重要,因为任何逻辑设计上的错误如果一直到芯片做出来以后才能发现(有时往往很难分清是否是逻辑设计上的错误),就要花费很多的时间和成本去纠正,而且每纠正一次都需要重新进行电路设计、版图设计和工艺流水。

经过验证的版图就可送去制作掩膜版并制造芯片,最后进行封装测试,整个设计流程结束。上述设计流程的每一步骤均需要相应EDA工具的支持,实际的数字IC设计可能会在某个步骤中或者几个步骤之间反复进行,运用EDA工具进行设计的目标就是要尽量减少反复的次数,以缩短产品进入市场的时间。1.3.4 模拟集成电路的设计

模拟集成电路的设计流程分为结构级设计、单元级设计(又分为拓扑选择和尺寸优化两步)和物理版图级设计三个阶段,需要有相应的EDA工具支持这些设计工作。结构级设计是将用户给定的关于模拟集成电路性能的抽象描述转化为一个由各种功能单元所构成的电路;拓扑选择是根据功能单元的性能指标和工作环境,决定用何种具体的电路结构来实现该单元的功能;尺寸优化是在获得电路结构的条件下,根据所需的电路性能指标和生产条件确定每个器件的“最佳”几何尺寸,以提高模拟集成电路的合格率;物理版图级设计是将具有器件几何尺寸和满足一定约束条件的电路原理图映射成集成电路版图。

模拟集成电路的设计比数字集成电路的设计要复杂得多,这是由模拟集成电路设计的特殊性决定的:① 模拟集成电路的层次不如数字集成电路的层次清晰;② 模拟电路性能指标繁杂;③ 模拟电路拓扑结构层出不穷;④ 模拟电路性能对器件尺寸、工艺及系统级的串扰非常敏感。

由于上述模拟集成电路设计的种种特殊性,迫使设计者在模拟集成电路的设计过程中,要综合考虑各项性能指标,合理选择电路拓扑结构,反复优化器件尺寸,全面考虑工艺水平、工作环境和各种因素,并精心进行物理版图设计。器件尺寸每调整一次,均要重新绘制版图、重新提取元器件参数并重做一次后模拟。因此,模拟集成电路的设计是一项非常复杂、艰巨而费时的工作。

目前模拟集成电路设计工具的自动化水平还不够高,设计中许多决策、判断与选择主要靠人的智慧来解决,在设计中会遇到许多很复杂、很困难的性能指标的多维折中处理问题,而设计者处理这类问题时通常还是靠直觉和长期积累的设计经验,因此设计者必须具有广博的电路知识、丰富的实践经验和勇于创新的精神才能胜任此项工作。

1.4 EDA技术与ASIC设计

EDA技术的一个重要应用是ASIC(Application Specific Integrated Circuits,专用集成电路)。ASIC是面向专门用途的电路,以此区别于标准逻辑(Standard Logic)、通用存储器和通用微处理器等电路。目前在集成电路界,ASIC被认为是用户专用集成电路(Customer Specific IC),即它是专门为一个用户设计和制造的。换言之,它是根据某一用户的特定要求,能以低研制成本、短交货周期供货的全定制、半定制集成电路。1.4.1 ASIC的特点与分类

ASIC的概念早在20世纪60年代就有人提出,但由于当时设计自动化程度低,加上工艺基础、市场和应用条件均不具备,因而没有得到适时发展。进入20世纪80年代后,随着半导体集成电路的工艺技术、支持技术、设计技术和测试评价技术的发展,集成度的大大提高,电子整机、电子系统高速更新换代的竞争态势不断加强,为开发周期短、成本低、功能强、可靠性高以及专利性与保密性好的专用集成电路创造了必要而充分的发展条件,并很快形成了用ASIC取代中、小规模集成电路来组成电子系统或整机的技术热潮。

ASIC的出现和发展说明集成电路进入了一个新阶段。通用的、标准的集成电路已不能完全适应电子系统的急剧变化和更新换代。各电子系统生产厂家都希望生产出具有自己特色和个性的产品,而只有ASIC产品才能实现这种要求。这也是自20世纪80年代中期以来,ASIC得到广泛传播和重视的根本原因。目前ASIC在总的IC市场中的占有率已超过三分之一,在整个逻辑电路市场中的占有率已超过一半。与通用集成电路相比,ASIC在构成电子系统时具有以下几个方面的优越性。(1)缩小体积、减轻重量、降低功耗。(2)提高可靠性。用ASIC芯片进行系统集成后,外部连线减少,可靠性明显提高。(3)易于获得高性能。ASIC针对专门的用途而特别设计,它是系统设计、电路设计和工艺设计的紧密结合,这种一体化的设计有利于得到前所未有的高性能系统。(4)可增强保密性。电子产品中的ASIC芯片对用户来说相当于一个“黑盒子”。(5)在大批量应用时,可显著降低系统成本。

ASIC按功能的不同,可分为数字ASIC、模拟ASIC、数模混合ASIC和微波ASIC;按使用材料的不同,可分为硅ASIC和砷化镓ASIC。一般来说,数字ASIC、模拟ASIC主要采用硅材料,微波ASIC主要采用砷化镓材料。砷化镓具有高速、抗辐射能力强、寄生电容小和工作温度范围大等优点,目前已在移动通信、卫星通信等方面得到广泛应用。但总的来说,由于对砷化镓的研究较硅晚了十多年,目前仍是硅ASIC占主导地位。对于硅ASIC,按制造工艺的不同,还可进一步将其分为MOS型、双极型和BiCMOS型,其中MOS 型ASIC占了整个ASIC市场的70%以上,双极型ASIC约占16%,BiCMOS型ASIC占11%。1.4.2 ASIC的设计方法

目前ASIC已经渗透到各应用领域,它的品种是如此之广,从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路,可谓五花八门。由于品种不同,在性能和价格上会有很大差别,因而实现各种设计的方法和手段也就有所不同。

ASIC的设计按照版图结构及制造方法来划分,有全定制(Full-custom)法和半定制(Semi-custom)法两种实现方法,如图1.6所示。全定制法是一种手工设计版图的设计方法,设计者需要使用全定制版图设计工具来完成。半定制法是一种约束性设计方法,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计的正确率。对于数字ASIC设计而言,其半定制法按逻辑实现的方式不同,可细分为门阵列法、标准单元法和可编程逻辑器件法。图1.6 ASIC设计实现方法

对于某些性能要求很高、批量较大的芯片,一般采用全定制法设计。例如,半导体厂家推出的新的微处理器芯片,为了提高芯片的速度,设计时须采用最佳的随机逻辑网络,且每个单元都必须精心设计,另外还要精心地布局布线,将芯片设计得最紧凑,以节省每一小块面积,降低成本。但是,很多产品的产量不大或者不允许设计时间过长,这时只能对芯片面积或性能做出牺牲,并尽可能采用已有的、规则结构的版图。或者为了争取时间和市场,也可采用半定制法,先用最短的时间设计出芯片,在占领市场的过程中再予以改进,进行二次开发。因此,半定制法与全定制法两种设计方式的优缺点是互补的,设计人员可根据不同的要求选择各种合适的设计方法。下面简要介绍几种常用的设计方法和它们的特点。

1.全定制法

全定制法是一种基于晶体管级的设计方法,它主要针对要求得到最高速度、最低功耗和最省面积的芯片设计。为满足这种要求,设计者必须使用版图编辑工具从晶体管的版图尺寸、位置及互连线开始亲自设计,以期得到ASIC芯片的最优性能。

运用全定制法设计芯片,当芯片的功能、性能、面积和成本确定后,设计人员要对芯片结构、逻辑、电路等精心地设计,对不同的方案进行反复比较,对单元电路的结构、晶体管的参数要反复地模拟优化。在版图设计时,设计人员要手工设计版图并精心地布局布线,以获得最佳的性能和最小的面积。版图设计完成后,要进行完整的检查、验证,包括设计规则检查、电学规则检查、连接性检查、版图参数提取、电路图提取、版图与电路图一致性检查等。最后,通过后模拟,才能将版图转换成标准格式的版图文件,交给厂家制造芯片。

由此可见,采用全定制法可以设计出高速度、低功耗、省面积的芯片,但人工参与的工作量大,设计周期长,设计成本高,而且容易出错,一般只适用于批量很大的通用芯片(如存储器、乘法器等)设计或有特殊性能要求(如高速低功耗芯片)的电路设计。

2.门阵列法

门阵列是最早开发并得到广泛应用的ASIC设计技术,它是在一个芯片上把门排列成阵列形式,严格地讲,是把含有若干器件的单元排列成阵列形式。门阵列法又称为母片法,母片是IC工厂按照一定规格事先生产的半成品芯片。在母片上制作了大量规则排列的单元,这些单元依照要求相互连接在一起即可实现不同的电路要求。母片完成了绝大部分芯片工艺,只留下一层或两层金属铝连线的掩膜需要根据用户电路的不同而定制。

门阵列的设计一般是在IC厂家提供的电路单元库基础上进行的逻辑设计,而且门阵列设计软件一般都具有较高的自动化水平,能根据电路的逻辑结构自动调用库单元的版图,自动布局布线。因此,设计者只要掌握很少的集成电路知识,设计过程也很简便,设计制造周期短、设计成本低。但门的利用率不高,芯片面积较大,而且母片上制造好的晶体管都是固定尺寸的,不利于设计高性能的芯片。所以这种方法适用于设计周期短、批量小、成本低、对芯片性能要求不高的芯片设计。一般采用此法迅速设计出产品,在占领市场后再用其他方法再设计。

3.标准单元法

标准单元法又称为库单元法,它是以精心设计好的标准单元库为基础的。在设计时可根据需要选择库中的标准单元构成电路,然后调用这些标准单元的版图,并利用自动布局布线软件完成电路到版图一一对应的最终设计。标准单元库一般应包括以下几方面的内容。(1)逻辑单元符号库:包含各种标准单元的名称、符号、输入/输出及控制端,供设计者输入逻辑图时调用。(2)功能单元库:该库是在单元版图确定后,从中提取分布参数再进行模拟得到标准单元的功能与时序关系,并将此功能描述成逻辑与时序模拟所需要的功能库形式,供逻辑与时序模拟时调用。(3)拓扑单元库:该库是单元版图主要特征的抽象表达,去掉版图细节,保留版图的高度、宽度及输入/输出、控制端口的位置。这样用拓扑单元进行布局布线,既保留了单元的主要特征,又大大减少了设计的数据处理量,提高了设计效率。(4)版图单元库:该库以标准的版图数据格式存放为各单元精心设计的版图。

相比于全定制法,标准单元法设计的难度和设计周期都小(短)得多,而且也能设计出性能较高、面积较小的芯片。与门阵列法相比,标准单元法设计的电路性能、芯片利用率以及设计的灵活性均比门阵列法的好,既可用于设计数字ASIC,又可用于设计模拟ASIC。标准单元法存在的问题是,当工艺更新以后,标准单元库要随之更新,这是一项十分繁重的工作。此外,标准单元库的投资较大,而且芯片的制作需要全套的掩膜版和全部工艺过程,因此生产周期及成本均比门阵列法的高。

4.可编程逻辑器件法

可编程逻辑器件是ASIC的一个重要分支。与前面介绍的几类ASIC不同,它是一种已完成了全部工艺制造、可直接从市场上购得的产品,用户只要对它编程就可实现所需要的电路功能,所以称它为可编程ASIC。前面三种方法设计的ASIC芯片都必须到IC厂家去加工制造才能完成,设计制造周期长,而且一旦有了错误,需重新修改设计和制造,成本和时间要大大增加。采用可编程逻辑器件,设计人员在实验室即可设计和制造出芯片,而且可反复编程,进行电路更新。如果发现错误,则可以随时更改,完全不必关心器件实现的具体工艺,这大大方便了设计者。

可编程逻辑器件发展到现在,规模越来越大,功能越来越强,价格越来越便宜,相配套的EDA软件工具越来越完善,因而深受设计人员的喜爱。目前,在电子系统开发阶段的硬件验证过程中,一般都采用可编程逻辑器件,以期尽快开发产品,迅速占领市场。等大批量生产时,再根据实际情况转换成前面三种方法中的一种进行再设计。表1.1给出了不同设计方法的综合比较。表1.1 不同设计方法的综合比较注:√最高(最大),○高(大),―中等,△低(小),×最低(最小)1.4.3 SoC设计

随着微电子技术的迅速发展,集成电路设计和工艺技术水平有了很大的提高,单片集成度已经超过上亿个晶体管,从而使得将原先由许多IC芯片组成的电子系统集成在一个硅片上成为可能,构成所谓的片上系统(System on Chip,SoC)或系统芯片。SoC将系统的主要功能综合到一块芯片中,本质上是在做一种复杂的IC设计。与普通的集成电路相比,SoC不再是一种功能单一的单元电路,而是将信号采集、信号处理、输入和输出等完整的系统功能集成在一起,成为一个专用功能的电子系统芯片。

SoC按用途的不同可以分为两种类型,一种是专用SoC芯片,是专用集成电路(ASIC)向系统级集成的发展;另一种是通用SoC芯片,将绝大部分部件如MCU、DSP、RAM、I/O等集成在单个芯片上,同时提供用户设计所需要的逻辑资源和编程所需的软件资源。SoC的出现是电子系统设计领域的一场革命,它对电子信息产业的影响将不亚于集成电路诞生所产生的影响。当今电子系统的设计已经不再是利用各种通用IC进行PCB板级的设计和调试,而是转向以ASIC或大规模FPGA为物理载体的系统芯片设计。

1.IP核

系统芯片的设计思想有别于普通的IC设计,它是以IP核为基础,以硬件描述语言HDL为主要设计手段,借助于以计算机为平台的EDA工具而进行的。

IP的原来含义是知识产权、著作权等。实际上,IP的概念早已在IC设计中使用,应该说前面介绍的标准单元库中的功能单元就是IP的一种形式,因此,在IC设计领域可将其理解为实现某种功能的设计。美国著名的Dataquest咨询公司则将半导体产业的IP定义为用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。

随着信息技术的飞速发展,用传统的手段来设计高复杂度的系统级芯片,设计周期将变得冗长,设计效率降低。解决这一设计危机的有效方法是复用以前的设计模块,即充分利用已有的或第三方的功能模块作为宏单元,进行系统集成,形成一个完整的系统,这就是集成电路设计复用的概念。这些已有的或由第三方提供的具有知识产权的模块(或内核)称为IP核,它在现代EDA技术和开发中具有十分重要的地位。

可复用的IP核一般分为硬核、固核和软核三种类型。硬核是以版图形式描述的设计模块,它基于一定的设计工艺,不能由设计者进行修改,可有效地保护设计者的知识产权。换句话说,用户得到的硬核仅是产品的功能,而不是产品的设计。由于硬核的布局不能被系统设计者修改,所以也使系统设计的布局布线变得更加困难,特别是在一个系统中集成多个硬件IP核时,系统的布局布线几乎不可能。

固核由RTL描述和可综合的网表组成。与硬核相比,固核可以在系统级重新布局布线,使用者按规定增减部分功能。由于RTL描述和网表对于系统设计者是透明的,这使得固核的知识产权得不到有效的保护。固核的关键路径是固定的,其实现技术不能更改,不同厂家的固核不能互换使用。因此,硬核和固核的一个共同缺陷就是灵活性比较差。

软核是完全用硬件描述语言(VHDL/Verilog HDL)描述出来的IP,它与实现技术无关,可以根据使用者的需要进行修改。软核可以在系统设计中重新布局布线,在不同的系统设计中具有较大的灵活性,可优化性能或面积使之达到期望的水平。由于每次应用都要重新布局布线,软核的时序不能确定,从而增加了系统设计后测试的难度。

一个IP模块首先要有功能描述文件,用于说明该IP模块的功能时序要求等,其次还要有设计实现和设计验证两个方面的文件。硬核的实现比较简单,类似于PCB设计中的IC芯片的使用;软核的使用情况较为复杂,实现后的性能与具体的实现方式有关。为保证软核的性能,软核的提供者一般还提供综合描述文件,用于指导软核的综合。固核的使用介于上述两者之间。

用户在设计一个系统时,可以自行设计各功能模块,也可以用IP模块来构建。IP核作为一种商品,已经在Internet上广泛销售,而且还有专门的组织——虚拟插座接口协会VSIA(Virtual Socket Interface Association)来制定关于IP产品的标准与规范。对设计者而言,想要在短时间内开发出新产品,一个比较好的方法就是使用IP核完成设计。

目前,尽管对IP还没有统一的定义,但IP的实际内涵已经有了明确的界定:首先它必须是为了易于重用而按照嵌入式应用专门设计的;其次是必须实现IP模块的优化设计。优化的目标通常可用“四最”来表达,即芯片的面积最小、运算速度最快、功率消耗最低和工艺容差最大。所谓工艺容差大是指所做的设计可以经受更大的工艺波动,因为IP必须能经受得起成千上万次的使用。

2.SoC单片系统

集成规模和系统功能达到什么程度才能算做SoC,并没有严格的定义。简单地说,SoC是指将一个完整的系统集成在一个芯片上,就是用一个芯片实现一个功能完整的系统。但从广义上说,SoC应该指在单片上集成系统级多元化的大规模功能模块,从而构成一个能够处理各种信息的集成系统,该集成系统通常由一个主控单元和一些功能模块构造而成。主控单元通常是一个处理器,这个处理器既可以是一个普通的微处理器(CPU)的核,也可以是一个数字信号处理器(DSP)的核,还可以是一个专用的运算控制逻辑单元。一个由微处理器核(CPU核)、数字信号处理器核(DSP核)、存储器核(RAM/ROM核)、模数转换器核(A/D、D/A核)以及USB接口核等构成的系统芯片如图1.7所示。

3.基于IP模块的SoC设计

随着集成电路的规模越来越复杂,而产品的上市时间却要求越来

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载