基于Quartus2的乐曲演奏电路设计_第1页
基于Quartus2的乐曲演奏电路设计_第2页
基于Quartus2的乐曲演奏电路设计_第3页
基于Quartus2的乐曲演奏电路设计_第4页
基于Quartus2的乐曲演奏电路设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目目 录录1.1.引言引言 .1 12.2.系统设计总述系统设计总述 .2 22.1 系统设计要求.22.2 系统设计原理.22.3 系统结构.33.3.单元模块设计单元模块设计 .6 63.1 音符数据地址发生器模块 cnt138t.63.2 分频预置查表电路模块 f_code .83.3 数控分频器模块 spker.103.4 音符数据模块 rom music.124 4结语结语 .1414基于 quartus ii 的乐曲演奏电路设计1基于 quartus ii 的乐曲演奏电路设计学生姓名:李秉臻 指导老师:窦海鹏内容提要:随着电子设计自动化和可编程逻辑器件的出现和飞速发展,在设计周期得

2、到大大缩减的同时系统成本也有了大幅度降低,显然标准逻辑器件的组装已远不能满足这方面的要求。而 verilog hdl 能提供高阶电路描述语言的方式,让复杂的的电路可以通过 verilog hdl 编辑器的电路合成方式,轻松而且快速的达到设计的规格。本次设计在 eda 开发平台 quartus ii8.0 上利用 verilog hdl 语言设计数控分频器电路,利用数控分频的原理设计音乐硬件演奏电路,并定制 rom 存储音乐数据,以梁祝乐曲为例,将音乐数据存储到开发板 rom 中,就达到了以纯硬件的手段来实现乐曲的演奏效果。关键词:eda 硬件乐曲演奏 dhl 语言 quartus ii8.01

