西安交通大学计算机组成原理实验报告_第1页
西安交通大学计算机组成原理实验报告_第2页
西安交通大学计算机组成原理实验报告_第3页
西安交通大学计算机组成原理实验报告_第4页
西安交通大学计算机组成原理实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、西安交通大学计算机组成原理实验报告姓名:*班级:* 学号:*实验一 存储器的访问与实现一、 实验目的1、 理解计算机主存储器的分类及作用;2、 掌握ROM、RAM的读写方法。二、 实验原理存储器按存取方式分,可分为随机存储器和顺序存储器。如果存储器中的任何存储单元的内容都可随机存取,称为随机存储器,计算机中的主存储器都是随机存储器。如果存储器只能按某种顺序存取,则称为顺序存储器,磁带是顺序存储器,磁盘是半顺序存储器,它们的特点是存储容量大,存取速度慢,一般作为外部存储器使用。如果按存储器的读写功能分,有些存储器的内容是固定不变的,即只能读出不能写入,这种存储器称为只读存储器(ROM);既能读出

2、又能写入的存储器,称为随机读写存储器(RAM)。实际上真正的ROM基本上不用了,用的是光可擦除可编程的ROM(EPROM)和电可擦除可编程的ROM(EEPROM)。EEPROM用的越来越多,有取代EPROM之势,比如容量很大的闪存(FLASH)现在用的就很广泛,常说的U盘就是用FLASH做的。按信息的可保存性分,存储器可分为非永久性记忆存储器和永久性记忆存储器。ROM、EPROM、EEPROM都是永久记忆存储器,它们断电后存储内容可保存。RAM则是非永久性记忆存储器,断电后存储器中存储的内容丢失。随机读写存储器类型随机存储器按其元件的类型来分,有双极存储器和MOS存储器两类。在存取速度和价格两

3、方面,双极存储器比MOS存储器高,故双极存储器主要用于高速的小容量存储体系。在MOS存储器中,根据存储信息机构的原理不同,又分为静态随机存储器(SRAM)和动态随机存储器(DRAM)。静态随机存储器采用双稳态触发器来保存信息,只要不断电,信息就不会丢失;动态随机存储器利用记忆电容来保存信息,使用时只有不断地给电容充电才能使信息保持。静态随机存储器的集成度较低,功耗也较大;动态随机存储器的集成度较高,功耗低。现在计算机中,内存容量较大,常由动态随机存储器构成。静态随机存储器静态存储器由存储体、地址译码电路、读写电路和控制电路组成。一个4096×1位的SRAM的结构框图如图6-37所示。

4、图中,A0A11为地址线,用来寻址存储器中的某一个单元。DIN、DOUT为数据线,实现数据的输入、输出。W/R为读写控制信号线,用来实现读写操作控制。/CS为片选信号。图6-37 SRAM结构框图动态随机存储器动态随机存储器(DRAM)和SRAM一样,也是由许多基本存储电路按照行和列来组成的。DRAM是以MOS管栅极和衬底间电容上的电荷来存储信息的。由于MOS管栅极上的电荷会因漏电而泄放,故存储单元中的信息只能保持若干秒,为此DRAM必须附加刷新逻辑电路。另外,DRAM将地址分为行地址和列地址,并分时复用以减少引脚数目。常见的4164芯片即是DRAM。三、 实验要求1、实验设计目标设计一个能够

5、对实验台上的存储器读写的部件,满足以下目标:(1)、一个16位的存储器地址寄存器(MAR)。该寄存器在reset为低电平时清零,在时钟clk的上升沿加1,地址寄存器在超过ox000f后下一个时钟上升沿回到0。一个标志寄存器(flag),在reset为低电平时复位为0,当存储器地址寄存器等于0x000f后,下一个时钟clk的上升沿标志寄存器翻转。(2)、在标志寄存器为0时执行存储器存数功能,从存储器的0单元开始存16个16位数。按动一次单脉冲按钮,存一次数,存的数由内部产生,不由实验台开关输入。(3)、当标志寄存器为1时,执行从存储器的0单元开始的读数功能。按动一次单脉冲按钮,读一次数,一直读1

