基于FPGA技术波形发生器.docx

上传人:b****3 文档编号:11775274 上传时间:2023-06-02 格式:DOCX 页数:35 大小:2.15MB
下载 相关 举报
基于FPGA技术波形发生器.docx_第1页
第1页 / 共35页
基于FPGA技术波形发生器.docx_第2页
第2页 / 共35页
基于FPGA技术波形发生器.docx_第3页
第3页 / 共35页
基于FPGA技术波形发生器.docx_第4页
第4页 / 共35页
基于FPGA技术波形发生器.docx_第5页
第5页 / 共35页
基于FPGA技术波形发生器.docx_第6页
第6页 / 共35页
基于FPGA技术波形发生器.docx_第7页
第7页 / 共35页
基于FPGA技术波形发生器.docx_第8页
第8页 / 共35页
基于FPGA技术波形发生器.docx_第9页
第9页 / 共35页
基于FPGA技术波形发生器.docx_第10页
第10页 / 共35页
基于FPGA技术波形发生器.docx_第11页
第11页 / 共35页
基于FPGA技术波形发生器.docx_第12页
第12页 / 共35页
基于FPGA技术波形发生器.docx_第13页
第13页 / 共35页
基于FPGA技术波形发生器.docx_第14页
第14页 / 共35页
基于FPGA技术波形发生器.docx_第15页
第15页 / 共35页
基于FPGA技术波形发生器.docx_第16页
第16页 / 共35页
基于FPGA技术波形发生器.docx_第17页
第17页 / 共35页
基于FPGA技术波形发生器.docx_第18页
第18页 / 共35页
基于FPGA技术波形发生器.docx_第19页
第19页 / 共35页
基于FPGA技术波形发生器.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于FPGA技术波形发生器.docx

《基于FPGA技术波形发生器.docx》由会员分享,可在线阅读,更多相关《基于FPGA技术波形发生器.docx(35页珍藏版)》请在冰点文库上搜索。

基于FPGA技术波形发生器.docx

基于FPGA技术波形发生器

北京联合大学信息学院

《电子系统设计》

——FPGA波形发生器

姓 名:

李冬冬

学 号:

2010080303114

系别:

电子工程系

专业:

电子信息工程

组员:

王健民

 

2013年6月25日

目录

1可编程逻辑器件与开发系统概述2

1.1PLD的基本结构及其分类2

1.2PLD的工作原理3

1.2.1简单PLD3

1.3PLD的开发软件6

1.3.1主要厂商及开发软件6

1.3.2QuartusⅡ开发系统的特点7

2可编程逻辑器件在电子系统设计中应用8

2.1设计任务8

2.2总体设计方案8

2.2.1总体设计框图8

2.2.2设计说明9

2.3硬件电路设计9

2.3.1硬件设计电路9

2.3.2设计说明9

2.4软件设计11

2.4.1方案总体设计思路11

2.4.2总体设计框图12

2.4.3系统组成及工作原理12

2.4.4软件部分系统组成原理图13

2.4.5各底层模块设计(软件部分)13

2.5设计功能验证22

2.5.1波形功能仿真验证22

2.5.2引脚配置说明26

2.5.3硬件实物功能验证27

2.5.4实现指标说明31

3设计总结32

1可编程逻辑器件与开发系统概述

PLD(ProgrammableLogicDevice)是可编程逻辑器件的总称,PLD基本上可完成任何数字器件的功能,从高性能CPU,到简单集成电路,均可以用PLD实现。

通过传统的原理图输入,或时硬件语言的描述可以自由地设计具备某种功能的数字系统。

利用软件仿真功能,可以检验设计的正确性;利用PLD的在线修改能力,可以在在不必改动硬件电路的基础上进行修改设计。

具备设计时间短,PCB面积小,系统的可靠性强等优点。

1.1PLD的基本结构及其分类

1、基本结构

图11基本PLD器件的原理结构图

2、分类

图12可编程逻辑器件的分类(按集成度)

1)PROM(ProgrammableROM)可编程只读存储器,不可编程的“与”阵列和可编程的“或”阵列。

熔丝编程。

