EDA技术与VHDL设计(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-26 12:05:43

点击下载

作者:徐志军,王金明,等

出版社:电子工业出版社

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

EDA技术与VHDL设计(第2版)

EDA技术与VHDL设计(第2版)试读:

前言

EDA(Electronic Design Automation,电子设计自动化)技术是20世纪90年代以来迅速发展起来的电子设计新技术,它以可编程逻辑器件为载体,以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言(HDL)为电子系统的功能描述方式,以电子系统设计为目标,在教学、科研,以及大学生电子设计竞赛等应用场合中起着越来越重要的作用。

EDA技术目前成为电子类本科生必须掌握的专业基础知识与基本技能,国内许多高校的相关学科已将EDA技术作为一门重要的专业基础课程。随着教学改革的深入,对EDA课程教学的要求也在不断提高,为与EDA技术的发展相适应,必须对教学内容进行更新和优化。

我们认为在EDA教学中应注意如下几点。

首先,要明确最基本的教学内容,并突出重点。EDA技术教学的目的是使学生掌握一种通过软件的方法来高效地完成硬件设计的设计技术,应以培养学生的创新思维和设计思想为主,同时使学生掌握基本的设计工具和设计方法。

其次,要改进教学方法。EDA教学应主要以引导性教学为主,合理安排理论教学和实验教学的学时比例,使学生能够理论联系实际,提高实践动手能力和工程设计能力。

再次,要注重教学实效。EDA课程具有很强的实践性,针对性强的实验应该是教学的重要环节,应格外重视EDA实验的质量。

基于以上的认识,我们安排了本书的章节,本书是以可编程逻辑器件、EDA设计工具、VHDL硬件描述语言三方面内容为主线展开的,贯穿其中的则是现代数字设计的新思想、新方法。

本书是在普通高等教育“十一五”国家级规划教材《EDA技术与VHDL设计》基础上编写的,全书共10章,主要内容涵盖了EDA技术的硬件资源、软件操作和设计应用。

第1章对EDA技术做了综述,介绍了EDA技术的发展、EDA设计流程及EDA技术涉及的领域。第2章介绍可编程逻辑器件的基本概念、结构组成和工作原理,可编程逻辑器件的编程工艺及测试技术等。第3章具体介绍Altera公司典型的FPGA/CPLD器件的结构与配置。第4章介绍使用集成工具Quartus II软件进行设计开发的过程,并介绍宏功能模块的设计与应用。第5章介绍基于VHDL的设计过程及VHDL综合工具的使用方法。第6章介绍VHDL的语法、结构与要素。第7章介绍VHDL的语句及常用组合电路、时序电路的VHDL设计。第8章结合具体实例介绍用VHDL进行设计的方法。第9章是用VHDL进行数字接口开发的实例。第10章是数字通信常用算法与模块的设计实例。

为了方便使读者能够较系统、完整地学习EDA技术,掌握EDA设计基本技能,本书从教学的角度出发,尽量将有关EDA技术的内容编入书中,并力求内容精炼,语言通俗易懂。读者也可以根据实际需要,节选学习书中的部分内容,然后再通过相关EDA技术书籍的学习,达到掌握EDA技术的目的。

本书的教学可安排32~40学时,其中第1章占2学时,第2章占4学时,第3章占4学时,第4章占4学时,第5章占4学时,第6章占4学时,第7章占4~6学时,第8章占2~4学时,第9章占2~4学时,第10章占2~4学时。建议安排8~16学时的实验,第一个实验可安排EDA工具软件的使用方法。此外,各学校也可根据自己的教学计划适当调整学时安排。本书提供配套电子课件、程序代码和习题参考答案等教学资源,请登录华信教育资源网(http://www.hxedu.com.cn)注册下载。

本书由徐志军教授主编,并编写第1、2章,第3、4、5章由王金明编写,第6、7章由尹廷辉编写,徐光辉编写了第8章,苏勇编写了第9、10章,全书由徐志军统稿。南京航空航天大学的王成华教授审阅了全书,并提出了修改意见和建议,杭州电子科技大学的潘松老师也给予了支持和帮助,我们在此表示衷心的感谢!

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

作者

2015年2月

第1章 EDA技术概述

本章概要:本章主要介绍EDA技术的发展、EDA技术的实现目标、EDA设计流程和设计工具、EDA技术涉及的领域。

知识要点:(1)EDA技术的特征;(2)EDA设计的目标和流程;(3)“自顶向下”的设计方法;(4)EDA技术与ASIC设计;(5)EDA设计工具。

教学安排:本章教学安排2学时。通过本章的学习,读者可了解EDA的基本概念,熟悉EDA设计的流程,了解EDA设计工具的主要功能。

1.1 EDA技术及其发展历程

信息社会的发展离不开集成电路,当前集成电路正朝着速度快、容量大、体积小、功耗低的方向发展,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到纳米阶段,可以在几平方厘米的芯片上集成数亿个晶体管;后者的核心就是EDA(Electronic Design Automation)技术,目前已经渗透到电子产品设计的各个环节。

EDA是电子设计自动化的英文缩写,是随着集成电路和计算机技术飞速发展应运而生的一种快速、有效、高级的电子设计自动化技术。EDA工具融合了应用电子技术、计算机技术和智能化技术的最新成果,主要进行三方面的辅助设计工作:集成电路(IC)设计、电子电路设计及印制电路板(PCB)设计。在数字设计领域,EDA技术就是依靠功能强大的电子计算机和EDA软件工具,对以硬件描述语言HDL(Hardware Description Language)形式给出的系统设计文件自动地进行逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路芯片中,实现既定的电路功能。EDA技术使电路设计者的工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,缩短了设计周期,节约了设计成本。

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

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

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

20世纪90年代以后是设计自动化阶段,也是EDA技术发展的高级阶段。这个时期微电子技术以惊人的速度发展,一个芯片上可以集成几千万只晶体管,超高速数字集成电路的工作速率已经达到10Gb/s,射频集成电路的最高工作频率已超过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 a Chip,片上系统)高效低成本设计技术趋向成熟,使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能。(3)在FPGA(Field Programmable Gate Array,现场可编程门阵列)上实现DSP(数字信号处理)应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力地推动了软件无线电技术的实用化。基于FPGA的DSP技术为高速数字信号处理算法提供了实现途径。(4)嵌入式微处理器软核的出现,更大规模的FPGA/CPLD器件的不断推出,使得SOPC(System On a Programmable Chip,可编程片上系统)步入了大规模应用阶段,在一片FPGA芯片中实现一个完备的数字信号处理系统成为可能。(5)在仿真和设计两方面支持标准硬件描述语言的EDA软件不断推出,系统级、行为验证级硬件描述语言的出现(如System C)使得复杂电子系统的设计和验证趋于简单。(6)EDA技术使得电子领域各学科的界限更加模糊、更加相互包容和渗透,如模拟与数字、软件与硬件、系统与器件、ASIC与FPGA、行为与结构等的基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块。

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

一是EDA开发工具将进一步得到完善。EDA开发工具将朝着功能强大、简单易学、使用方便的方向发展,主要体现在EDA工具的PC平台化、灵活多样的设计输入工具、更为有效的仿真工具、更为理想的综合工具等几个方面。

二是EDA技术将促使ASIC和FPGA逐步走向融合。随着系统开发对EDA技术的目标器件各种性能指标要求的提高,ASIC和FPGA将更大程度地相互融合。这是因为,虽然标准逻辑ASIC芯片尺寸小、功能强大、耗电省,但却设计复杂,并且有批量生产要求;可编程逻辑器件的开发费用低廉,能在现场进行编程,但却体积大、功能有限,而且功耗较大。因此,FPGA和ASIC正在走到一起,两者之间正在诞生一种“杂交”产品,互相融合,取长补短,以满足成本和上市速度的要求。目前传统ASIC设计和FPGA之间的界限正变得模糊。系统级芯片不仅集成RAM和微处理器,也集成FPGA。整个EDA和IC设计工业都在朝这个方向发展,这并非是FPGA与ASIC制造商竞争的产物,而对于用户来说,意味着有了更多的选择。

三是EDA技术的应用领域日益广泛。现代电子系统的设计将呈现以下特点:用软件的方式设计硬件,设计过程中可用有关软件进行各种仿真,系统现场可编程和在线升级,整个系统可集成在一个芯片上。这些特点使得EDA技术将广泛应用于科研和新产品的开发工作中。此外,传统机电设备的电气控制系统,如果利用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.“自顶向下”设计方法

近10年来,电子系统的设计方法发生了很大的变化。过去,电子产品设计的基本思路一直是先选用标准通用集成电路芯片,再用这些芯片和其他元器件自下而上地构成电路、子系统和系统。这样设计出的电子系统所用元器件的种类和数量均较多、体积功耗大、可靠性差。随着集成电路技术的不断进步,半导体集成电路也由早期的单元集成、部件电路集成,发展到整机电路集成和系统电路集成。电子系统的设计方法也由过去的集成电路厂家提供通用芯片,整机系统用户采用这些芯片组成电子系统的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.库

EDA工具必须配有丰富的库(Library),包括元器件图形符号库、元器件模型库、工艺参数库、标准单元库、可复用的电路模块库、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专用集成电路、多芯片模块(MCM,Multi-Chip Module)及印制电路系统的设

计中都需要采用各种混合设计方法。图1.4 典型的EDA设计流程1.3.2 EDA设计流程

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

设计输入有多种方式,包括采用硬件描述语言(如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 模拟集成电路的设计

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

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

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

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

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,按制造工艺的不同还可以进一步将其分为MOS型、双极型和BiCMOS型,其中MOS 型ASIC占整个ASIC市场的70%以上,双极型ASIC约占16%,BiCMOS型ASIC约占11%。1.4.2 ASIC的设计方法

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

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

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

1.全定制法

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

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

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

2.门阵列法

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

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

3.标准单元法

标准单元设计法又称库单元法,它是以精心设计好的标准单元库为基础的,设计时可根据需要选择库中的标准单元构成电路,然后调用这些标准单元的版图,并利用自动布局布线软件完成电路到版图一一对应的最终设计。

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

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

4.可编程逻辑器件法

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

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

微电子技术的迅速发展使集成电路设计和工艺技术水平有了很大的提高,单片集成度已经超过上亿个晶体管,从而使得将原先由许多IC芯片组成的电子系统集成在一个硅片上成为可能,构成所谓的片上系统(SoC,System on a Chip)或系统芯片。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描

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载