6、6个数。读出的数据送入一个16位信号R15.0暂存。提示:当需要从存储器读取数据时,首先将"ZZZZZZZZZZZZZZZZ"赋值给数据总线,然后才能读取存储器中的数据。2、顶层设计实体的引脚要求引脚要求对应关系如下:(1) clk对应实验台上的时钟(单脉冲)。(2) reset对应实验台上的CPU复位信号CPU_RST。(3) 存储器地址总线A15.0对应实验台上的指示灯A15A0。(4) 存储器数据总线D15.0对应实验台上的数据指示灯D15D0。(5) 16位信号R15.0对应实验台上的指示灯R15R0。(6) 存储器读写信号FWR对应实验台上的FWR。(7)四、 实

7、验步骤实验台设置成FPGA-CPU附加外部RAM运行模式“011”。该调试模式要能够实现模拟FPGA-CPU对实验台存储器的存数、取数功能。即REGSEL = 0、CLKSEL = 1、FDSEL = 1。使用实验台上的单脉冲,即STEP_CLK短路子短接,短路子RUN_CLK断开。由于当FDSEL=0时,指示灯D15D0显示的是开关SD15SD0的值,因此开关FDSEL必须为1。这种方式除了FPGA-CPU的时钟是单脉冲外,其余都与单片机控制FPGA-CPU调试模式完全一样。将设计在Quartus 下输入,编译后下载到TEC-CA上的FPGA中。首先按实验台上的CPU复位按钮,使存储器地址寄

8、存器复位为0,然后不断观察实验台上的指示灯,察看结果与预想的是否一致。1、 实验思路:2、源代码library IEEE;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity memory isport(reset,clk: in std_logic; -复位、时钟 FWR: out std_logic; -RAM的读写 D: inout std_logic_vector(15 downto 0);-数据A: out std_logic_vector(15

9、downto 0); -地址 R:out std_logic_vector(15 downto 0)- 寄存器 );end memory;architecture behav of memory issignal counter:std_logic_vector(15 downto 0);signal wdata: std_logic_vector(15 downto 0);signal start, flag : std_logic; -开始计数(读写)、结束(状态)beginA <= counter;wdata <= "00000000001" &

10、counter(4 downto 0);- 数据16bit的形成process(reset,clk)begin if reset = '0' thencounter <= x"0000"elsif clk'event and clk = '1' then - 计数if (start = '1') and (counter /= x"000f") then counter <= counter + '1'elsif (start = '1') and (co

11、unter = x"000f") thencounter <= x"0000"end if;end if;end process;process(reset,clk)beginif reset = '0' thenstart <= '0'elsif clk'event and clk = '1' thenstart <= '1'end if;end process;process(reset,counter,clk)beginif reset = '0

12、9; thenflag <= '0'elsif clk'event and clk = '1' thenif counter = x"000f" thenflag <= not flag;end if;end if;end process;process(reset,counter,clk,start,flag,wdata,D)beginif reset = '0' thenFWR <= '1'elsif start = '1' thenif flag = '0

13、' thenD <= wdata;FWR <= clk;elseD <= "ZZZZZZZZZZZZZZZZ"FWR <= '1'R <= D;end if;end if;end process; -增加flag引出信号,观察他的变化。end behav; 五、实验结果及分析仿真结果如下图所示,分为两个阶段,第一个阶段是写入数据阶段,经过16个时钟脉冲后,进入第二个阶段;第二个阶段是读出数据阶段,同样经历16个时钟脉冲,读出的数据首先暂存在一个寄存器中,然后再送入数据总线。六、思考题如果从存储器中读出数据时不首先向数据总

14、线送出"ZZZZZZZZZZZZZZZZ",那么会发生什么问题?答:如果在从存储器中读出数据时不首先向数据总线送出高阻状态,那么读状态和写状态就可能会混淆重叠,从而造成错误。七、 实验心得通过本次实验,我更好地理解了计算机主存储器的分类及作用,同时也更好地了解和掌握了ROM、RAM的读写方法。通过实验,我可以将书本上的理论知识与实际的实验内容及结果结合起来,这让我更好地掌握课堂上学习的知识。不过在实验中也遇到了不少问题,幸运的是,在老师的指导与帮助下,我最终完成了实验,希望以后会有更多的实验机会。实验二 运算器的设计与实现 加法器的设计一、实验目的1、掌握基本的算术运算和逻