2)PLA(FieldProgrammableLogicArray)现场可编程逻辑阵列 “与”阵列、“或”阵列都可编程。

3)PAL(ProgrammableArrayLogic)可编程阵列逻辑,可编程的“与”阵列和不可编程的“或”阵列。

4)GAL(GenericArrayLogic)通用阵列逻辑,可编程的“与”阵列和固定的“或”阵列。

输出有输出宏逻辑单元。

熔丝采用先进的浮栅技术-E2CMOS技术。

5)CPLD(ComplexProgrammableLogicDevices)复杂可编程逻辑器件,结构以逻辑宏单元为基础,宏单元内部有AND—OR积项阵列

6)FPGA(FieldProgrammableGateArray)现场可编程门阵列,掩膜编程门阵列通用结构:

由逻辑功能块排成阵列组成,并由可编程的互连资源连接这些逻辑功能来实现不同设计。

1.2PLD的工作原理

1.2.1简单PLD

1、电路符号表示

图13常用逻辑门符号与现有国标符号的对照

2、可编程只读存储器PROM

PROM中的地址译码器是完成PROM存储阵列的行的选择,其逻辑函数是:

图14PROM逻辑函数1

图15PROM逻辑函数2

可编程只读存储器PROM由不可编程的与阵和可编程的或阵列构成,如图17所示。

图16PROM的逻辑阵列

用PROM实现的1位半加器如图18所示,显然,用PROM可实现任何扩展为最小项之和表达式的组合逻辑函数。

图17用PROM完成半加器逻辑阵列

3、可编程逻辑阵列PLA

PROM的与阵列实质上是全译码器,可产生输入变量的全部最小项,然而在实际应用中,绝大多数的逻辑函数并不需要所有的最小项。

于是诞生了与阵列和或阵列均可编程的可编程逻辑阵列PLA。

PLA的逻辑阵列如图19所示。

图18PLA的逻辑阵列

4、可编程阵列逻辑PAL

对于多个乘积项,PAL允许输出信号再亏送给另一个与阵列。

为了适应不同的需要,生产者在PAL的输出电路中还加入各种触发器、异或逻辑、三态逻辑,使得人们能够用PAL实现对时序电路的可编程。

图19PAL的常用结构

5、通用阵列逻辑GAL

不同型号的PAL有着不同的I/O结构,给生产者、使用者都带来一些不便。

但GAL是一个突破,通过对结构控制字编程可将OLMC设置成不同的工作模式。

由于OLMC单元具有结构重构的功能,在一定程度上简化了电路板的布局布线,因而使系统的可靠性进一步提高。

6、复杂可编程逻辑器件CPLD

CPLD基于EPROM或者Flash工艺,基于乘积项(ProductTerm)结构。

由可编程逻辑单元(LMC)围绕中心的可编程互连矩阵单元组成,具有复杂的I/O单元互连结构,用户课根据需要完成特定的电路设计,使其具有某种特定功能。

目前,CPLD不仅具备电擦除特性,而且具备边缘扫描和在线可编程等高级特性。

7、现场可编程门阵列FPGA

图110FPGA查找表单元内部结构

FPGA通常包含3类可编程资源:

可编程逻辑功能块、可编程I/O块和可编程内部互连。

可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列、散布于整个芯片;可编程I/O快完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列列于芯片四周;可编程内部互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。

图111FPGA查找表单元

图112CycloneLE结构图

CycloneLE主要由一个4输入查找表LUT、进位链逻辑和一个可编程的寄存器构成。

如图112所示。

4输入查找表可以完成所有的4输入1输出的组合逻辑函数。

进位链逻辑可有选择地构成一位加法或减法逻辑。

每个LE中的可编程寄存器可被配置成SR触发器、D触发器、JK触发器和T触发器。

1.3PLD的开发软件

1.3.1主要厂商及开发软件

PLD的设计主要通过硬件描述语言及仿真工具,硬件描述语言(VDL)常用的有VHDL、Verilog、ABEL。

仿真工具目前比较流行的、主流厂家有Altera的MAX-plus2、QuartusⅡ,Lattice的ispEXPERT、Xilinx的FoundationSeries。

下图列出了相关厂商的开发软件。