3、.引言引言eda 是 electronic design automation(电子设计自动化)的缩写。eda 技术1就是依靠功能强大的电子计算机,在 eda 工具软件平台上,对以硬件描述语言 hdl(hardware description language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件 cpld/fpga 或专用集成电路 asic 芯片中,实现既定的电子电路设计功能。eda 技术伴随着计算机、集成电路和电子系统设计的发展,经历了计算机辅助设计(computer assist design,cad)、计算机辅助工

4、程设计(computer assist engineering design,caed)和电子设计自动化(electronic design automation,eda)三个发展阶段。未来的eda 技术将向广度和深度两个方向发展,eda 将会超越电子设计的范畴进入其他领域,随着基于 eda 的 soc(单片系统)设计技术的发展,软硬核功能库的建立,以及基于 hdl 所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。有专家认为,21世纪将是 eda 技术快速发展的时期,并且 eda 技术将是对 21 世纪产生重大影响的十大技术之一2。乐曲演奏广泛用于自动答录装置

5、、手机铃声、集团电话及智能仪器仪表设备。实现方法有许多种,在众多的实现方法中,以纯硬件完成乐曲演奏,随着 fpga 集成度的提高,价格下降,eda 设计工具更新换代,功能日益普及与流行,使这种方案的应用越来越多。pfga 预装了很多已构造好的参数化库单元 lpm 器件,通过引入支持 lpm 的 eda 软件工具,设计者可以设计出结构独立而且硅片的使用效率非常高的产品3。本文按照 eda 开发流程,采用 verilog hdl 硬件描述语言开发,将乐曲硬件演奏电路设计进行模块化分解,层次化设计,分成几个单独的结构体,每个结构体实现部分功能,最后,经顶层文件将各单独结构体进行综合,实现乐曲硬件演奏

6、。22.系统设计总述系统设计总述2.1 系统设计要求系统设计要求与利用微处理器(cpu 或 mcu)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂一些,如果不借助功能强大的 eda 工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以有效实现。所以本实验设计项目的目标是软件上实现硬件乐曲演奏电路系统仿真与调试;硬件上实现乐曲的发声播放与乐曲简谱显示功能,即当演奏电路播放乐曲时,能够将当前播放的音符通过一列发光二极管以二进制的形式予以显示乐曲高音显示功能。如果电路正在播放高音音符,那么将有一个发光二极管点亮来显示。主要工作:根据硬件演奏电路的功能进行全局分析,采用自上

7、至下的设计方法,从系统总体要求出发,逐步将设计内容细化,最后完成系统结构的整体设计。实现功能乐曲播放,需要完成以下设计:(1)预置乐曲,本文选取了梁祝的一段作预置,作预置时,需要将乐曲音符转换成相应的代码,通过计算逐一将音符转换成代码,通过 eda 开发平台 quartus ii8.0 进行乐曲定制。(2)为了提供乐曲发音所需要的发音频率,编写数控分频器程序,对单一输入高频,进行预置数分频,生成每个音符发音的相应频率。(3)为了给分频提供预置数,需要计算分频预置数。(4)对每部分结构单元逐一进行编译,生成相应的元器件符号,并对独立结构单元功能进行仿真。(5)连接独立结构模块,形成完整的乐曲演奏

8、电路。(6) 应将其输入信号锁定在芯片确定的引脚上,编译后下载,对此电路进行硬件测试。2.2 系统设计原理系统设计原理硬件电路发生器原理,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制 fpga 芯片某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。乐曲中的每一音符对应着一个确定的频率,要想 fpga 发出不同音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调4。而要准确地演奏出一首乐曲,仅仅让扬声器能够发生是不够的,还必须准确地控制乐曲的节奏,即乐曲中每个

9、音符的发生频率及其持续时间是乐曲能够连续演奏的两个关键因素。2.2.1 音符的频率音符的频率可以由数控分频器 spker 获得,工作时由其 clk 端输入一较高频率(1mhz)的时钟,通过 spker 分频后,经由 d 触发器构成的分频电路由 spk_kx 口输出。由于直接从数控分频器中出来的输出信号是脉冲极窄的信号,为了有利于驱动扬声器,需另加一个 d 触发器分频以均衡其占空比,但这时的频率是原来的 1/2。spker 对 clk 输入信号的分频比由输入的11 位预置数 tn10.0与输出频率就有了对应关系,而输出的频率又与音符的发声存在对应关系。图 10 即为数控分频器 spker。其简谱

10、中音符和频率的关系如表 1 所示:基于 quartus ii 的乐曲演奏电路设计3表 1 简谱中音符与频率的关系2.2.2 音符的持续时间音符的持续时间需根据乐曲的速度及每个音符的节拍数来确定。本设计中的梁祝乐曲,最小的节拍为 1/4 拍,若将 1 拍的时间定为 1 秒,则只需要提供一个 4hz 的时钟频率即可产生 1/4 拍的时长(0.25 秒) ,对于其它占用时间较长的节拍(必为 1/4 拍的整数倍)则只需要将该音符连续输出相应的次数即可。计数时钟信号作为输出音符快慢的控制信号,时钟快时输出节拍速度就快,演奏的速度也就快,时钟慢时输出节拍的速度就慢,演奏的速度自然降低。2.2.3 乐曲产生

11、原理框图根据 2.2.1 与 2.2.2 的分析,我们可以通过图 1 来获得每个音符的发音频率值与持续的时间这两个要素所对应的数值,以及通过纯硬件的手段来利用这些数值实现乐曲所希望的演奏效果。图 1 乐曲产生原理图2.3 系统结构系统结构完整的 eda 设计流程是自上而下的具体实施途径。所以先由 eda 工具软件本身组成结构,本实验运用的是 quartus ii8.02.3.1 软件整体结构乐曲演奏电路顶层设计如图 2 所示。分频预置查表电路音符数据 rom地址发生器数码管数控分频器扬声器1mhz4hz4系统主要由四个功能模块组成 cnt138t,f_code,spker 和其它模块。第一部分

12、cnt138t,作为音符 rom 的地址发生器,实现按节拍读乐谱的功能。第二部分 f_code 为分频预置查表电路,为 spker 提供分频预置数,实现乐曲译码输出。第三部分 spker 数控分频器,产生发音频率,实现乐曲播放。第四部分 music 音符数据模块 rom,写入梁祝乐曲的音符数据,共同实现简易电子琴功能。该系统有一个输入时钟信号 clk20mhz,三个输出,分别为乐曲声音输出端口、简谱码显示端口和高 8 度指示端口。 图 2 乐曲演奏顶层文件2.3.2 硬件结构在数字化道路上,我国电子设计技术的发展经历了并将继续经历很多重大的变革与飞跃。从应用 ssi 通用数字电路芯片构成电路系

13、统,到广泛应用 mcu(微控制器或单片机) ,在电子系统设计上发生了一个具有里程碑意义的飞跃,这一飞跃不但克服了纯 ssi 数字电路系统许多不可逾越的困难,同时也为电子设计技术的应用开拓了更广阔的前景,使得电子系统的智能化水平在广度和深度上产生了质的飞跃。mcu 的广泛应用并没有抛弃 ssi 的应用,而是为它们在电子系统中找到了更合理的地位。随着社会经济发展的延伸,电子设计技术的应用为我们提出了许多全新的课题和更高的要求,因此也拓宽了更大的应用空间。不言而喻,我国的电子设计技术发展到今天,又将面临一次更大意义上的突破。从某种意义上来说,这种突破的实现是历史抉择性的,而非技术性的。即 cpld/

14、fpga 在 eda 中的广泛应用。可编程逻辑器件(简称 pld)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。fpga 和 cpld 分别是现场可编程门阵列和复杂可编程逻辑器件的简称,现在,fpga 和 cpld 器件的应用已十分广泛,它们将随着 eda 技术的发展而成为电子设计领域的重要角色5。从本质上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构上,但却是一次更高层次的循环。它在更高层次上容纳了过去数字技术的优秀部分,对 mcu 系统将是一种扬弃,但在电子技术的设计操作和系统构成的整体上却发生了质的飞跃。如果说 mcu 在逻辑的实现上是无限的话,那么 cpld/fpga

15、不但包括了 mcu 这一特点,而且还可触及硅片电路线度的物理极限,并兼有串并行方式、高速、高可靠性以及宽口径实用性等诸多方面的特定。不但如此,随基于 quartus ii 的乐曲演奏电路设计5着 eda 技术的发展和 cpld/fpga 在深亚微米级领域的进军,它们与mcu、mpu、dsp、a/d、ram 和 rom 等独立器件间的物理与功能界限将日益模糊。特别是软/硬 ip 芯核产业的迅猛发展,嵌入式通用与标准 fpga 器件呼之欲出,片上系统(soc)已近在咫尺。cpld/fpga 其不可替代的地位及其伴随而来的极具知识经济特征的 ip 核产业的崛起越来越受到业内人士的密切关注。国际上生产

16、 fpga/cpld 的主流公司,并且在国内占有市场份额较大的主要是xilinx,altera,lattice 三家公司。 xilinx 公司的 fpga 器件有 xc2000,xc3000,xc4000,xc4000e,xc4000xla,xc5200系列等,可用门数为 120018 000;altera 公司的 cpld 器件有flex6000,flex8000,flex10k,flex10ke 系列等,提供门数为 500025 000;lattice 公司的 isp-pld 器件有 isplsi1000,isplsi2000,isplsi3000,isplsi6000 系列等,集成度可多

17、达25 000 个 pld 等效门。本实验所用的是 altera 公司的 cyclone iii。fpga 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。cpld 在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。高集成度、高速度和高可靠性是 fpga/cpld 最明显的特点,其时钟延时可小至 ns 级,结合其并行工作方式,在超高速应用领域和实时测控方面有着非常广阔的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于 mcu 的复位不可靠和 pc 可能跑飞等问题6。fpga/cpld 的高可靠性还表现在几乎可将整

18、个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。由于 fpga/cpld 的集成规模非常大,可利用先进的 eda 工具进行电子系统设计和产品开发。由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,因而设计开发成功的各类逻辑功能块软件有很好的兼容性和可移植性。 它几乎可用于任何型号和规模的 fpga/cpld 中,从而使得产品设计效率大幅度提高。可以在很短时间内完成十分复杂的系统设计,这正是产品快速进入市场最宝贵的特征。美国it 公司认为,一个 asic 80%的功能可用于 ip 核等现成逻辑合成。而未来大系统的 fpga/cpld

19、设计仅仅是各类再应用逻辑与 ip 核(core)的拼装,其设计周期将更短。与 asic 设计相比,fpga/cpld 显著的优势是开发周期短、投资风险小、产品上市速度快、市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将在生产中达到充分检验的 vhdl 设计迅速实现 asic 投产。对于普通规模,且产量不是很大的产品项目,通常使用 cpld 比较好。对于大规模的逻辑设计 asic 设计,或单片系统设计,则多采用 fpga。另外,fpga 掉电后将丢失原有的逻辑信息,所以在实用中需要为 fpga 芯片配置一个专用 rom。我们深刻体会到,cpld/fpga 的学习与应用已不仅仅

20、是一种单纯的基于某种特定器件的应用开发过程,而是一种极富挑战性和创造性的开拓性活动。它打破了软硬件之间最后的屏障,使软硬件工程师们有了真正的共同语言,它使目前一切仍处于计算机辅助性设计和规划的纯软件活动变成了实实在在的设计和实体7。图 3 即为本论文所用的 fpga 电路开发板。6 图 3 fpga 开发板3.单元模块设计单元模块设计3.1 音符数据地址发生器模块音符数据地址发生器模块 cnt138t模块 cnt138t 是一个 8 位二进制计数器,内部设置计数最大值为 139,作为音符数据 rom的地址发生器。这个计数器的计数频率即为 4hz,即每一计数值的停留时间为 0.25 秒,恰为当全

21、音符设为 1 秒时,四四拍的 4 分音符持续时间。例如, 梁祝乐曲第一个音符为“3” ,此音在逻辑中停留了 4 个时钟节拍,即 1 秒时间;相应的,所对应的“3”音符分频预置数值为11h40c,在 spker 的输入端停留了 1 秒。随着计数器 cnt138t 按 4hz 的时钟速率进行加法计数(即随地址值递增) ,模块 music 中的音符数据将从 rom 中通过 q3.0端口输向 f_code模块, 梁祝乐曲就开始连续自然地演奏起来了。cnt138t 的节拍是 139,正好等于 rom 中的简谱码数,所以可以确保循环演奏。3.1.1 音符数据地址发生器模块程序module cnt138t

22、(clk,cnt8);input clk; output7:0 cnt8; reg7:0cnt; wire ld;always (posedge clk or posedge ld ) begin if (ld) cnt = 8b00000000 ; else cnt=cnt+1;endassign cnt8=cnt; assign ld=(cnt=138) ;基于 quartus ii 的乐曲演奏电路设计7endmodule3.1.2 音符数据地址发生器电路模块音符数据地址发生器模块即为运用 verilog hdl 语言,将以行为和功能层次表达的电子系统转换为低层次的、便于具体实现的模块而组

23、合装配的电子器件。图 4 音符数据地址发生器电路模块3.1.3 音符数据地址发生器电路模块 rtl 电路图rtl(register transport level)电路图即为从算法表述转换到寄存器传输级表述,即从行为域到结构域的综合。 图 5 音符数据地址发生器电路模块 rtl 电路图3.1.4 音符数据地址发生器电路模块的仿真图8 图 6 音符数据地址发生器电路模块的仿真图由波形可看出,clk 为输入时钟信号,八位输出二进制信号在每个时钟上升沿加一。地址发生器模块设置了一个 8 位二进制计数,作为音符数据 rom 的地址发生器。每来一个时钟脉冲信号(clk),8 位二进制计数器就计数一次,r

24、om 文件中的地址也就随着递增,音符数据 rom中的音符也就一个接一个连续的取出来了。经分析,该模块功能完全正确。3.2 分频预置查表电路模块分频预置查表电路模块 f_code模块 f_code 乐曲简谱码对应的分频预置数查表电路的功能首先是为模块 spker(11 位数控分频器)提供所发音符的分频预置数,而此数在 spker 输入口停留的时间即为此音符的节拍长度。f_code 中设置了梁祝乐曲全部音符所对应的分频预置数,共 14 个,每一个音符的停留时间则由音乐节拍和音调发生查表模块 music 中简谱码和工作时钟 inclock 的频率决定,在此为 4hz。3.2.1 分频预置查表电路模块

25、程序module f_code (inx, code, h, to); input 3:0 inx; output 3:0 code; output h; output 10:0 to; reg10:0 to; reg3:0 code; reg h; always (inx) begin case (inx) 0 : begin to = 11h7ff; code=0; h=0; end 1 : begin to = 11h305; code=1; h=0; end 2 : begin to = 11h390; code=2; h=0; end 3 : begin to = 11h40c; c

26、ode=3; h=0; end 4 : begin to = 11h45c; code=4; h=0; end 5 : begin to = 11h4ad; code=5; h=0; end 6 : begin to = 11h50a; code=6; h=0; end 基于 quartus ii 的乐曲演奏电路设计9 7 : begin to = 11h55c; code=7; h=0; end 8 : begin to = 11h582; code=1; h=1; end 9 : begin to = 11h5c8; code=2; h=1; end 10 : begin to = 11h

27、606; code=3; h=1; end 11 : begin to = 11h640; code=4; h=1; end 12 : begin to = 11h656; code=5; h=1; end 13 : begin to = 11h684; code=6; h=1; end 14 : begin to = 11h69a; code=7; h=1; end 15 : begin to = 11h6c0; code=1; h=1; end default : begin to =11h6c0; code=1; h=1; endendcase end endmodule3.2.2 分频

28、预置查表电路模块分频预置查表电路模块即为运用 verilog hdl 语言,将以行为和功能层次表达的电子系统转换为低层次的、便于具体实现的模块而组合装配的电子器件。 图 7 分频预置查表电路模块3.2.3 分频预置查表电路模块 rtl 电路图rtl(register transport level)电路图即为从算法表述转换到寄存器传输级表述,即从行为域到结构域的综合。图 8 分频预置查表电路模块 rtl 电路图103.2.4 分频预置查表电路模块的仿真图 图 9 分频预置查表电路模块的仿真图由波形可看出,当输入信号 index 为 00110 时,code 显示 6(即 中音 6) ,预置初值

29、为101010111000,查询上文所列的表,可发现功能完全正确。3.3 数控分频器模块数控分频器模块 spker音符的频率可以由数控分频器 spker 获得,工作时由其 clk 端输入一较高频率(1mhz)的时钟,通过 spker 分频后,经由 d 触发器构成的分频电路由 spk_kx 口输出。由于直接从数控分频器中出来的输出信号是脉冲极窄的信号,为了有利于驱动扬声器,需另加一个 d 触发器分频以均衡其占空比,但这时的频率是原来的 1/2。spker 对 clk 输入信号的分频比由输入的11 位预置数 tn10.0与输出频率就有了对应关系,而输出的频率又与音符的发声存在对应关系8。例如,在

30、f_code 模块中取 tn10.0=11h40c,则将由 spk_kx 发出音符为“3”音的信号频率。3.3.1 数控分频器模块程序module spker (clk, tn, spks); input clk; input10:0 tn; output spks; reg spks; reg10:0 cnt11; always (posedge clk) begin : cnt11b_load if (cnt11=11h7ff) begin cnt11=tn; spks=1b1; end else begin cnt11=cnt11+1; spks=1b0 ; end end endmod

31、ule3.3.2 数控分频器电路模块数控分频器电路模块即为运用 verilog hdl 语言,将以行为和功能层次表达的电子系统转换为低层次的、便于具体实现的模块而组合装配的电子器件。基于 quartus ii 的乐曲演奏电路设计11 图 10 数控分频器电路模块3.3.3 数控分频器电路模块 rtl 电路图rtl(register transport level)电路图即为从算法表述转换到寄存器传输级表述,即从行为域到结构域的综合。 图 11 数控分频器电路模块 rtl 电路图3.3.4 数控分频器模块的仿真图 图 12 数控分频器模块的仿真图此波形仿真分析比较复杂,如果由于输入信号为 12m

32、hz,其中的分频系数比较大,如果直12接用该模块程序进行仿真可能导致仿真时间过长而失败,因此更改程序,减小其分频系数,同样能说明问题,在此,我将 12 位的预置初值改为 3 位,得到如上的仿真波形图,可发现在 tn 给出不同的预置初值时的分频效果,仔细细数一下,发现数控分频功能完全正确。3.4 音符数据模块音符数据模块 rom music模块 music 是一个 lpm_rom,其输入频率来自锁相环9pll20 的 2khz 输出频率,而模块 f_code 的 14 个值得输出由对应于 music 模块输出的 q3.0及 4 位输入值 inx3.0确定,而 inx3.0最多有 16 种可选值;

33、输向模块 f_code 中 inx3.0的值在 spker 中对应的输出频率值与持续的时间由模块 music 决定。3.4.1 乐曲演奏音符数据文件由于梁祝乐曲演奏数据实际深度是 139,故本文截图截到了 152。将音符数据文件命名为 mif.mif。 图 13 乐曲演奏音符数据文件3.4.2 定制音符数据的 rom 文件由于 quartus ii 软件中有常见的 lpm_rom 电路模块10,所以我们只需对其模块进行设置和调用即可。图 14 即为用 quartus ii8.0 软件对 rom 调用与设置过程中的一个截图。基于 quartus ii 的乐曲演奏电路设计13 图 14 定制音符数

34、据的 rom 文件4结语结语通过这次毕业设计,进一步加深了对 eda 的了解。对 verilog hdl 语言的掌握不熟练使得编写顶层文件的程序、子模块编写调试都时遇到了不少问题,子模块编写调试各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了 quartus ii 软件提示的错误,排除困难后,程序编译通过后,在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示。接着,在不断地与老师同学的探讨,不断地查询资料后,终于能调试之后观察到完整准确的仿真结果。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正为社会服务,从而

35、提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,需要不断地努力学习。由于自身水平有限,本设计在功能上也只是完成了一些基本功能,对于电路的可靠性,稳定性等参数还未做过详细的测试。在音调和音长的故障分析方面还未做周全的考虑。14参考文献参考文献1 陈海晏.eda 技术与应用m.北京:机械工业出版社,2012:39.2 饶敏,邱德慧,符宇同.eda 设计乐曲硬件演奏电路j.微计算机信息,2007,23(32)3 包明.eda 技术与可编程器件的应用m.北京:北京航空航天出版社,2007:55. 4 崔国玮,李文涛.基于 eda 技术的数电课程设计新模式的探索与实践j.实验技术与管理,2008,25(1)5 樊辉娜.基于 eda 技术数字电路综合教学实验仪的设计与制作d.2009.6 王彩凤,胡波,李卫兵,杜玉杰等.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论