书签 分享 收藏 举报 版权申诉 / 44
上传文档赚钱

类型电子线路(第六版)-第10章-半导体存储器与可编程逻辑器件简介课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3528434
  • 上传时间:2022-09-12
  • 格式:PPTX
  • 页数:44
  • 大小:1.09MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《电子线路(第六版)-第10章-半导体存储器与可编程逻辑器件简介课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    电子线路 第六 10 半导体 存储器 可编程 逻辑 器件 简介 课件
    资源描述:

    1、第第10章章 半导体存储器与可编程半导体存储器与可编程逻辑器件简介逻辑器件简介10.1 只读存储器10.1.1 固定只读存储器(ROM)ROM 的基本的基本结构结构 由存储矩阵、地址译码器和输出缓冲器三部分组成。存储单元:用二极管、双极型晶体管或者MOS管构成;地址译码器:将输入的地址代码译成相应的控制信号;输出缓冲器:提高负载能力;输出三态控制;输出标准逻辑电平。ROM的工作的工作原理原理(2位地址、4位输出的ROM电路为例)地址地址数据数据A1A0D3D2D1D0000101011011100100111111A0A1:地址码W0W3:字线D0D3:位线(数据线)例:当W0=1、W1W3=

    2、0时,位线D0、D2为高电平,而D1、D3为低电平,在输出端可得到D0D3=0101。4个三态门构成输出端缓冲器10.1.2 可编程ROM固定ROM存储数据无法更改,而可编程ROM设计人员可以根据需要重新写入数据。存储矩阵可以采用带金属熔丝的二极管、叠栅输入MOS管(Stacked-gate Injection MOS,SIMOS管)、Flotox MOS管(Floating-gate Tuned Oxide MOS,Flotox MOS管)和快闪(Flash)叠栅MOS管等,制成各种可编程ROM。PROM一次可编程存储器,存储阵列由带金属熔丝的二极管构成。PROM只能改写一次。EPROM光可

    3、擦除可编程存储器,存储矩阵由SIMOS管构成。外壳装有透明的石英盖板,用紫外线或X射线照射1520分钟,便可擦除其全部内容。E2PROM电可擦除可编程存储器,由Flotox MOS管构成。既具ROM的非易失性,又具有写入功能。电擦除过程(在线擦除,即不需要将芯片从电路系统中取出,可重复擦写1万次以上),改写以字节为单位进行。与EPROM相比,E2PROM的存储单元电路复杂,所以集成度低。10.2 随机存储器(RAM)10.2.1 静态存储器(SRAM)SRAM 的结构的结构由存储矩阵、地址译码器和读写控制电路(也称输入输出电路)三部分组成。当读写控制信号 R/W=1时,执行读操作;当R/W=0

    4、时,执行写操作。设有片选输入端 CS。当CS =0时RAM为正常工作状态;当CS =1时输入输出端均为高阻态。SRAM 的的存储单元存储单元由锁存器构成,靠锁存器的自保功能存储数据。虚线框中为六管SRAM存储单元;Xi为行译码器的输出,Yj为列译码器的输出,T5、T6为本单元控制门。T7、T8为一列存储单元公用的控制门。读/写操作条件:行、列选择线均须呈高电平。数据由锁存器记忆,只要不断电,数据就能永久保存。10.2.2 动态存储器(DRAM)DRAM存储单元及读存储单元及读/写操作写操作原理原理由一个MOS管和一个容量较小的电容器构成,结构简单。利用电容器的电荷存储效应来存储数据,C充有电荷

    5、、呈现高电压,存有1值,反之为0值。T1为开关,行选线为高时,T1导通,C与位线连通,反之则断开。必须定期给电容补充电荷,以免存储数据丢失,这种操作称为刷新或再生。10.2.3 存储容量的扩展 位位扩展扩展由利用芯片的并联方式实现位扩展。RAM的地址线、读写控制线和片选信号并联在一起,各个芯片的数据输入/输出端作为字的各个位线。4个4K4位RAM芯片扩展成4K16位的存储系统。字字扩展扩展通过外加译码器控制存储芯片的片选信号来实现。4个8K8位的RAM芯片扩展为32K8位的存储器系统。地址线A14、A13与译码器的输入相连,译码器的输出Y0Y3分别接至4片RAM的片选信号控制端CE。输入一个地

    6、址码(A14A0)时,只有一片RAM被选中,从而实现了字扩展。10.3 可编程逻辑器件的分类和逻辑表示方法10.3.1 概述l 通过使用PLD,可将复杂的逻辑集成在一块芯片上;l 通过使用可擦写PLD,能够很容易的修改逻辑电路;l 借助程序进行辅助设计,使得电路开发时间更短。CPLD:Complex Programable Logid Device FPGA:Field Programable Gate Array PROM:Programable Read-Only Memory PAL:Programable Array Logic PLA:Programable Logic Array

    7、GAL:General Array Logic10.3.2 可编程逻辑器件的逻辑表示方式两交叉线处的“”表示“接通”,在熔丝工艺PLD中表示熔丝未被熔断,在CMOS工艺PLD中表示一个基本单元(一对MOS管)处于导通状态。两交叉处的圆点表示硬线连接,不可编程。两交叉线处无符号,表示“断开”,对于熔丝被烧断或一个基本开关单元处于截止状态。10.4 简单可编程逻辑器件简单的可编程逻辑器件(Simple PLD,SPLD)的基本结构为与-或阵列。PROM:与阵列结构固定不变、或阵列可编程;PLA:与阵列、或阵列均可编程的;PAL、GAL:与阵列可编程、或阵列固定。PLA从结构上分为掩模式PLA(MP

    8、LA)和现场编程式PLA(FPLA)。FPLA又分为两种。u 结破坏式FPLA:与阵列的行线和列线交叉处集成1个基极开放的晶体管,处于非导通状态,编程时在交叉点处加上高电压,由于雪崩迁移,基极开放晶体管变成了1个导通二极管。u 熔丝式FPLA:行线和列线交叉处有实体熔丝,用熔断熔丝的方式进行编程。10.4.2 可编程阵列逻辑(PAL)与门阵列可编程,或门阵列固定由于大多数逻辑函数可简化为与-或表达式,PAL对于大多数逻辑函数来说是有效的。PAL在与门、或门的基础上,增加了多种输出及反馈电路,便构成了各种型号的PAL器件,其结构也分为专用输出结构、异步I/O输出结构、寄存器输出结构、算术选通反馈

    9、结构等。PAL器件也是通过烧断熔丝达到编程的。10.4.3 通用阵列逻辑器件(GAL)结构上继承了PAL器件的“与-或结构”,形成了一种新型的“输出逻辑宏单元”结构形式。工艺上开拓了能长期保持数据的E2MOS技术,使GAL器件具有可擦除、可重新编程、可重新组合结构的特点,而且在数秒内即可完成芯片的擦除和编程过程。OLMC中包括了或门阵列和可编程的输出逻辑,后者可以选择数据输出的方向。OLMC中含有触发器,既可用作组合型逻辑,又可用作寄存器型逻辑。GAL16V8:一个3264位的可编程与逻辑阵列;8个OLMC;10个输入缓冲器;8个三态输出缓冲器;8个反馈、输入缓冲器。OLMC结构图10.5复杂

    10、可编程逻辑器件和现场可编程门阵列10.5.1 复杂可编程逻辑器件(CPLD)由可编程逻辑块、输入/输出块和可编程内部互连线资源三部分组成。逻辑阵列块(Logic Array Block,LAB)是由许多PAL/GAL阵列组成的SPLD;逻辑阵列块间通过使用可编程互连阵列(Programmable Interconnect Array,PLA)相互连接。每个LAB(逻辑阵列块)中,可包含许多个宏单元;宏单元包括可编程的与门阵列,乘积项选择矩阵或门以及一个可编程的寄存器部件。10.5.2 现场可编程门阵列(FPGA)FPGA由独立的逻辑模块组成,每个逻辑模块均可编程,构成较小规模的组合和时序电路;

    11、模块间的相互连接也可编程,并由此构成较大规模的数字系统。FPGA采用静态随机存储器保存编程数据,一旦断电系统编程数据将丢失,故每次上电正常工作前都重新装载编程数据,并需要配备相应的EPROM保存编程数据。FPGA实现逻辑函数的实现逻辑函数的基本原理基本原理查找表(Look-Up Table,LUT)是FPGA实现逻辑函数的基本逻辑单元一个两输入LUT,有两个输入端(A、B)和一个输出端(L),它能够实现两变量的任意组合逻辑函数。BAL000011101110当变量数超过了一个LUT的输入数时,可将多个LUT级联以满足更多变量数的要求。例如由4个LUT和若干个二选一数据选择器实现6变量任意逻辑函

    12、数,该电路实际上将4个161位的LUT扩展成为641位的LUT。F、E相当于6位地址的最高2位。高位地址高位地址F高位地址高位地址E输出输出Z00选通LUT(I)01选通LUT(II)10选通LUT(III)11选通LUT(IV)FPGA的结构的结构FPGA至少包含三种基本资源:可编程逻辑块、可编程连线资源和可编程I/O模块。u FPGA中的逻辑块排列成二维阵列;u 连线资源包括纵向和横向连线 以及可编程开关(互连开关);u I/O块是芯片外部引脚数据与 外部数据进行数据交换的接口 电路。u 此之,现在的FPGA还包含嵌入 式块RAM、底层嵌入功能单元 和内嵌专用硬核模块。1)可编程可编程逻辑

    13、逻辑块块除了包含LUT外,还附加了触发器和一些可编程选择器和必要的逻辑门。其作用类似于GAL或CPLD中的宏单元。当逻辑电路规模较大时,可以级联扩展多个逻辑块来实现。2)I/O块块每个I/O单元对应一个封装引脚,通过对I/O单元编程,可将引脚分别定义为输入、输出和双向功能。为增强灵活性,通常将I/O单元进行分组,每组共用一个V_cco和V_REF,不同组可以接不同的V_cco和V_REF。3)可编程可编程连线资源连线资源处于和逻辑块相邻开关用来连接逻辑块和相邻逻辑块之间、逻辑块和连线之间的连接;处在逻辑块对角线位置上的开关则用于实现内部各连线之间的连接;与I/O块相邻的开关可实现I/O块和逻辑

    14、块、I/O块和内部连线之间的连接。纵横交叉互连开关通过编程,可以决定纵、横连线是否连通;路互连开关通过编程,可以 互联上、下、左、右任意方向,非常灵活。4)嵌入式块嵌入式块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。除了块RAM,还可将FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。5)底层内嵌功能单元底层内嵌功能单元主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核(Soft Core)。内嵌功能单元,使得单片FPGA成为系统级设计工具,具备了软硬件联合设

    15、计的能力,逐步向SOC平台过渡。6)内嵌专用硬核内嵌专用硬核硬核(Hard Core)等效于ASIC电路。为提高速度,主流的FPGA中都集成了专用乘法器;为适用通信总线与接口标准,很多高端FPGA都集成了串并收发器(SERDES),可达到数十Gbps的收发速度。目前在很多高性能FPGA产品中,已经集成了数字信号处理器、甚至CPU等非常复杂的模块,使FPGA在数字系统中几乎无所不能。10.6 硬件描述语言简介硬件描述语言(hardware description language,HDL)是一种形式化方法来描述数字电路和系统的语言。通过对电路结构或功能行为的描述,可在不同的抽象层次对电路进行逐层

    16、描述,用一系列分层次的模块来表示极其复杂的数字电路系统。硬件描述语言的发展至今已有30余年的历史,已成功地应用于电子电路设计的各个阶段:建模、仿真、验证和综合等。自20世纪80年代以来,出现了由各个公司自行开发和使用的多种硬件描述语言。最终,VHDL和Verilog HDL语言适应了发展的要求,先后成为IEEE标准。随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。为适应新的情况,硬件描述语言也在迅速发展,不断出现新的硬件描述语言,如Superlog、System C、Cynlib C+。10.6.1 Ve

    17、rilgo HDL简介 Verilog HDL是硬件描述语言的一种,源于C和Hilo,可进行多种级别(系统级、RTL级,门级)描述逻辑设计,进行数字逻辑系统的仿真验证、时序分析和逻辑说明(解释)。是目前应用最广泛的一种硬件描述语言。198384年 Gateway Automation 公司发布“Verilog HDL”及其仿真器Verilog-XL;1986年 Phil Moorby提出快速门级仿真的XL算法并获得成功,Verilog语言迅速得到推广;1987年 Synonsys公司开始使用Verilog行为语言作为它综合工具的输入;1990年 成立Open Verilog Internati

    18、onal(OVI)组织,负责Verilog的发展和标准的制定;1995年 IEEE制定关于Verilog HDL标,Verilog HDL,IEEE13641995;2001年发布了Verilog HDL1364-2001标准;2005年System Verilog IEEE 1800-2005标准公布,更使得Verilog 语言在综合、仿真验证和模块的重用等方面都有大幅度的提高。Verilog HDL的模块结构的模块结构Verilog HDL语言采用模块化的结构,以模块集合的形式来描述数字电路系统。模块(module)是Verilog HDL语言的基本设计单元,对应硬件上的逻辑实体,描述这个

    19、实体的功能或结构,以及它与其他模块的接口。模块的基本语法结构如下:module ()Endmodule根据和描述方法的不同,可将模块分为行为描述模块、结构描述模块或二者的结合。行为描述模块通过编程语言定义模块的状态和功能。结构描述模块将电路表达为具有层次概念的互相连接的子模块,其最底层的元件必须是Verilog HDL支持的基元或已定义过的模块。Verilog HDL的的基本语法规则基本语法规则Verilog HDL 中总共有19种数据类型,分为常量和变量两种。常量常量1.数字数字(1)整数。在Verilog HDL中,整数有4种进制表示形式:二进制(b或B)、十进制(d或D)、十六进制(h或

    20、H)以及八进制(o或O)。基于此,有以下3种整数表达方式:1),这是一种全面的描述方式。2),这种描述方式中位宽采用默认位宽。3),默认是十进制。例如:8b10101010 /位宽为8的二进制数8ha1 /位宽为8的十六进制数(2)x和z值。在数字电路中,x代表不定值,z代表高阻值。一个x可以用来定义十六进制数的4位二进制数的状态,八进制数的3位,二进制数的1位。z的表示方式通x类似,还可以写作“?”。4b10 x0 /位宽为4的二进制数从低位数起第2位为不定值4b101z/位宽为4的二进制数从低位数起第1位为高阻态8dz/位宽为8的十进制数,其值为高阻态8h3x /位宽为8的16进制数,其低

    21、4位为不定值(3)负数。只需在位宽表达式前加一个减号,就可以表示一个数的负数,减号必须在数字表达式的最前面。-8d5 /代表5的补数8d-5/非法格式2.参数型(参数型(parameter)在Verilog HDL中用parameter 来定义常量,即用parameter来定义一个标识符代表一个常量。parameter型数据是一种常数型的数据,其说明格式如下:parameter 参数名 1=表达式,参数名 2=表达式,参数名 n=表达式;parameter 是参数型数据的确认符,确认符后跟着一个用逗号分隔开的赋值语句,每个赋值语句的右边必须是一个常数表达式。例如:parameter a=10,

    22、b=23;/定义两个参数parameter e=5,f=e-1;/用常数表达式赋值变量变量在Verilog HDL中变量的数据类型有很多种,这里介绍wire型和reg型。wire型型wire型数据常用来表示用以assign关键字指定的组合逻辑信号。Verilog 程序模块中输入、输出信号类型默认时自动定义为wire型。wire型信号可用作任何方程式的输入,也可用作“assign”语句或实例元件的输出。wire型的信号格式如下:wiren-1:0 数据名1,数据名2,数据名n;或wiren:1 数据名1,数据名2,数据名n。例如:wire a;/定义了一个1位的wire数据wire 7:0 b;

    23、/定义了一个8位的wire数据wire 8:1 e,f;/定义了两个8位的wire数据reg型型寄存器是数据存储单元的抽象,寄存器数据的关键字是reg。通过赋值语句可以改变寄存器的存储值。reg型数据的格式如下:reg n-1:0 数据名1,数据名2,数据名n;或 reg n:1 数据名1,数据名2,数据名n;例如:reg a;/定义一个1位的reg型数据reg 3:0 b;/定义一个4位的reg型数据reg 8:1 c,e;/定义两个8位的reg型数据reg型数据可以扩展地址范围来生成memory型数据,其格式如下:reg n-1:0 存储器名m-1:0;或reg n:1 存储器名m:1;这

    24、里reg n-1:0定义了存储器中每一个存储单元的大小,即该存储单元是一个n位的寄存器;存储器名m-1:0或m:1则定义了该存储器中有多少个这样的寄存器。例如定义一个2568位的存储器:reg7:0 mema255:0;Verilog HDL运算符运算符运算符按功能可分为以下几类:算数运算符(+,-,/,%);赋值运算符(=,=,=);逻辑运算符(&,|,!);条件运算符(?:);位运算符(,|,&,);移位运算符();拼接运算符();其他;运算符运算符优先级优先级!最高优先级别*/%+-=!=!=&|&|?:最低优先级别标识符标识符模块、寄存器、端口、连线、示例和begin-end块等元素的

    25、名称。通常由英文字母、数字、$符和下划线组成,并且规定标识符必须以英文字母或下划线开始,不能以数字或$符开头。标识符有大小写之分。关键词关键词Verilog HDL语言内部的专用词。在IEEE标准Verilog HDL 1364-1995中规定了102个关键词,全部采用小写形式。关键词作为语言本身的保留字,用户不能再对它们做新的定义,也不能做标识符使用。always,and,assign,begin,buf,bufif0,bufif1,case,casex,casez,cmos,deassign,default,default,defparam,disable,edge,else,end,en

    26、dcase,endmodule,endfunction,endprimitive,endspecify,endtable,endtask,event,for,force,forever,fork,function,highz0,highz1,if,initial,inout,input,integer,join,large,macromodule,medium,module,nand,negedge,nmos,nor,not,notif0,notifl,or,output,parameter,pmos,posedge,primitive,pull0,pull1,pullup,pulldown,

    27、rcmos,reg,releses,repeat,mmos,rpmos,rtran,rtranif0,rtranif1,scalared,small,specify,specparam,strength,strong0,strong1,supply0,supply1,table,task,time,tran,tranif0,tranif1,tri,tri0,tri1,triand,trior,trireg,vectored,wait,wand,weak0,weak1,while,wire,wor,xnor,xor10.6.2 Verilog HDL 模块的两种描述方式一、行为描述方式一、行为描

    28、述方式其他软件编程语言的描述方式类似,通过行为语句来描述电路要实现的功能,表示输入和输出间转换的行为,不涉及具体结构。从这个层面上来讲,行为建模是一种高级的描述方式。用Verilog HDL来描述一位全加器:module add(A,B,CI,Sum,Cout);input A,B,CI;output Sum,Cou;assign Cout,Sum=A+B+CI;endmodule二、结构描述方式二、结构描述方式将硬件电路描述成一个分级子模块相互连的结构。通过对组成电路的各个子模块间互连接关系的描述,来说明电路的组成。各个模块还可以对其他模块进行调用,也就是模块的实例化。从结构上而言,任何硬件

    29、电路都是由一级级的不同层次的若干单元组成,因此结构描述方式很适合对电路的这种层次化结构的描述。在Verilog HDL中有26个内置的基本单元,又称基元,可直接调用。基元类型基元类型基元基元多输入门多输入门and,nand,or,nor,xor,xnor多输出门多输出门buf,not三态门三态门bufif0,bufif1,notif0,notif1上拉、下拉电阻上拉、下拉电阻pullup,pulldownMOS开关开关cmos,nmos,pmos,rcmos,rnmos,rpmos双向开关双向开关tran,tranif0,tranif1,rtran,rtranif0,rtranif1仍以1位全

    30、加器为例,采用结构描述方式写成的程序模块。module add(A,B,CI,Sum,Cout);input A,B,CI;output Sum,Count;wire Sum_temp,C_1,C_2,C_3;xor XOR1(Sum_temp,A,B),XOR2(Sum,Sum_temp,CI);andAND1(C_1,A,B),AND2(C_2,A,CI),AND3(C_3,B,CI);or OR1(Cout,C_1,C_2,C_3);endmodule 小结u半导体存储器是现代数字系统的重要组成部分,分为只读存储器(ROM)和随机存储器(RAM)两大类。uROM只能从中读取数据,不能快速

    31、地修改和重新写入数据,断电后不会丢失数据,适合于储存固定数据。ROM中又可以细分为固定ROM、PROM、EPROM、E2PROM。uRAM可以随时快速的写入和读出数据,断电后数据会消失。RAM有SRAM和DRAM两种类型,SRAM通过锁存器来记忆数据,而DRAM靠MOS管栅极电容存储数据。u对存储容量进行扩展有字扩展和位扩展两种方式。存储系统的字长不够时需要进行字扩展,而位宽不够时需要继续位扩展。在存储容量的扩展中通常将两种方式结合使用。u可编程逻辑器件(PLD)是一种可以由用户进行编程的大规模集成电路,主要可分为三种类型:简单可编程逻辑器件(SPLD)、复杂可编程逻辑器件(CPLD)和现场可

    32、编程门阵列(FPGA)。uSPLD器件包含PROM、PLA、PAL、GAL,均采用与-或阵列的基本结构形式。uCPLD是在PAL的基础上发展起来的复杂可编程逻辑器件,其电路的核心是与-或阵列,由可编程的逻辑块、输入/输出块和可编程的内部互连线资源三部分组成。uFPGA由独立的逻辑模块组成,每个逻辑模块都可编程,构成较小规模的组合和时序电路。FPGA基于查找表LUT来实现逻辑函数。uFPGA由可编程逻辑块、可编程连线资源、可编程I/O模块、嵌入式块RAM、底层嵌入功能单元和内嵌专用硬核模块等组成。FPGA是目前规模最大、密度最高的可编程逻辑器件。u硬件描述语言(HDL)是一种形式化方法来描述数字电路和系统的语言。VHDL和Verilog HDL是目前两种最常见的硬件描述语言。uVerilog HDL语言采用模块化的结构,以模块集合的形式来描述数字电路系统。Verilog HDL有两种模块的描述形式,一是行为描述方式,再是结构描述方式。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:电子线路(第六版)-第10章-半导体存储器与可编程逻辑器件简介课件.pptx
    链接地址:https://www.163wenku.com/p-3528434.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库