图113PLD厂商及其开发软件

1.3.2QuartusⅡ开发系统的特点

QuartusⅡ是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。

QuartusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。

在QuartusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。

QuartusⅡ提供了方便的设计输入方式、快速的编译和直接易懂的器件编程。

能够支持逻辑门数在百万门以上的逻辑器件的开发,并且为第三方工具提供了无缝接口。

QuartusⅡ支持的器件有:

StratixⅡ、StratixGX、Stratix、Mercury、MAX3000A、MAX7000B、MAX7000S、MAX7000AE、MAXⅡ、FLEX6000、FLEX10K、FLEX10KA、FLEX10KE、Cyclone、CycloneⅡ、APEXⅡ、APEX20KC、APEX20KE和ACEX1K系列。

QuartusⅡ软件包的编程器是系统的核心,提供功能强大的设计处理,设计者可以添加特定的约束条件来提高芯片的利用率。

在设计流程的每一步,QuartusⅡ软件能够引导设计者将注意力放在设计上,而不是软件的使用上。

同时,自动的错误定位、完备的错误和警告信息,使设计修改变得简单容易。

2可编程逻辑器件在电子系统设计中应用

2.1设计任务

利用FPGA设计一个程控波形发生器,系统时钟为48MHz。

基本要求:

1)具有产生正弦波周期性波形的功能;

2)具有产生方波周期性波形的功能;

3)具有产生三角波或锯齿波周期性波形的功能;

4)具有波形存储功能;

5)输出波形频率范围100Hz~10kHz;

6)输出波形幅度范围为﹣5V~5V。

其他要求:

1)输出波形频率范围100Hz~10kHz,重复频率可调,频率步进间隔≤100Hz;

2)输出波形幅度范围为﹣5V~5V,幅度可调,幅度步进间隔为0.1V。

3)具有选择产生正弦波、方波、三角波或锯齿波周期性波形的功能;

4)具有生成由基波及其谐波(5次以下)线性组合的波形的功能;

5)具有产生ASK、FSK或PSK波形功能。

2.2总体设计方案

2.2.1总体设计框图

图11程控波形发生器总体设计框图

2.2.2设计说明

本设计中采用软硬件结合的方式,其中波形发生模块可以采用FPGA或者单片机来实现,以下的硬件设计电路为使用单片机AT89C51设计的波形发生控制模块,而软件部分则采用FPGA来实现。

其后的D/A转换和放大电路统一由硬件来完成。

2.3硬件电路设计

2.3.1硬件设计电路

1、总体设计电路原理图(以AT89C52设计为例)

图12硬件设计电路

2.3.2设计说明

1、D/A转换模块的设计

D/A转换器负责将ROM输出的数据转换成模拟信号,经滤波电路后输出。

输出波形分频率上限与D/A器件的转换速度由重要关系。

采用的是DAC0832作为A/D转换器件。

DAC0832是8位D/A转换器,转换周期为1μs,其引脚信号可以直接与FPGA目标芯片相接。

图13DA芯片转换电路图以及引脚图

图63为其芯片的引脚图。

各引脚的说明如下:

ILE:

数据锁存允许控制信号输入口线,高电平有效;

WR1、WR2:

写信号1、2,低电平有效;

XFER:

数据传输控制信号,低电平有效;

VREF:

基准电压,可正可负,-10V~+10V;

RFB:

反馈电阻端;

IOUT1/IOUT2:

电流输出端;

AGND/DGND:

模拟地与数字地。

在高速情况下,此二GND地的连接线必须尽可能短,且系统的单点接地点须接在此连续的某一点上。

程序中的正弦波等的波形数据由64个点构成,此数据经DAC0832,并经过滤波器后,得到光滑的正弦波。

D/A转换量是以电流形式输出的,所以必须将其变为电压信号才能送入放大电路。

2、放大电路模块的设计

图14LM324放大电路图

放大电路可考虑采用LM324放大芯片,而且参数计算容易,对系统要求不高。

因此在本设计中,利用该LM324放大电路图就可以达到要求。

2.4软件设计

2.4.1方案总体设计思路

利用FPGA来完成设计。

