eda课设__音乐流水灯_第1页
eda课设__音乐流水灯_第2页
eda课设__音乐流水灯_第3页
eda课设__音乐流水灯_第4页
eda课设__音乐流水灯_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、音乐流水灯1 绪论1.1 EDA简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 利用EDA工具,电子设计师

2、可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物等各个领域,都有EDA的应用。1.2 硬件描述语VHDL硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C

3、” 即可。而且 VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE-STD-1076)。VHDL是一种全方位的硬件描述语言,包括系统行为级。寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用VHDL来完成。VHD

4、L还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑设计,灵活且方便,而且也便于设计结果的交流、保存和重用。(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,简称VHDL。

5、这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门电路,最后用PLD实现其功能。FPGA/CPLD电路设计的一般流程:通常可将设计流程归纳为以下7个步骤。第1步:设计输入。在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自90年代初,Verilog、VHDL、 AHDL等硬件描述语言的输入方法得到了广大工程设计人员的认可。第2步:前仿真。所设计的电路必须在布局布线前验证,目的主要是在仿真时,验证电路功能是否有效。在ASIC设计中,这一步骤称为第一次Signoff.第3步:设计输

6、入编译。设计输入之后就有一个从高层次系统行为设计向低层次门级逻辑电路的转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为底层软件能够识别的某种数据格式(网表),以求达到与其工艺无关。第4步:设计输入的优化。对于上述综合生成的网表,根据布尔方程功能等效的原则,用更小更快的综合结果替代一些复杂的单元,并与指定的库映射生成新的网表,这是硬件描述语言输入方式中减小电路规模的一条必由之路。第5步:布局布线。当初步的仿真被验证后,就开始布局布线。这一步可相对规划出ASIC和FPGA/CPLD设计。第6步:后仿真。设计人员需要利用在布局线中获得的更精确的RC参数再次验证电路的功能和时序。在ASI

7、C设计中,这一步骤称为第二次Signoff。第7步:流片。在布局布线和后仿真完成之后,当需要大批量生产该芯片时,就可以开始ASIC芯片的投产。1.3 软件介绍Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快

8、,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一

9、代PLD设计软件,由于其出色的易用性而得到了广泛的应用。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。1.4 硬件介绍Cyclone器件:Cyclone现场可编程门阵列系列基于1.5V、0.13m全铜层SRAM工艺,其密度增加至20060个逻辑元件(LE),RAM

10、增加至228KB。它具有生成时钟的锁相环以及DDR SDR和快速RAM(FCRAM)存储器所需的专用双数据率(DDR)接口等。Cyclone器件支持多种I/O标准,包括640Mbps的LVDS,以及频率为33MHz和66MHz、数据宽度为32位和64位的PCI。Cyclone器件可以实现Nios II嵌入式处理器,而且只占用不到600个逻辑单元(LE),因此在含多达20260个LE的最大Cyclone器件中,可以将多个Nios II处理器集成到一个Cyclone器件中。Nios II系列嵌入式处理器以第一代Nios处理器为基础,提供三种内核来满足嵌入式处理器的应用。设计者可以从高性能内核(超过

11、200 DMIPS)、低成本内核(代于50美分的逻辑资源消耗)和性价比平衡的标准内核中进行选择。开发人员通过向Nios II处理器指令集中增加定制指令,可以加速软件算法。定制指令可以在一个时钟周期的时间内完成复杂的处理任务,为系统优化提供了一种高性价比的解决方案。用户添加的定制指令可以该问存储器和Nios II系统外部的逻辑,提供了高效、灵活的访问数据和逻辑资源的能力。定制指令允许设计者灵活、轻便地设计高端软件,同时保留了并行硬件操作在可编程逻辑器件(PLD)中的性能优势。1.5 课题研究通过此实验让我们进一步了解,熟悉和掌握CPLD/FPGA开发软件的使用方法及VHDL的编程方法。本次EDA

12、课程设计我们所采用的是由武汉凌特电子技术有限公司生产的LTE-SOPC-02FD型OPC实验开发系统。1.5.1 课题研究内容主要内容:在本课程设计中使用Altera公司的EP2C35系列的EP2C35F484C7 -FPGA芯片,利用SOPC-NIOSII-EP2C35开发板上的资源,实现一个音乐流水灯。本设计的任务要求通过编程实现一段音乐旋律的循环播放,在音乐播放的过程中,流水灯根据旋律闪烁。扩展内容:1 利用数码管显示播放时间2利用16*16点阵显示播放歌曲名称3利用4×4键盘阵列键盘实现播放歌曲的切换4利用液晶显示频谱分析1.5.2 课题研究方法1.5.2.1 理论依据根据设

13、计要求分析系统功能,掌握设计中所需理论(音乐模块的设计,流水灯模块的设计,16*16点阵模块的设计,按键选择模块的设计,音乐播放时间模块的设计),阐述设计原理。1.5.2.2 音乐模块基本原理:组成乐曲的每个音符的频率值以及持续时间是乐曲能连续演奏所需的基本数据。并将简单音乐的相应程序加载到蜂鸣器模块中,使其能够按照音乐的节奏发声。1.5.2.3 流水灯模块通过对流水灯模块的编程控制,使其实现随着简单音乐的节奏有规律的进行点亮和熄灭。1.5.2.4 16*16点阵模块16*16点阵的行为扫描选通信号、列为数据输入。显示采用逐行列扫描方式,数据端不断输入数据,行扫描按一定顺序逐行选通,扫描一个周

14、期(16次)产生一帧画面。使其实现在按键选择播放相应简单音乐时,16*16点阵循环显示播放歌曲的名字。1.5.2.5 按键选择模块由于4*4矩阵键盘模块、数码管模块与16*16点阵模块的引脚有相同的,所以不能在有数码管模块与16*16点阵模块的功能时同时用4*4矩阵键盘模块控制简单歌曲的切换。因此,我将采用拨动开关模块控制简单歌曲的切换。1.5.2.6 音乐播放时间模块当音乐开始播放时,八位七段数码管开始从零开始计时,因此通过八位七段数码管可以知道音乐播放的时间。2 课程设计方案及相应原理2.1 课程设计总体方案具体总体设计方案见图2.1、图2.2:开始读取按键读取歌曲代码扫描16*16点阵流

15、水灯显示播放歌曲读取按键16*16点阵选择相应代码,显示歌曲名称图2.1 总体方案设计流程图(点阵显示+按键选择+流水灯)开始歌曲计时开始读取按键读取歌曲代码播放歌曲流水灯显示图2.2 总体方案设计流程图(时间显示+按键选择+流水灯)2.2 具体设计方法在本节中,将对各个模块的具体设计方法及仿真现象进行阐述,但最后的课程设计是将好几个模块的设计思路同时同时进行仿真和烧录至开发系统进行验证的。同时,由于4*4矩阵键盘模块、数码管模块与16*16点阵模块的引脚有相同的,所以不能在有数码管模块与16*16点阵模块的功能时同时用4*4矩阵键盘模块控制简单歌曲的切换。因此,课程设计内容里面要求的部分拓展

16、内容,将分为两个程序来实现。2.2.1 音乐模块2.2.1.1 基本原理为了便于理解,首先介绍一下硬件电路的发声原理。我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制FPGA某个引脚输出一定频率的矩形波,接上扬声器就能发出相应频率的声音。而乐曲中的每一音符对应着一个确定的频率,因此,要想FPGA发出不用音符的音调,实际上只要控制它输出相应音符的频率即可。乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在扬声器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让扬声器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可

17、见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个基本要素,获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果是本实验的关键。因此要实现在蜂鸣器上播放出有一定规律节奏的简单歌曲,就需要了解各个音阶的频率,以及怎样将这些频率转换为开发系统以及蜂鸣器能够识别的代码。具体个音阶的频率见图2.3,以及频率点及音符与音谱对应定义见图2.4:图2.3 各音阶频率表图2.4 频率点及音符与音谱对应表2.2.1.2 程序及相应电路原理图该模块程序如下所示:library ieee;use ieee.std_logic_1164.all;use ieee.std

18、_logic_arith.all;use ieee.std_logic_unsigned.all;entity tb is port( clk : in std_logic; -Clock Signal spk : buffer std_logic -speaker driver ); end tb;architecture behave of tb is signal tone : std_logic_vector(10 downto 0); signal tone_count : std_logic_vector(10 downto 0); signal tone_index : inte

19、ger range 0 to 15; signal clk10_count : std_logic_vector(17 downto 0); signal time : integer range 0 to 150; signal clk10 : std_logic; begin process(clk) -generate 10hz clock signal begin if(clk'event and clk='1') then clk10_count<=clk10_count+1; if(clk10_count=16#3fff#) then clk10<

20、;=not clk10; end if; end if; end process; process(clk10) begin if(clk10'event and clk10='1') then if(time=150) then time<=0; else time<=time+1; end if; end if; end process; process(clk10) begin if(clk10'event and clk10='1') then case time is when 0=>tone_index<=3;

21、 when 1=>tone_index<=3; when 2=>tone_index<=3; when 3=>tone_index<=3;- when 4=>tone_index<=5; when 5=>tone_index<=5; when 6=>tone_index<=5; when 7=>tone_index<=6;- when 8=>tone_index<=8; when 9=>tone_index<=8; when 10=>tone_index<=8; when 1

22、1=>tone_index<=9;- when 12=>tone_index<=6; when 13=>tone_index<=8; when 14=>tone_index<=5; when 15=>tone_index<=5;- when 16=>tone_index<=12; when 17=>tone_index<=12; when 18=>tone_index<=12; when 19=>tone_index<=15;- when 20=>tone_index<=13

23、; when 21=>tone_index<=12; when 22=>tone_index<=10; when 23=>tone_index<=12;- when 24=>tone_index<=9; when 25=>tone_index<=9; when 26=>tone_index<=9; when 27=>tone_index<=9;- when 28=>tone_index<=9; when 29=>tone_index<=9; when 30=>tone_index&

24、lt;=0; when 31=>tone_index<=0;- when 32=>tone_index<=9; when 33=>tone_index<=9; when 34=>tone_index<=9; when 35=>tone_index<=10;- when 36=>tone_index<=7; when 37=>tone_index<=7; when 38=>tone_index<=6; when 39=>tone_index<=6;- when 40=>tone_in

25、dex<=5; when 41=>tone_index<=5; when 42=>tone_index<=5; when 43=>tone_index<=6;- when 44=>tone_index<=8; when 45=>tone_index<=8; when 46=>tone_index<=9; when 47=>tone_index<=9;- when 48=>tone_index<=3; when 49=>tone_index<=3; when 50=>tone_

26、index<=8; when 51=>tone_index<=8;- when 52=>tone_index<=6; when 53=>tone_index<=5; when 54=>tone_index<=6; when 55=>tone_index<=8;- when 56=>tone_index<=5; when 57=>tone_index<=5; when 58=>tone_index<=5; when 59=>tone_index<=5;- when 60=>to

27、ne_index<=5; when 61=>tone_index<=5; when 62=>tone_index<=0; when 63=>tone_index<=0;- when 64=>tone_index<=10; when 65=>tone_index<=10; when 66=>tone_index<=10; when 67=>tone_index<=12;- when 68=>tone_index<=7; when 69=>tone_index<=7; when 70=

28、>tone_index<=9; when 71=>tone_index<=9;- when 72=>tone_index<=6; when 73=>tone_index<=8; when 74=>tone_index<=5; when 75=>tone_index<=5;- when 76=>tone_index<=5; when 77=>tone_index<=5; when 78=>tone_index<=5; when 79=>tone_index<=5;- when

29、80=>tone_index<=5; when 81=>tone_index<=0; when 82=>tone_index<=0; when 83=>tone_index<=3;- when 84=>tone_index<=5; when 85=>tone_index<=3; when 86=>tone_index<=5; when 87=>tone_index<=5;- when 88=>tone_index<=6; when 89=>tone_index<=7; whe

30、n 90=>tone_index<=9; when 91=>tone_index<=6;- when 92=>tone_index<=6; when 93=>tone_index<=6; when 94=>tone_index<=6; when 95=>tone_index<=6;- when 96=>tone_index<=6; when 97=>tone_index<=5; when 98=>tone_index<=6; when 99=>tone_index<=8;-

31、when 100=>tone_index<=8; when 101=>tone_index<=8; when 102=>tone_index<=9; when 103=>tone_index<=12;- when 104=>tone_index<=12; when 105=>tone_index<=12; when 106=>tone_index<=10; when 107=>tone_index<=9;- when 108=>tone_index<=9; when 109=>to

32、ne_index<=10; when 110=>tone_index<=9; when 111=>tone_index<=8;- when 112=>tone_index<=8; when 113=>tone_index<=6; when 114=>tone_index<=5; when 115=>tone_index<=3;- when 116=>tone_index<=3; when 117=>tone_index<=3; when 118=>tone_index<=3; wh

33、en 119=>tone_index<=8;- when 120=>tone_index<=8; when 121=>tone_index<=8; when 122=>tone_index<=8; when 123=>tone_index<=6;- when 124=>tone_index<=8; when 125=>tone_index<=6; when 126=>tone_index<=5; when 127=>tone_index<=3;- when 128=>tone_in

34、dex<=5; when 129=>tone_index<=6; when 130=>tone_index<=8; when 131=>tone_index<=5;- when 132=>tone_index<=5; when 133=>tone_index<=5; when 134=>tone_index<=5; when 135=>tone_index<=5;- when 136=>tone_index<=5; when 137=>tone_index<=5; when 138

35、=>tone_index<=0; when 139=>tone_index<=0;- when others=>tone_index<=0; end case; end if; end process; process(tone_index) begin case tone_index is when 0=>tone<="11111111111" when 1=>tone<="01100000101" when 2=>tone<="01110010000" whe

36、n 3=>tone<="10000001100" when 5=>tone<="10010101101" when 6=>tone<="10100001010" when 7=>tone<="10101011100" when 8=>tone<="10110000010" when 9=>tone<="10111001000" when 10=>tone<="11000000110&

37、quot; when 12=>tone<="11001010110" when 13=>tone<="11010000100" when 15=>tone<="11011000000" when others=>tone<="11111111111" end case;end process; process(clk) -control the frequence of the speaker begin if(clk'event and clk='1

38、') then if(tone_count=16#7ff#) then tone_count<=tone; if(tone<2047) then spk<=not spk; end if; else tone_count<=tone_count+1; end if; end if; end process;end behave;2.2.2 流水灯模块2.2.2.1 基本原理在LED1LED12引脚上按照简单音乐的节奏有规律的的输出流水数据,如原来输出的数据是000000000011则表示点亮LED1,LED2(共阴接法),流水一次后,输出的数据应该为000000

39、000111,而此时则应点亮LED1LED3三个LED发光二极管。就可以实现LED流水灯。但是根据本次课程设计的要求,每次只会有一个音阶响起,所以每次只会有一个LED灯亮起。2.2.2.2 程序及相应电路原理图该模块程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity tb is port( clk : in std_logic; -Clock Signal spk : buffer std_logic; -speaker

40、 driver led : out std_logic_vector(11 downto 0); end tb;architecture behave of tb is signal tone : std_logic_vector(10 downto 0); signal tone_count : std_logic_vector(10 downto 0); signal tone_index : integer range 0 to 15; signal clk10_count : std_logic_vector(17 downto 0); signal time : integer ra

41、nge 0 to 150; signal clk10 : std_logic; begin process(clk) -generate 10hz clock signal begin if(clk'event and clk='1') then clk10_count<=clk10_count+1; if(clk10_count=16#3fff#) then clk10<=not clk10; end if; end if; end process; process(clk10) begin if(clk10'event and clk10=

42、9;1') then if(time=150) then time<=0; else time<=time+1; end if; end if; end process; process(clk10) begin if(clk10'event and clk10='1') then case time is when 0=>tone_index<=3; when 1=>tone_index<=3; when 2=>tone_index<=3; when 3=>tone_index<=3;- when 4

43、=>tone_index<=5; when 5=>tone_index<=5; when 6=>tone_index<=5; when 7=>tone_index<=6;- when 8=>tone_index<=8; when 9=>tone_index<=8; when 10=>tone_index<=8; when 11=>tone_index<=9;- when 12=>tone_index<=6; when 13=>tone_index<=8; when 14=&g

44、t;tone_index<=5; when 15=>tone_index<=5;- when 16=>tone_index<=12; when 17=>tone_index<=12; when 18=>tone_index<=12; when 19=>tone_index<=15;- when 20=>tone_index<=13; when 21=>tone_index<=12; when 22=>tone_index<=10; when 23=>tone_index<=12;-

45、 when 24=>tone_index<=9; when 25=>tone_index<=9; when 26=>tone_index<=9; when 27=>tone_index<=9;- when 28=>tone_index<=9; when 29=>tone_index<=9; when 30=>tone_index<=0; when 31=>tone_index<=0;- when 32=>tone_index<=9; when 33=>tone_index<=

46、9; when 34=>tone_index<=9; when 35=>tone_index<=10;- when 36=>tone_index<=7; when 37=>tone_index<=7; when 38=>tone_index<=6; when 39=>tone_index<=6;- when 40=>tone_index<=5; when 41=>tone_index<=5; when 42=>tone_index<=5; when 43=>tone_index&l

47、t;=6;- when 44=>tone_index<=8; when 45=>tone_index<=8; when 46=>tone_index<=9; when 47=>tone_index<=9;- when 48=>tone_index<=3; when 49=>tone_index<=3; when 50=>tone_index<=8; when 51=>tone_index<=8;- when 52=>tone_index<=6; when 53=>tone_inde

48、x<=5; when 54=>tone_index<=6; when 55=>tone_index<=8;- when 56=>tone_index<=5; when 57=>tone_index<=5; when 58=>tone_index<=5; when 59=>tone_index<=5;- when 60=>tone_index<=5; when 61=>tone_index<=5; when 62=>tone_index<=0; when 63=>tone_in

49、dex<=0;- when 64=>tone_index<=10; when 65=>tone_index<=10; when 66=>tone_index<=10; when 67=>tone_index<=12;- when 68=>tone_index<=7; when 69=>tone_index<=7; when 70=>tone_index<=9; when 71=>tone_index<=9;- when 72=>tone_index<=6; when 73=>

50、tone_index<=8; when 74=>tone_index<=5; when 75=>tone_index<=5;- when 76=>tone_index<=5; when 77=>tone_index<=5; when 78=>tone_index<=5; when 79=>tone_index<=5;- when 80=>tone_index<=5; when 81=>tone_index<=0; when 82=>tone_index<=0; when 83=&g

51、t;tone_index<=3;- when 84=>tone_index<=5; when 85=>tone_index<=3; when 86=>tone_index<=5; when 87=>tone_index<=5;- when 88=>tone_index<=6; when 89=>tone_index<=7; when 90=>tone_index<=9; when 91=>tone_index<=6;- when 92=>tone_index<=6; when 93

52、=>tone_index<=6; when 94=>tone_index<=6; when 95=>tone_index<=6;- when 96=>tone_index<=6; when 97=>tone_index<=5; when 98=>tone_index<=6; when 99=>tone_index<=8;- when 100=>tone_index<=8; when 101=>tone_index<=8; when 102=>tone_index<=9; wh

53、en 103=>tone_index<=12;- when 104=>tone_index<=12; when 105=>tone_index<=12; when 106=>tone_index<=10; when 107=>tone_index<=9;- when 108=>tone_index<=9; when 109=>tone_index<=10; when 110=>tone_index<=9; when 111=>tone_index<=8;- when 112=>tone_index<=8; when 113=>tone_index<=6; when 114=>tone_index<=5; when 115=>tone_index<=3;- when 116=>tone_index<=3;

温馨提示

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

评论

0/150

提交评论