15、辑运算的运算规则和实现方法;2、掌握基本运算器的信息传送通路;3、掌握运算器的工作原理,设计并实现具有定点、浮点运算功能的模块。二、实验原理运算器是既能实现算术运算又能完成逻辑运算的部件。算术运算主要包括加减乘除运算,逻辑运算主要包括与、或、非、异或和移位运算。运算器(ALU)通常有两个数据输入端(opr1和opr2),一个数据输出端(result),运算模式控制信号(code)和标志位(cin,flag)等。下图为运算器的逻辑框图:图2-1 运算器运算器包含加法器、减法器、乘法器、与门、或门、非门、异或门和移位器。各组成部件的原理如下所述。(本实验中设计的运算器操作数为8位字长)。加法器 从

16、进位传递时间和门电路的扇入、扇出来考虑,将8位数据分为两组,采取组内并行、组间串行的设计方案。该加法器的设计框图如下所示:图2-2 8位的加法器其中,Gi=opr1(i) and opr2(i) (i=1,7),Gi 为第i位的本地进位,Pi=opr1(i) xor opr2(i)(i=1,7),P(i)为传递条件。4位先行加法器的逻辑图如下所示:图2-3 4位先行加法器逻辑图于是根据逻辑图可以得出4位先行加法器的逻辑表达式如下:Gi = opr1(i-1)opr2(i-1)Pi = opr1(i-1)opr2(i-1)S1 = P1C0C1 = G1 + P1C0 S2 = P2C1 C2

17、= G2 + P2C1 = G2 + P2G1 + P2P1C0 S3 = P3C2 C3 = G3 + P3C2 = G3 + P3 G2 + P3 P2G1 + P3P2P1C0 S4 = P4C3 C4 = G4 + P4C3 = G4 + P4G3 + P4P3G2 + P4P3 P2G1 + P4P3P2P1C0四、实验内容由于时间关系,第二次实验老师要求我们只需要做加法器,所以实验内容主要是设计一个基本的加法器。顶层设计实体的引脚对应关系:(1)运算控制信号set对应实验台上开关SA0;(2)低位向高位的进位或者借位信号cin对应实验台上开关SA1;(3)操作码code2.0对应实

18、验台上开关SA5SA2;(4)第一操作数opr17.0对应于实验台上开关SD7SD0;(5)第二操作数opr2 7.0对应实验台上开关SD15SD8;(6)运算结果result 15.0对应实验台上指示灯A7A0; (7)运算结果标志位flag对应实验台上指示灯 A8。注: 运算器模块框图:运算器(ALU)通常有两个数据输入端(opr1和opr2),一个数据输出端(result),运算模式控制信号(code)和标志位( cin , flag)等。下图为运算器的逻辑框图:图2-1 运算器· 运算器包含加法器(含用先行进位的构成的加法器)、减法器、乘法器、与门、或门、非门、异或门和移位器