FPGA编程灵活,可以实现三角波和正弦波的数字化处理,将一个周期内的采样点存储起来,生成频率和幅值都可调的正弦波、三角波、方波及锯齿波,再通过D/A转换和滤波电路便可得到模拟波形。

利用该方法,编程简单,实现灵活。

2.4.2总体设计框图

图15总体设计框图

2.4.3系统组成及工作原理

完整的系统由4个部分组成:

输入控制电路,波形发生控制电路,D/A转换器和滤波电路。

波形发生控制电路由FPGA来完成,正弦波在一个周期内的波形可以通过数字采样,即用64个幅值离散的等间隔采样点表示。

FPGA波形发生控制电路通过外来控制信号和高速时钟信号,向波形数据ROM发出地址信号。

波形ROM中存有发生器的波形数据,如正弦波数据。

当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。

取出采样点的幅值,这样就可以产生数字化的波形。

采样点越多,那么得到的波形就越光滑,但是相应的存储器的容量就需要得越大,因此,需要正确的选择采样点数,本设计采用64个点,以满足波形光滑度和存储器容量适中的双重要求。

图65为其系统工作原理框图。

D/A转换器负责将ROM输出的数据转换为模拟信号,经滤波电路后输出。

输出波形的上限频率和D/A器件的转换速度有重要关系,采用的是DAC0832作为A/D转换器件。

2.4.4软件部分系统组成原理图

图16软件部分系统组成原理图

2.4.5各底层模块设计(软件部分)

1、输入模块设计

1、模块功能介绍

输入模块采用普通的按键输入,即通过按键选择输出波形的种类,同时也通过键盘输入来改变波形的频率。

由于手动操作按键刚按下或刚抬起时常引起按键自带的机械簧片反弹,引发按键状态的高频抖动,致使产生许多杂乱的高频脉冲,这种信号的不稳定现象势必给系统电路带来假象。

为此,需要在按键与系统间引入防抖动环节,用于鉴别状态信号的真伪。

同时,为了辅助频率选择器和变频器(调整步长部分),设计中还加入了按键扫描设计,用于按键信号的统一管理,便于按键信号规律性变化(如由00递增)的逻辑输出。

2、按键防抖设计

本设计采用单脉冲发生电路的防抖动设计。

(1)防抖模块符号及原理电路

图17防抖模块符号

图18防抖模块原理电路

由图17及图18可知,输入引脚KEY外接按键,而CLK外接系统时钟信号。

此电路为同步电路,要求时钟速率高于手动速率。

3、按键扫描与选择信号输出设计

(1)按键扫描与选择信号输出符号、相关说明及实现代码

图19按键扫描与选择信号输出符号

图110按键扫描与选择信号输出实现代码

此处输入引脚的信号为按键防抖后的信号,当键按下,输出端信号逻辑加一。

4、模块流程图

图111输入模块流程图

本设计中关于逻辑值计满的状态未设返回状态,因其sel[4..0]端,只有两位,计数满后溢出,低两位又从00000开始变化,故不影响逻辑信号的输出,满足设计要求。

2、波形发生控制模块

1、模块功能介绍

由于频率控制、波形选择和波形发生三个进程都是利用硬件描述语言VHDL编程实现的,所以统称为波形发生控制模块。

本模块是本设计的核心,主要功能是完成频率控制(包括分频和变频)、波形选择、以及波形发生等功能。

2、频率控制器

频率控制器包括分频和变频两部分,其中分频主要完成分频以满足各模块频率的要求,同时它也作为变频器粗调必不可少的一部分;变频分粗调和微调两种模式,能满足不同的波形频率发生要求。

本设计的变频范围维持在100Hz~7KHz。

(2)分频器模块符号、相关说明及实现代码

说明:

本设计中共包含3个分频器,均能完成系统时钟向波形输入前端频率的转换,而其中通过频率选择器选择其中2个分频器还能完成变频(粗调)的功能,此处只对普通的分频功能进行说明,有关频率选择器及变频器的说明,请见下一分文的叙述。

图112分频器符号

图113实现分频器模块的程序代码

由图112及图113。

