基于vhdl的数字钟的设计说明书.doc_第1页
基于vhdl的数字钟的设计说明书.doc_第2页
基于vhdl的数字钟的设计说明书.doc_第3页
基于vhdl的数字钟的设计说明书.doc_第4页
基于vhdl的数字钟的设计说明书.doc_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告 设计题目:用VHDL语言实现数字钟的设计 班 级:电子1101 学 号:20113078 姓 名:李玉珍 指导教师:李世平、李宁设计时间:2014年1月摘 要随着IT行业的不断发展EDA技术在很多行业得到了广泛的应用,在很多大学也开设了相应的课程,但只有理论知识不足以应对实际项目的开发,不足以胜任更加庞大的系统开发。本次课程设计旨在提高学生的实际动手能力和解决问题的能力。本次课程设计主要使用实验室提供的XiLinx公司的ISE14.2作为编写程序和仿真的平台来实现数字钟的设计。该项目的实际设计中,就整体框架的设计,软件的开发,仿真等过程进行了一一验证。在数字钟的设计中应用了元件例化的整体思路实现,实现过程可分为分频模块,时分秒计数模块,时分秒置数模块,年月日计数模块,年月日置数模块,整点报时模块,时间显示切换模块等。用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7个脉冲到来时分别可预置日期、时、分、秒,第 8个脉冲到来后预置结束,正常工作,显示的是时分秒。tn为高电平时,upd0有脉冲到达时,预置位加1.否则减1.关键词:数字钟,ISE平台,元件例化 目 录 摘要21、课程设计目的42 、课程设计内容及要求4 2.1 设计任务要求4 2.2提高的内容及要求43、VHDL程序设计5 3.1设计方案5 3.1.1分频模块5 3.1.2时分秒计数模块63.1.3时分秒置数模块 73.1.4年月日计数模块8 3.1.5 年月日置数模块9 3.1.6 选择器模块10 3.1.7 时间显示模块12 3.1.8 整点报时模块13 3.1.9 元件例化模块144、仿真与分析16 4.1分频模块仿真波形16 4.2时分秒计数模块仿真波形17 4.3时分秒置数模块仿真波形17 4.4年月日计数模块仿真波形18 4.5年月日置数模块仿真波形18 4.6整点报时模块的仿真波形195、设计结果196、课程设计总结,包括.收获、体会和建议197、参考文献211、 课程设计目的 (1) VHDL程序设计、输入在ise平台上用VHDL描述系统的功能(2) 逻辑综合将源程序编译后,为设计系统选择一个电路实现方案,按照这个方案进行逻辑综合和优化,生成1个电路网表文件(3) 功能仿真检查自己的设计是否达到和完成要求的逻辑功能(4) 设计实现布局、布线及配置,最后生成可以写到芯片中的目标文件(5)时序仿真是适配到选定的芯片后进行的仿真,它模拟芯片的实际动作,仿真时间模型严格将门级延时计算在内,可以分析出竞争与冒险,时序仿真验证过的电路与实际电路基本上已致。2 、课程设计内容及要求2.1 设计任务设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7个脉冲到来时分别可预置日期、时、分、秒,第 8个脉冲到来后预置结束,正常工作,显示的是时分秒。tn为高电平时,setup有脉冲到达时,预置位加1.否则减1。2.2提高的内容及要求(1)可以采用与教材上不同的设计方法完成以上基本内容。(2)可以在基本内容的基础上增加其它功能。3、VHDL程序设计3.1设计方案VHDL数字钟的设计可采用多种设计方法,各个设计方法各有其优缺点。一, 采用一个结构体,多个进程的设计方法。其优点是速度快,但是一个结构体,各个进程的逻辑关系比较复杂,而且代码的可读性,可移植性较差。二, 状态机的设计方法,状态机结构简单,当各个状态之间的转换不易处理。三, 元件例化的设计方法,元件例化使各个模块之间分得更加有层次,易于 读,缺点有可能使各个模块之间存在逻辑关系的冲突。本课程设计,主要采用了元件例化的设计方法实现。3.1.1分频模块直接将实验箱的频率用于数字钟的计数,可能会导致错误,实验箱直接给出的1hz频率可能不够稳定,故需要将1khz的频率输出进行1000分频。本模块直接采用单进程实现设计,本模块还包括一个置数脉冲的设置upd0,upd0按下一次lock加1,lock为000时显示时分秒,为001时显示年月日,为010对年进行置数,为011对月进行置数,为100对日进行置数,为101对时进行置数,为110对分进行置数,为111对秒进行置数,lock,也连接着后面四个计数,置数,模块的lock,以进行模块显示的选择。fclk设置的周期为5ns,在2.5us处实现1000分频,1000分频后的f_clk连接时分秒,年月日计数模块的计数时钟,置数时钟则直接输入,连接两个置数模块。以下程序是实体部分entity fenpin is port(upd0 : in std_logic; clk : in std_logic; f_clk : out std_logic; lock : out std_logic_vector(2 downto 0) );end fenpin;RTL图如下:3.1.2时分秒计数模块时分秒可选用多进程或者单进程的方法,多进程速度快,但是结构复杂。故本设计选用单进程方法。当秒计数到59时向分进位,分计到59且秒为59时向时进位,当计到23时59分59秒时向天进位,同时对时分秒进行清零。程序中主要使用了if elsif end if;的语句。最后验证表明此设计方法可实现题目要求的功能。以下是程序的实体部分entity s_m_hour is port( clk0: in std_logic; -clk0工作时钟,clk1预置脉冲 lock : in std_logic_vector(2 downto 0); -工作模式选择 s0,s1: out std_logic_vector(3 downto 0); m0,m1: out std_logic_vector(3 downto 0); h0,h1: out std_logic_vector(3 downto 0); co: out std_logic;-_vector(2 downto 0); -hour产生进位 en : in std_logic; co1 : out std_logic-整小时b报时输出 );end s_m_hour;RTL图如下:3.1.3时分秒置数模块时分秒置数模块不同于计数模块,置数模块我选用了另一个置数时钟,也可以说是置数脉冲。时分秒置数有使能端口en(高有效),置数使能端口tn,通过tn(tn=0时置数是减1模式,tn=1时是加1模式)判定是加1还是减1。当输入长度为三位的lock为101时对时进行置数,当lock为110时对分进行置数,当lock为111时对秒进行置数。时分秒的置数实现方式可有多种方法,可用状态机,多进程和单进程等方法实现,相比于别的设计方法,单进程的设计方法易于实现,没有复杂的对应关系,而且本功能的实现不许过于复杂的逻辑关系。本设计使用了单进程 内部使用嵌套的if elsif end if 语句实现预期的功能。以下是该功能的输入输出端口:entity s_m_yuz1 isport( clk1 : in std_logic; -clk0工作时钟,clk1预置脉冲 lock : in std_logic_vector(2 downto 0); s0,s1 : out std_logic_vector(3 downto 0); m0,m1 : out std_logic_vector(3 downto 0); h0,h1 : out std_logic_vector(3 downto 0); tn : in std_logic; -tn=1预置数加1,tn=0预置数减1 en : in std_logic );end s_m_yuz1;RTL图如下:3.1.4年月日计数模块年月日的计数模块与时分秒的计数模块稍有不同,年月日需要考虑闰年2月份的情况,闰年到来时2月份为29天,其他情况2月份为28天。考虑闰年相对应的闰月的情况,就会出现不同的年份对应的2月的天数的不同,其他的可将1,3,5,7,8,10,12归成一类,这几个月每个月的天数是31天,而4,6,9,11这几个月又归为一类,每个月有30天,二月分为特殊的一类,闰年有29天,非闰年为28天。对瑞年的判断,由于数码管只能显示年的十位和个位,前两位默认为20,故只要后两位能被4整除即是闰年。这样我们就可以把所有的闰年的情况列出来: 00,04,08,20,24,28,40,44,48,60,64,68,80,84,88,12,14,32,34,52,54,72,74,92,94。用VHDL语言表述为:(yea1=0000OR yea1=0010OR yea1=0100OR yea1=0110 OR yea1=01000)AND(yea0=0000 OR yea0=0100OR yea0=01000)OR(yea1=0001 OR yea1=0011 OR yea1=0101OR yea1=0111 OR yea1=1001)AND(yea0=0010OR yea0=0110)。同时模块内部设计了进位脉冲,当计满12个月时向年产生进位,年数加1。以下是实体部分:entity daymony1 is port( clk0 : in std_logic; da0,da1 : out std_logic_vector(3 downto 0); mo0,mo1 : out std_logic_vector(3 downto 0); ya0,ya1 : out std_logic_vector(3 downto 0); en : in std_logic;-en接上一个模块小时的进位 lock : in std_logic_vector(2 downto 0) ); end daymony1;RTL图如下:3.1.5 年月日置数模块年月日置数模块不同于时分秒的置数模块,在年月日的置数模块中我们需要考虑闰年相对应的闰月的情况,具体和上一模块年月日计数模块原理一样。En使能端,高有效。tn为置数模式的选择控制端,tn=1时置数处于加1模式,tn=0置数处于减1模式,lock为置数对象的选择。Lock=010时对年进行置数,lock=011时对月进行置数,lock=100时对天进行置数。本设计对于本模块使用了单进程,内部使用了if elsif end if; 语句实现预期的功能。以下是该置数模块的实体部分:entity yuzhis isport( clk1,tn : in std_logic; da0,da1 : out std_logic_vector(3 downto 0); mo0,mo1 : out std_logic_vector(3 downto 0); ya0,ya1 : out std_logic_vector(3 downto 0); en : in std_logic; lock : in std_logic_vector(2 downto 0) ); end yuzhis;RTl图如下:3.1.6 选择器模块为了使时分秒计数模块、时分秒置数模块、年月日计数模块、年月日置数模块能够更好与时间显示切换模块相连接,需要增加两个选择器进行辅助,不然24个端口会引起资源不够的警告。两个选择器先分别对时分秒计数模块和时分秒置数模块、年月日计数模块和年月日置数模块进行选择,再与时间显示切换模块相连接。端口如下:entity xuanze1 is port( en : in std_logic; lock : in std_logic_vector(2 downto 0); -工作模式选择 a0 : in std_logic_vector(3 downto 0); a1 : in std_logic_vector(3 downto 0);-s b0 : in std_logic_vector(3 downto 0); b1 : in std_logic_vector(3 downto 0);-m c0 : in std_logic_vector(3 downto 0); c1 : in std_logic_vector(3 downto 0);-h d0 : in std_logic_vector(3 downto 0); d1 : in std_logic_vector(3 downto 0);-s e0 : in std_logic_vector(3 downto 0); e1 : in std_logic_vector(3 downto 0);-m f0 : in std_logic_vector(3 downto 0); f1 : in std_logic_vector(3 downto 0);-h s0,s1 : out std_logic_vector(3 downto 0); m0,m1 : out std_logic_vector(3 downto 0); h0,h1 : out std_logic_vector(3 downto 0) );end xuanze1;RTl图如下: 3.1.7 时间显示模块时间显示模块连接于上一模块两个选择器,选择器模块已经通过lock的不同值进行选择了一次,在这一模块再次通过lock的不同值,对要显示的模块进行选择。当lock=000 , lock=101 , lock=110 , lock=111,显示模块显示选择器1上的内容,当其他情况下,显示模块显示选择器2上的内容。各部分端口 如下:entity time_show isPORT( en : IN STD_LOGIC; lock : IN STD_LOGIC_VECTOR(2 DOWNTO 0);-显示切换义马管具体显示就不写了只解决显示切换模块 S_s0 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_s1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_m0 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_m1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_h0 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_h1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_da0 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_da1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_mo0 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_mo1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_ya0 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); S_ya1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); aH_Year : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);aH_Year1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);aM_Mon : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);aM_Mon1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);aS_Day : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);aS_Day1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end time_show;RTL图如下所示:3.1.8 整点报时模块整点报时模块,相连与上一模块是时分秒计数模块,每当分计数到59时,输出一个高电平,进行报时,持续时间为60S。各部分端口如下:entity baoshi isPort(flk:in std_logic; Alarm:out std_logic); -输出的报时信号end baoshi;RTL图如下:.1.9 元件例化模块 该模块将分立的所有模块连接起来,运用端口映射的方式,将各个模块通过相应的信号线相连,这也是一个容易出现问题的地方,很容易造成连接失败。clk为实验箱频率输入,tn直接与各个两个置数端口的tn相连,set为输入脉冲,直接与分频模块的upd0相连,同时分频模块的lock对其进行计数。以下是实体部分:ENTITY digital_clock IS PORT( setup : IN STD_LOGIC;-预置脉冲手动set : IN STD_LOGIC;-upd0选择工作模式clk : IN STD_LOGIC;-输入1Khz脉冲1000分频 产生1hz脉冲tn : IN STD_LOGIC;-相当于题目要求中的up 为高时 预置+1 为低时-1 en : IN STD_LOGIC;-使能H_Year : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);H_Year1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M_Mon : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M_Mon1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_Day : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_Day1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);speak : OUT STD_LOGIC-整点报时输出持续1分钟);END digital_clock;RTL图如下:内部具体结构如下: 4、仿真与分析4.1分频模块仿真波形f_clk是时钟clk经1000分频后输出,lock是对upd0的计数。4.2时分秒计数模块仿真波形co1是整小时时输出的高电平,co为时分秒模块的进位输出。分钟对小时进位。4.3时分秒置数模块仿真波形对时置数。以加置数为例,下同。对分置数。对秒置数。4.4年月日计数模块仿真波形年月日计数模块。闰年,2月29天。非闰年,2月28天。4.5年月日置数模块仿真波形Lock=010,对年进行置数,可以置数到99。Lock=011,对月进行置数,满12时,返回1月份。Lock=100,对日进行置数。非闰年,2月份置数28天。闰年,2月份置数29天。4.6整点报时模块的仿真波形每给该模块一个高电平,输出一个高电平,持续60s。5、器件编程下载及设计结果由于实验室的设备有限,因此器件下载的步骤未进行。6、课程设计总结,包括.收获、体会和建议这次数字钟的课程设计在实验室进行了整整两天,前期也进行了大量的准备,查阅一些相关书籍和一些以前的成功设计的数字钟文档,并且也事先动手编写了几个模块的程序,感觉用VHDL语言编写程序设计一些系统还是十分有意思,真正自己动手实现一些功能要比单纯的学习一些语法的理论知识来的更加的有意义,在实验中我们可以学习到课本上学不到的知识,同时也更加的有趣味性,不是那么的乏味,加深了对EDA这门课程的理解与应用。当然在数字钟的编写与仿真中也遇到了许多的问题,但也正是这些问题给我带来了很大的收获。先说说我采用的是模块化的设计方法,这种方法为我带来了很大的便利,使我的设计思路十分的清晰,当程序在仿真的过程中出现了什么问题可以很快的找到出现的问题的源程序,方便进行查错和修改,使大的系统大的程序的编写,编译变得非常的有条理化,我想这个方法会在我以后的学习工作中发挥相当大的作用。再一个就是编写程序时遇到的问题,最明显的一个问题就是未给一些变量赋初值,这个问题困扰了很长时间,程序的逻辑和语法都没有问题,但是在仿真时就是不能出现自己想要的仿真波形,最后赋予了初值才解决了这个问题。还有就是一些细节的问题,可能是由于在自己编写的时候不是很认真还有一些打错字符的现象,在程序编译的时候不能够通过,当程序多了的时候找起来就不是很容易了,我想我以后应该尽量的减少这种错误,以免造成不必要的麻烦,浪费时间;还有个问题就是当你分别测试过各个分模块都没有问题的时候,把他们整合到一起还是有时候会出现一些小问题,这种问题找起来就不是很容易了,你必须重新理清各个模块之间的连线关系仔细的查找,才能把问题找到并把它解决,不过还是得益于模块化这种设计方法,使你很清楚的知道整个系统的构成以及各个模块之间的联系,大大的增加了效率;再有个问题就是我们在编写程序的时候很容易忽视掉硬件的平台和一些硬件的电路,EDA技术最大的好处就是把硬件的设计转换成软件的编程设计实现,但同时我们也不能忽视掉硬件,应该把软件的编程和硬件平台都联系起来,要不然很容易编的程序不能够很好的适用到硬件平台,出现一些你根本就想不到的问题,为我们带来了很大的麻烦。还有一些警告,就是总是产生一些不必要的锁存器,这个问题困扰了我很久,经过我大量的查阅资料,终于弄清原因,这主要是if 或者case语句不完整造成的。以后在使用这两个语句时,一定要保证语句的完整,防止不必要的锁存器产生。通过这几天的EDA的数字钟课程设计真的使我收获很多,我想我以后还会加强这方面的实践经历,多多的积累经验,但这次实验也有一些小小的缺憾,就是没能够自己动手进行程序向器件中的下载,希望实验室能够尽快更新一些实验设备。7、 参考文献1 刘皖,何道君,谭明编著.FPGA设计与应用M. 清华大学出版社, 20062 黄智伟主编.FPGA系统设计与实践M. 电子工业出版社, 20053 潘松,王国栋编著.VHDL实用教程M. 电子科技大学出版社, 20004 侯伯亨,顾新编著.VHDL硬件描述语言与数字逻辑电路设计M. 西安电子科技大学出版社, 19995 夏宇闻编著.复杂数字电路与系统的Verilog HDL设计技术M. 北京航空航天大学出版社, 19986 卢毅,赖杰编著.VHDL与数字电路设计M. 科学出版社, 20017 王晓峰. 基于VHDL语言的可置数十位计数器的设计J. 长春大学学报. 2010(12)分频模块1000分频- Company: - Engineer: - - Create Date: 21:27:02 01/13/2014 - Design Name: - Module Name: fenpin - Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created- Additional Comments: -library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity fenpin is port(upd0 : in std_logic; clk : in std_logic; f_clk: out std_logic; lock : out std_logic_vector(2 downto 0) );end fenpin;architecture Behavioral of fenpin issignal tem : std_logic_vector(2 downto 0):=000;signal cout : std_logic_vector(8 downto 0):=000000000;signal clk_o :std_logic:=0;begin lock=tem; f_clk=clk_o; process(upd0,clk ,cout) beginif clk event and clk =1then if cout=111110011then cout=000000000; clk_o=not clk_o; else cout=cout+1; end if;end if;if upd0event and upd0=1then tem=tem+1;end if; end process;end Behavioral;时分秒计数模块- Company: - Engineer: - - Create Date: 17:03:39 01/14/2014 - Design Name: - Module Name: s_m_hour - Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created- Additional Comments: - Company: - Engineer: - - Create Date: 18:54:17 01/13/2014 - Design Name: - Module Name: s_m_hour - Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created- Additional Comments: -library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity s_m_hour is port( clk0: in std_logic; -clk0工作时钟,clk1预置脉冲 lock : in std_logic_vector(2 downto 0); -工作模式选择 s0,s1 : out std_logic_vector(3 downto 0); m0,m1 : out std_logic_vector(3 downto 0); h0,h1 : out std_logic_vector(3 downto 0); co : out std_logic;-_vector(2 downto 0); -hour产生进位 en : in std_logic; co1 : out std_logic-整小时b报时输出 );end s_m_hour;architecture Behavioral of s_m_hour issignal ts0 : std_logic_vector(3 downto 0):=0100;signal ts1 : std_logic_vector(3 downto 0):=0101;signal tm0 : std_logic_vector(3 downto 0):=1001;signal tm1 : std_logic_vector(3 downto 0):=0101;signal th0 : std_logic_vector(3 downto 0):=0011;signal th1 : std_logic_vector(3 downto 0):=0010;signal cc : std_logic;begins0=ts0;s1=ts1;m0=tm0;m1=tm1;h0=th0;h1=th1;co=cc; P2: process(clk0,lock,en) begin if en=1then-show hour munite second if lock=000 then if clk0event AND clk0=1then if ts1=0101 and ts0=1001then ts1=0000;ts0=0000; elsif ts0=1001then ts0=0000;ts1=ts1+1; else ts0=ts0+1;ts1=ts1; -如果ts0不等于9则ts1保持不变 end if; if ts0=1001and ts1=0101then if tm1=0101and tm0=1001 then tm1=0000;tm0=0000; co1=1;-当59分59秒时产生一个整点小时,输出给整点报时模块 elsif tm0=1001then tm0=0000;tm1=tm1+1;co1=0; else tm0=tm0+1;tm1=tm1;co1=0; end if; end if; if ts0=1001and ts1=0101and tm0=1001and tm1=0101 then if th1=0010AND th0=0011then th1=0000;th0=0000; cc=1; elsif th0=1001then th0=0000;th1=th1+1;cc=0; else th0=th0+1;th1=th1;cc=0; end if; end if; end if; end if; end if; end process P2; end Behavioral;时分秒置数模块- Company: - Engineer: - - Create Date: 20:15:01 01/13/2014 - Design Name: - Module Name: s_m_yuz1 - Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created- Additional Comments: -library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL; - Uncomment the following library declaration if using- arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Uncomment the following library declaration

温馨提示

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

评论

0/150

提交评论