19、等及浮点运算模块;运算器模块中也可以加入寄存器组(Register file) · 本实验中设计的运算器操作数可以分别为8/16/32位字长(32位字长运算可以只进行仿真分析)五、实验源代码8位加法器LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY adder8 ISPORT (a : IN std_logic_vector(7 DOWNTO 0);b : IN std_logic_vector(7 DOWNTO 0);cin : IN std_logic;cout : OUT std_logic;sum : OUT std_logic_

20、vector(7 DOWNTO 0);END adder8;ARCHITECTURE ripple OF adder8 ISCOMPONENT fulladderPORT(a, b, CarryIn : INSTD_LOGIC;Sum, CarryOut : OUTSTD_LOGIC);END COMPONENT;SIGNAL carry : std_logic_vector(7 DOWNTO 1);BEGINf0: fulladder PORT MAP (a => a(0), b => b(0),CarryIn => cin, Sum => sum(0), Carry

21、Out => carry(1);f1: fulladder PORT MAP (a => a(1), b => b(1),CarryIn => carry(1), Sum => sum(1), CarryOut => carry(2);f2: fulladder PORT MAP (a => a(2), b => b(2),CarryIn => carry(2), Sum => sum(2), CarryOut => carry(3);f3: fulladder PORT MAP (a => a(3), b => b

22、(3),CarryIn => carry(3), Sum => sum(3), CarryOut => carry(4);f4: fulladder PORT MAP (a => a(4), b => b(4),CarryIn => carry(4), Sum => sum(4), CarryOut => carry(5);f5: fulladder PORT MAP (a => a(5), b => b(5),CarryIn => carry(5), Sum => sum(5), CarryOut => carry

23、(6);f6: fulladder PORT MAP (a => a(6), b => b(6),CarryIn => carry(6), Sum => sum(6), CarryOut => carry(7);f7: fulladder PORT MAP (a => a(7), b => b(7),CarryIn => carry(7), Sum => sum(7), CarryOut => cout);END ripple;六、实验结果加法器设计:第一操作数opr17.0对应于实验台上开关SD7SD0;第二操作数opr2 7.0对

24、应实验台上开关SD15SD8;运算结果result 15.0对应实验台上指示灯A7A0。通过开关SD7SD0表示第一操作数,开关SD15SD8表示第二操作数,相加在指示灯A7A0上即可得到结果。七、实验心得通过这次实验,我对基本的算术运算和逻辑运算的运算规则和实现方法的掌握加深了。除此之外,通过实验,我基本掌握运算器的工作原理,我还学习了如何用运算器实现信息传送通路。这次实验我们主要学习了加法器的设计与实现。起初大家都还不熟悉,所以从一位加法器开始做起,慢慢地熟悉起来之后,可以做到八位了。在此,我很感谢姜老师在实验过程中对我的帮助,因为有老师的帮助我才可以在规定时间里完成实验,并收获了不少知识

25、!实验三 指令译码器(硬连线控制器)的设计与实现一、 实验目的1、理解指令译码器的作用和重要性;2、理解控制器中指令与微操作的关系;3、学习设计指令译码器。二、 实验原理指令译码器是计算机控制器中最重要的部分。所谓组合逻辑控制器就是指指令译码电路是由组合逻辑实现的。组合逻辑控制器又称硬连线控制器,是早期设计计算机的一种方法。这种控制器中的控制信号直接由各种类型的逻辑门和触发器等组合产生。这样,一旦控制部件构成后,除非重新设计和物理上对它重新连线,否则要想增加新的功能是不可能的。结构上的这种缺陷使得硬连线控制器的设计和调试变得非常复杂而且代价很大。所以,硬连线控制器曾一度被微程序控制器所取代。但

26、是随着新一代机器及VLSI技术的发展,这种控制器又得到了重视,如RISC机广泛使用这种控制器。 .图1 组合逻辑控制器的结构方框图图1是组合逻辑控制器的结构方框图。逻辑网络的输入信号来源有三个:(1)指令操作码译码器的输出In;(2)来自时序发生器的节拍电位信号Tk;(3)来自执行部件的反馈信号Bj。逻辑网络的输出信号就是微操作控制信号,用来对执行部件进行控制。组合逻辑控制器的基本原理,可描述为:某一微操作控制信号Cm是指令操作码译码器的输出In、时序信号(节拍电位信号Tk)和状态条件信号Bj的逻辑函数。即Cmf(In,Tk,Bj)用这种方法设计控制器,需要根据每条指令的要求,让节拍电位和时序

27、脉冲有步骤地去控制机器的各有关部分,一步一步地执行指令所规定的微操作,从而在一个指令周期内完成一条指令所规定的全部操作。一般来说,组合逻辑控制器的设计步骤如下。(1)绘制指令流程图为了确定指令执行过程所需的基本步骤,通常是以指令为线索,按指令类型分类,将每条指令归纳成若干微操作,然后根据操作的先后次序画出流程图。(2)安排指令操作时间表指令流程图的进一步具体化,把每一条指令的微操作序列分配到各个机器周期的各个时序节拍信号上。要求尽量多的安排公共操作,避免出现互斥。(3)安排微命令表以指令流程图为依据,表示出在哪个机器周期的哪个节拍有哪些指令要求哪些微命令。(4)进行微操作逻辑综合根据微操作时间

28、表,将执行某一微操作的所有条件(哪条指令、哪个机器周期、哪个节拍和脉冲等)都考虑在内,加以分类组合,列出各微操作产生的逻辑表达式,并加以简化。(5)实现电路根据上面所得逻辑表达式,用逻辑门电路的组合或大规模集成电路来实现。三、实验内容1、设计目标根据提供的指令集(附件1),设计CPU的指令译码器,本实验指令译码器的设计相对简单,因为节拍(t1、t2和t3)信号只在存储器读写时需要对存储器地址分时使用时需要考虑,所以这里暂不考虑节拍脉冲t,也就是说微操作控制信号只是指令操作码In和Bj的函数:Cm = f(In,Bj)式中的In主要代表指令操作码IR15.12,还有辅助操作码(如算术逻辑指令时的

29、IR2.0,我们这里要求只考虑指令操作码IR15.12。Bj代表进位标志C和结果为0标志Z。要求产生的微操作控制信号如下:op_code 控制ALU进行8种运算操作的3位编码。c_z_j_flag 为1表示需要条件转移。lj_instruct 为1表示本条指令是条“JMP ADR”指令。DRWr 为1表示在t3的下降沿将本条指令的执行结果写入目的寄存器。Mem_Write 为1表示本条指令有存储器写操作,存储器的地址是目的寄存器的内容。DW_intruct 为1表示本条指令是双字指令。change_z 为1表示本条指令可能改变z(结果为0)标志。change_c 为1表示本条指令可能改变c(进

30、位)标志。sel_memdata 为1表示本条指令写入目的寄存器的值来自读存储器。2、顶层设计实体的引脚要求引脚要求的对应关系如下:(1)指令IR15.12对应实验台开关SD3SD0进位C对应实验台开关SD4结果为0标志Z对应实验台开关SD5(2)控制信号对应如下:op_code2.0指示灯R2、R1、R0 c_z_j_flag指示灯R3lj_instruct指示灯R4DRWr指示灯R5Mem_Write指示灯R6DW_intruct指示灯R7change_z 指示灯R8change_c指示灯R9sel_memdata 指示灯R10四、实验源程序及注释指令译码器:library ieee;us

31、e ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;-实体的定义部分entity instruction_decoder isport (IRH: in std_logic_vector(3 downto 0); /指令操作码IR15.12c,z: in std_logic; /c表示进位标志,z表示结果为0标志op_code: out std_logic_vector(2 downto 0); /控制ALU进行8种运算操作的3位编码 c_z_j_flag: out std

32、_logic; /为1表示需要操作转移 lj_instruct: out std_logic; /为1表示本条指令是“JMP ADR”指令 DRWr: buffer std_logic; /为1时写DR寄存器 Mem_Write: out std_logic; /为1表示本指令有存储器写操作,存储器的地址是目的寄存器中的内容 DW_intruct: buffer std_logic; /为1表示指令是双字指令 change_z: out std_logic; /为1表示本条指令可能改变Z标志change_c: out std_logic; /为1表示本条指令可能改变C标志sel_memdata

33、: out std_logic /为1时存储器的读出数据作为写入DR的数据 );end instruction_decoder;architecture behav of instruction_decoder issignal zj_instruct, cj_instruct: std_logic;beginsel_memdata <= IRH(3) and IRH(2) and (not IRH(1);-110.开头操作码的指令change_z <= (not IRH(3) and (not IRH(2) or (not IRH(3) and IRH(2) and (not I

34、RH(1) or (not IRH(3) and IRH(2) and IRH(1) and (not IRH(0);/10. 010. 0110开头操作码的指令改变z标志change_c <= (not IRH(3) and (not IRH(2); /00. 开头操作码的指令改变c标志c_z_j_flag <= (zj_instruct and (not z) or (cj_instruct and (not c);/条件转移DRWr_proc: process(IRH)beginif IRH(3) = '0' then /算术逻辑指令,000,001,010,

35、011,DRWr为1,将结果存入目的寄存器 DRWr <= '1'elsif IRH(2) = '1' and IRH(1) = '0' then /MVRD DR,DATA;LDR DR,SRDRWr <= '1' /110,111,DRWr为1,将结果存入目的寄存器elseDRWr <= '0'end if;end process;M_instruct:process(IRH)begincase IRH(3 downto 0) iswhen "1000" | "1

36、100" => -jmp addr;mvrd dr,dataMem_Write <= '0'DW_intruct <= '1'when "1110" => - str sr,drMem_Write <= '1'DW_intruct <= '0'when others =>Mem_Write <= '0'DW_intruct <= '0'end case;end process;ALUOP_CODE_PROC:PROC

37、ESS(IRH) /算术逻辑单元begin if IRH(3) = '0' then -000,001,010,011op_code <= IRH(2 downto 0);elseop_code <= "111"end if;end process;Jinstruct_PROC:process(IRH)begin case IRH(3 downto 0) iswhen "1000" => -jmp adr /功能:PC<-ADR 无条件转移zj_instruct <= '0'cj_instru

38、ct <= '0'lj_instruct <= '1'when "1001" => -jnc addr /条件转移zj_instruct <= '0'cj_instruct <= '1'lj_instruct <= '0'when "1010" => -jnz addr zj_instruct <= '1'cj_instruct <= '0'lj_instruct <= '0&

39、#39;when others =>zj_instruct <= '0'cj_instruct <= '0'lj_instruct <= '0'end case;end process;end behav;五、实验步骤(可选两种设备操作)1、使用TEC-CA-I实验箱的操作:(1)实验台设置成FPGA-CPU独立调试模式REGSEL = 0、CLKSEL = 1、FDSEL = 0。使用实验台上的单脉冲,即STEP_CLK短路子短接,短路子RUN_CLK断开。(2)将设计在Quartus 下输入,编译后下载到TEC-CA上

40、的FPGA中。(3)拨动实验台上的开关SD5SD0,改变IR15.12、进位标志C和结果为0标志Z,观察指示灯R10-R0显示的控制信号,并填写下表2、使用XJECA实验板的操作:(1)输入信号(指令操作码):IR15.12、OP2.0(2)输出信号:指示灯显示微操作信号(下表的后8项)填写下表。表一 指令译码器实验(C=0且Z=0)指令IR15.12OP2.0c_z_j_flaglj_instructDRWrMem_WriteDW_intructchange_zchange_csel_memdataADD DR,SR000000000100110INC DR000110000100110SU

41、B DR,SR001001000100110DEC DR001111000100110AND DR,SR010000100100100OR DR,SR010110100100100NOT DR011001100100100MOV DR,SR011111100100000JMP ADR100011101000000JNC ADR100111110000000JNZ ADR101011110000000MVRD DR,DATA110011100100000LDR DR,SR110111100100001STR SR,DR111011100010000表二 指令译码器实验(C=0且Z=1或者C=1且

42、Z=0或者C=1且Z=1)指令IR15.12OP2.0c_z_j_flaglj_instructDRWrMem_WriteDW_intructchange_zchange_csel_memdataADD DR,SR000000000100110INC DR000100100100110SUB DR,SR001001000100110DEC DR001101100100110AND DR,SR010010000100100OR DR,SR010110100100100NOT DR011011000100100MOV DR,SR110011100101001JMP ADR100011101001000JNC ADR100111100000000JNZ ADR101011100000000MVRD DR,DATA110011100101001LDR DR,SR110111100100001STR SR,DR111011100010000由上表可知,C和Z只影响与标志位有关的指令的结果。其中指令JNC ADR和JNZ ADR有条件转移,所以当C和Z的取值变化时,会影响实验结果。对于其他指令,C和Z的取值发生变化时结果不变。对于JNC

温馨提示

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

评论

0/150

提交评论