可以看出系统时钟经clk进入分频器,经8位的分频后得到满足要求的频率范围。

本设计要求输出频率在100Hz~10KHz范围,即要求进入波形发生器前段的频率为6.4KHz~640KHz,而系统的时钟频率为48MHz,故分频器的输出频率选取要合适,又考虑到变频的需要,故本设计中3个分频器的频率位数等具体设置不尽相同。

(3)频率选择器模块符号、相关说明、及实现代码

图114分频选择器符号

此频率选择器实为分频器选择器,用于选通不同的分频器。

频率选择器的输入引脚I1、I2分别对应两个分频器,用于分频器的选择。

SEL端是选通控制信号端,例如,初始状态此端接受到的信号为00,则默认选通I1端,当按键按下,计数加一变为01,选通状态发生改变,改选I2端,则输出I2端的分频器的输出频率。

这样,频率选择器就可以配合分频器完成变频(粗调)功能。

图115频率选择器模块实现代码

(4)变频器(细调)模块符号、相关说明及实现代码

说明:

具有细调频率功能的变频器共有4个,它们是建立在一定的分频功能基础之上的,即这4个变频器功能具有不同的分频比,却具有相同的细调步长。

分频功能已在上述文中指出,此处不再具体说明,此处只列举4个具有细调频率功能的变频器之一进行说明,其余的实现方法相同,这里不再一一列举。

图116变频器(细调)模块符号

由图616可以看出变频器(细调)的模块符号较基本功能的分频器多了一个选择端,这是为选择不同频率步长而设置的,通过程序(如图617和图618)的调整,可以达到不同的效果。

变频器(细调)实际上是一个具有选择不同频率步长的选择器,通过选择信号的变化输出不同的频率。

图117变频器(细调)模块实现程序代码之一

图118变频器(细调)模块实现程序代码之二

3、波形选择器

(5)波形选择器模块符号、相关说明及实现代码

波形选择器的作用是利用FPGA选择产生各种波形,然后再配合波形发生器发出地址信号,取ROM中存好波形的采样数据,最终完成波形的输出。

图119波形选择器符号

图120波形选择器实现代码

波形选择器与频率选择器类似,由5个输入引脚和一个输出引脚组成。

其中输入引脚中包含1个选通引脚和4个波形输入引脚。

由于波形的输出是8位的,因此每个波形输入引脚均由8位线组成。

SEL端是选通控制信号端,例如,初始状态此端接受到的信号为00,则默认选通I1端(假设为正弦波),当按键按下,计数加一变为01,选通状态发生改变,改选I2端(假设为方波),则输出I2端的方波。

这样,频率选择器就可以完成选择波形输出的功能。

4、波形发生器

(6)正弦信号发生器的ROM数据

图121正弦信号发生器的ROM数据

在此模块生成前,应事先将正弦波采样数据存入mif文件中,并调用LPM_ROM元件,将数据存入ROM中。

ROM数据存储模块主要是用来存储各种波形的数据。

当接收来自FPGA的地址信号后,将从数据线输出相应的波形数据,这样便得到数字化的波形。

由于所选的D/A转换器一次只能转化8位二进制码,而且模拟波的电压幅度由幅度比例系数决定[Vo=(Vr/

)*K],所以限定了波形的幅值比例系数为0-255。

类似对波形采样点数目越多,波形的精准度越高,但随着采样点数的增加,需要的ROM数量也会增加,会消耗系统更多资源,实验证明,只要在一个周期内的取样点数超过32个就可实现较准确的正弦波形。

在本系统中,取采样点数为64个。

每个采样点都对应了该点的幅值比例系数。

每个ROM单元对应一个地址值,FPGA只要向ROM存储器输入相应的地址值就可以确定其幅值。

(7)正弦信号发生器模块符号、相关说明及实现代码

图122正弦波发生器符号

正弦波发生器的输入引脚接已经分频完毕的时钟信号,输出引脚接D/A转换器。

图123正弦波发生器实现代码

(8)三角波、方波、锯齿波的ROM数据

由于三角波、方波、锯齿波的模块实现方法和模块符号与正弦波的类似,故此处不一一列举,只列出三角波、方波、锯齿波的ROM数据,用于比较。

具体的实现方法见下文中的仿真。

图124三角波的ROM数据

图125方波的ROM数据

图126锯齿波的ROM数据

5、模块流程图

图127波形发生控制器流程图

在此模块中,频选器和变频器均可以调整波形的频率,但频选器的调整幅度大,变频器调整的幅度小。

前级输入包括上一级按键的逻辑输出和时钟信号。

2.5设计功能验证

2.5.1波形功能仿真验证

由于四种波形的设计类似,故此处只列举正弦波的波形功能仿真验证,其它的类似。

1、将block1.bdf设成顶层文件。

图128设顶层文件

2、编译。

图129编译block1.bdf

3、建立波形文件,并给引脚加入信号,保存。

图130波形文件的保存

4、产生功能仿真网表

图631产生功能网表

5、进行功能仿真,并查看报告。

图132功能仿真

6、波形仿真报告如下图所示。

图133最终输出波形数据验证

图134最终输出波形数据验证(放大部分)

2.5.2引脚配置说明

图135实验箱部分引脚接口

图136引脚配置

2.5.3硬件实物功能验证

1、各种波形展示

1、正弦波

图137正弦波

2、方波

图138方波

3、三角波

图139三角波

4、锯齿波

图140锯齿波

2、调频展示

1、正常锯齿波

图141正常锯齿波

2、微调锯齿波

图142微调锯齿波

3、

粗调锯齿波

图143粗调锯齿波

3、失真严重的波

图144失真严重的波

2.5.4实现指标说明

本设计实现的指标主要有以下几项

1)具有产生正弦波周期性波形的功能;

2)具有产生方波周期性波形的功能;

3)具有产生三角波或锯齿波周期性波形的功能;

4)具有波形存储功能;

5)输出波形频率范围100Hz~10kHz;

6)输出波形幅度范围为﹣5V~5V。

提高部分:

1)输出波形频率范围100Hz~10kHz,重复频率可调,频率步进间隔≤100Hz,频率可调范围为100Hz~7KHz

2)输出波形幅度范围为﹣5V~5V,幅度可调,幅度步进间隔为0.1V。

3)具有选择产生正弦波、方波、三角波或锯齿波周期性波形的功能;

3设计总结

本次实验我完成了利用FPGA设计程控波形发生器系统。

对于波形发生器,其设计思想并不是太难,用VHDL语言来编写也很简单,可是我在刚入手的时候还是遇到了不小的困难。

记得做波形发生器的的第一天,老师让同学们叙说自己的方案,结果同学们都通过了,我们组还是没有,因为当时在老师面前我真的什么都说不出来,其实确实是自己准备不充分,我不喜欢不懂得时候瞎做,我会专注的先搞懂,后来再找老师时,老师就直接让做了,很感谢老师的信任。

以后的几天都在做每个模块,可是最后系统连接好后总是出不来波形,测了老半天,最后在老师的帮助下我终于还是发现了管脚连接有错误,耽误了大概两个小时,最后波形总算是完美的出来了。

同时也可以看出,利用FPGA来完成波形发生器的设计,使其产生频率可调的正弦波、方波、锯齿波和三角波的方法行之有效。

利用VHDL硬件描述语言完成程序的设计,并且下载到核心板上调试通过,在示波器上得到的波形和期望值一致。

如果修改一下程序还可以得到其他的任意波形,简单易行,利于控制。

采用上述方法设计的多波形发生器,通过系统编程实现,用硬件描述语言以及图形输入完成了整个功能模块的全部设计工作,尽可能的减少了硬件开销。

根据实际需要,可产生四种周期性波形,该任意波形发生器利用可仿真任意波形原理,只要数字示波器或其它记录仪捕捉到的波形,任意发生器都可复制出。

实验结束我实现了实验要求功能,并且做出了拓展创新,在此次实验中也提升了我对于程序调试以及问题查找和自我创新等方面的学习技能。

在今后的学习和生活中,我会继续发扬谨慎认真的作风,不放过任何细节,刻苦钻研,争取在真正掌握设计语言的基础上,设计出更复杂有用的系统。

李冬冬

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2