基于verilog 乒乓球游戏机课程设计报告

合集下载

智能乒乓球游戏机控制系统的设计

智能乒乓球游戏机控制系统的设计

四、确定输入和输出变量
• 输入变量:clk2hz指一个2Hz的时钟输入, rst异步复位, k_a和k_b是比赛双方按键。 • 输出变量:speaker是蜂鸣器led8s是一排8 个发光二极管代表球场, led7s1~4是4个显 示分数的数码管, led7s5是显示发球权的数 码管。
五、确定输入状态
• 考虑到游戏的复杂度,采用状态机来实现这些模式转换。 用到8个状态,如下所示: • 状态功能S0复位状态,也是判断发球权的状态S1甲方发 球S2球从甲方向乙方右移,若此时乙方接球就给甲方加一 分,并将球权给甲方S3开始判断乙方是否在0.5S内接球 S4乙方发球S5球从乙方向甲方左移,若此时甲方接球就给 乙方加一分,并将球权给乙方S6开始判断甲方是否在 0.5S内接球S7用于接球后判断发球
• • • • • • • • • • • • • • • • • •
s0: begin
示发球权可以开始判断了;
led7s5<=7'b0111111;//第五个数码管显示数字0,表
led8s<=7'b00000000; score_a<=0; score_b<=0;//给甲乙双方的分数复位; if(k_a) begin speaker<=1'b1;//因为按 键k_a要持续按着保持高电位'1',蜂鸣器鸣叫是提示可以松手了; state<=s7; end else if(k_b) begin speaker<=1'b1; state<=s7;
• always @(posedge clk2hz) begin • case(state) • s7: begin • if(k_a) • state<=s1; //甲发球; • else if(k_b) • state<=s4;//乙发球; • else if(speaker) • speaker=1'b0; • else • speaker=1'b0; • end

基于FPGA的乒乓球游戏机控制器设计毕业设计(论文)

基于FPGA的乒乓球游戏机控制器设计毕业设计(论文)

基于FPGA的乒乓球游戏机控制器设计本科生毕业设计(论文) 第I页基于FPGA的乒乓球游戏机设计摘要Verilog是甚高速集成电路硬件描述语言。

目前,verilog已成为许多设计自动化工具普遍采用的标准化硬件描述语言。

verilog语言功能性强,覆盖面广,灵活性高,具有很好的实用性。

本文设计一个基于verilog的乒乓游戏机,乒乓游戏机由状态机、记分器、译码显示器与按键去抖等部分所组成。

通过对各部分编写verilog程序,然后进行编译、仿真、逻辑综合、逻辑适配,最后进行编程下载,并且通过EDA实验箱的验证,实现乒乓游戏机的基本功能。

关键词:verilog;EDA;乒乓游戏机AbstractVERILOG is high speed IC hardware describe language. VERILOG already becomes the language of normalizing hardware describe that a lot of design automation implement adopts commonly at present. The VERILOG language function is strong. The face covering is broad, flexibility high and have the very good pragmatism. One main body of the book is designed waits for what part group is accomplished owing to that VERILOG table tennis game machine, table tennis game machine go to tremble from state machine, marker, decoding display and button. By compiling and composing VERILOG procedure to every part, then compiling, simulate, logic synthesis, logic fitting. Carry out programming time be loaded with finally. Then verification and by GW48 type EDA experiment box, realize table tennis game machine’s fundamental function.Key words: VERILOG:EDA; Table tennis game machine目录1 绪论 (1)1.1课题的背景和意义 (1)1.2国内外研究现状 (1)1.3本论文的主要内容 (2)2 Quartus II与Modelsim 软件简介 (3)2.1Quartus II 简介 (3)2.2Modelsim简介 (4)3 方案选择与系统总体设计 (6)3.1整体方案的选择 (6)3.1.1设计任务与要求 (6)3.1.2设计的原理和方法 (7)3.1.3芯片的选择 (8)3.2系统总体设计 (8)3.2.1乒乓游戏机的组成示意图 (8)3.2.2本系统的逻辑分框图 (9)4 系统各部分电路的详细设计 (10)4.1七段数码管显示译码电路 (10)4.2按键去抖电路 (11)4.3状态机设计 (11)4.3.1状态机的6种状态及状态转移 (11)4.3.2状态机/球台控制电路 (13)4.4记分器设计 (15)5 系统的整体综合与仿真 (16)5.1顶层文件设计 (16)5.2系统程序框图: (17)5.3整个系统的综合与仿真 (18)5.3.1 电路符号 (18)5.3.2 系统仿真 (18)6 系统的运行与仿真过程 (20)6.1系统程序的编译 (20)6.2 系统的仿真 (22)结论 (24)谢辞 (25)参考文献 (26)附录 (27)1 绪论1.1课题的背景和意义随着人们的物质生活越来越好了,人们开始对娱乐生活有了新的要求,特别是进入新世纪以来各种电子产品的不断出现,更是促进了我国电子行业的发展,为此,能够推出一款新的游戏产品是非常有前景的,本设计正是考虑了当前的社会现状,想设计出一款“乒乓球”游戏机,以往可能有过这方面的设计出现过,但是那些大多数都是采用的单片机等来实现的,本设计将采用最新的FPGA技术对“乒乓球”游戏机进行实现。

基于某Verilog地乒乓球游戏电路设计

基于某Verilog地乒乓球游戏电路设计

大学EDA课程设计:学号:班级:专业:学院:目录0 引言............................................................................................................................. - 1 -1 设计要求..................................................................................................................... -2 -2 设计思路..................................................................................................................... - 2 -3 Verilog程序 ................................................................................................................ - 3 -4 功能仿真..................................................................................................................... - 3 -5 总结........................................................................................................................... - 11 -致...............................................................................................................................- 11 -参考文献.......................................................................................................................- 11 -基于Verilog的乒乓球游戏电路设计0 引言可编程器件的广泛应用,为数字系统的设计带来了极大的灵活性。

最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc

最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc

最新基于VHDL的乒乓球游戏机设计--课程设计说明书doc课程设计说明书设计目的:本课程设计的目的是设计一个基于VHDL的乒乓球游戏机。

通过该设计,可以提高学生对VHDL语言的应用能力,理解数字电路的设计原理以及掌握乒乓球游戏机的相关设计技术。

设计原理:乒乓球游戏机主要由显示模块、控制模块和逻辑模块组成。

其中,显示模块负责将乒乓球游戏界面实时显示在屏幕上,控制模块负责接收游戏操作输入并进行相应的操作控制,逻辑模块则负责处理游戏规则和判断输赢。

设计步骤:1.确定显示模块的功能:显示游戏界面包括乒乓球、球拍和边界等元素,并实现实时更新。

2.设计乒乓球的运动控制逻辑:根据乒乓球的速度和方向,通过控制模块实现乒乓球的运动控制。

3.实现球拍的控制逻辑:通过控制模块,实现对球拍的移动控制,以便玩家能够操控球拍进行游戏。

4.设计游戏规则判断逻辑:根据乒乓球与球拍的碰撞判断,判断球拍的位置和乒乓球的运动方向,并根据规则进行相应的判断判定输赢。

5.进行功能测试和调试:对设计的乒乓球游戏机进行功能测试和调试,确保其能够正常运行。

设计要求:1.采用VHDL语言进行设计,能够熟练使用VHDL语言进行数字电路的设计与实现。

2.设计的乒乓球游戏机能够实现显示游戏界面和实时更新,能够进行游戏操作并判断输赢。

3.设计的乒乓球游戏机的控制逻辑和判断逻辑要简洁明了,能够确保游戏的流畅性和真实性。

设计方案:1.显示模块:使用VGA显示模块,将游戏界面实时显示在屏幕上,包括乒乓球、球拍和边界等元素。

2.控制模块:使用按键扫描模块获取游戏操作输入,并根据输入进行相应的操作控制,控制乒乓球运动和球拍移动。

3.逻辑模块:设计碰撞判断逻辑,判断乒乓球与球拍的碰撞情况,并根据碰撞情况判断球拍的位置和乒乓球的运动方向,以及根据规则进行输赢的判断。

实现计划:1.第一周:完成功能分析和设计方案的制定,明确设计的总体思路和目标。

2.第二周:完成显示模块的设计和测试,确保游戏界面能够实时显示在屏幕上。

基于VHDL的乒乓球设计

基于VHDL的乒乓球设计

基于VHDL的乒乓球设计乒乓球是一种非常受欢迎的体育项目,可以单独进行,也可以进行团体比赛。

这篇文章将介绍使用VHDL(VHSIC硬件描述语言)设计一个基于FPGA(可编程逻辑器件)的乒乓球游戏。

在设计之前,我们需要了解游戏的基本规则和要求。

乒乓球游戏是一个简单的游戏,需要两个玩家和一个球。

游戏开始时,球从一个玩家开始发球,并通过轮流击球来继续游戏。

每个玩家需要使用球拍击打球,并试图将球打过对方的网,并使对方无法接到球。

如果一方无法接到球,则对手得分,并且游戏继续进行,直到达到一定分数或者决定胜负。

在设计中,我们需要考虑以下几个方面:1.游戏界面:我们需要设计一个显示器来显示游戏界面,包括玩家1和玩家2的得分、游戏中间的网、以及球的位置。

我们可以使用FPGA内部的RAM来存储得分,并使用VHDL代码来控制显示器的显示。

2.玩家控制:每个玩家需要使用一个球拍来击打球。

我们可以设计两个按钮来控制球拍的上下移动,通过读取按钮的状态来实现控制。

3.球的移动:球需要在游戏界面中移动,并与球拍和网进行碰撞。

我们可以使用VHDL代码来控制球的移动,检测碰撞,并确定球的反弹方向。

4.得分系统:当球无法被对方接到时,对手将得分。

我们可以设计一个计数器来记录每个玩家的得分,并在达到一定分数时决定胜负。

基于上述要求,我们可以开始设计基于VHDL的乒乓球游戏。

首先,我们需要确定FPGA的架构,包括使用的逻辑单元、存储单元和输入/输出接口。

然后,我们可以使用VHDL编写对应的模块,包括游戏界面显示、玩家控制、球的移动和得分系统。

对于游戏界面的显示,我们可以使用两个数码管来显示玩家1和玩家2的得分,并使用一块LCD屏幕来显示游戏界面。

在VHDL代码中,我们可以使用RAM来存储得分,并使用计数器来更新得分。

然后,我们可以使用VHDL代码来控制LCD屏幕的显示,包括绘制游戏界面和更新球的位置。

对于玩家控制,我们可以使用两个按钮来控制球拍的移动。

基于VHDL的乒乓球游戏机设计

基于VHDL的乒乓球游戏机设计

基于VHDL的乒乓球游戏机设计乒乓球游戏机是一种基于硬件设计的电子游戏机,它模拟了乒乓球比赛的规则和玩法。

本文将介绍一个基于VHDL(Very High Speed Integrated Circuit Hardware Description Language)的乒乓球游戏机设计。

首先,我们需要确定游戏机的硬件组成和功能。

一个基本的乒乓球游戏机包括以下组件:1.显示屏:用于显示游戏画面和分数。

2.键盘:用于输入玩家控制信号,例如乒乓球拍的移动方向和发球。

3.乒乓球拍:控制球的移动方向。

4.乒乓球:游戏的主要元素,通过球拍反弹到对手的场地。

5.游戏逻辑控制:用于判断球拍和球的移动逻辑,以及计分和游戏结束的判定。

在VHDL中,我们可以将这些组件抽象为各种信号和实体(entity)。

下面是一个乒乓球游戏机的VHDL设计示例:```vhdl--乒乓球游戏机VHDL设计entity PongGame isportclk : in std_logic; -- 时钟信号reset : in std_logic; -- 复位信号ball_x : out std_logic_vector(7 downto 0); -- 球的X坐标ball_y : out std_logic_vector(7 downto 0); -- 球的Y坐标paddle_left_y : in std_logic_vector(7 downto 0); -- 左边乒乓球拍的Y坐标paddle_right_y : in std_logic_vector(7 downto 0); -- 右边乒乓球拍的Y坐标score_left : out std_logic_vector(7 downto 0); -- 左边玩家的分数score_right : out std_logic_vector(7 downto 0) -- 右边玩家的分数end entity PongGame;architecture rtl of PongGame is--在这里定义各种信号和内部变量begin--在这里编写游戏逻辑和硬件连接end architecture rtl;```在architecture部分,我们可以编写游戏逻辑和硬件连接的代码。

基于FPGA乒乓球游戏机Verilog设计

基于FPGA乒乓球游戏机Verilog设计

题目基于FPGA乒乓球游戏机Verilog设计学院通信工程专业班级通信081班学生姓名大彬哥指导教师大力会2013年6月12日摘要本文使用FPGA 芯片来模拟实际的乒乓球游戏。

本设计是基于Altera 公司的FPGA Cyclone II 芯片EP2C5T144C8 的基础上实现,运用Verilog HDL 语言编程,在Quartus II 软件上进行编译、仿真,最终在开发板上成功实现下载和调试关键词:编译仿真AbstractThis paper uses the FPGA chip to simulate the actual table tennis game. The design is based on Altera company Implementation of FPGA Cyclone based on II chip EP2C5T144C8, using Verilog HDL programming language, compile, simulation in Quartus IIsoftware, finally successfully in the development board download and debugKeywords: Compile;Simulation目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 概述 (1)1.2Verilog 语言介绍 (1)1.2.1 Verilog 语言的用途 (2)1.2.2 Verilog 的历史 (2)1.2.3 Verilog 模块 (2)1.3 本文研究的意义 (3)第2章Verilog的基本理论 (4)2.1 Verilog模块的定义 (4)2.2Verilog模块的组成 (4)2.3 EP2C5T144C8芯片简介 (5)2.3.1 EP2C8开发板功能 (5)2.3.2开发板功能描述 (6)2.3.3EP2C5T144C8芯片的引脚图 (6)2.4 Verilog硬件描述语言的主要能力 (6)第3章乒乓球游戏机的软件设计 (8)3.1 乒乓球游戏机系统组成 (8)3.1.2功能模块设计 (8)3.2 发球权控制器 (9)3.3乒乓球位置控制 (10)3.3.1基于FPGA乒乓球比赛游戏机顶层原理图 (12)结论 (13)参考文献 (14)附录 (15)第1章绪论1.1 概述随着低复杂度FPGA器件成本的不断下降,具有灵活性和及时面市优势的FPGA与ASIC相比更有竞争性,在数字消费市场上的应用也急剧增加。

基于FPGA的乒乓球游戏机控制器设计

基于FPGA的乒乓球游戏机控制器设计

基于FPGA的乒乓球游戏机设计摘要Verilog是甚高速集成电路硬件描述语言。

目前,verilog已成为许多设计自动化工具普遍采用的标准化硬件描述语言。

verilog语言功能性强,覆盖面广,灵活性高,具有很好的实用性。

本文设计一个基于verilog的乒乓游戏机,乒乓游戏机由状态机、记分器、译码显示器与按键去抖等部分所组成。

通过对各部分编写verilog程序,然后进行编译、仿真、逻辑综合、逻辑适配,最后进行编程下载,并且通过EDA实验箱的验证,实现乒乓游戏机的基本功能。

关键词:verilog;EDA;乒乓游戏机AbstractVERILOG is high speed IC hardware describe language.VERILOG already becomes the language of normalizing hardware describe that a lot of design automation implement adopts commonly at present.The VERILOG language function is strong.The face covering is broad,flexibility high and have the very good pragmatism.One main body of the book is designed waits for what part group is accomplished owing to that VERILOG table tennis game machine,table tennis game machine go to tremble from state machine,marker,decoding display and button.By compiling and composing VERILOG procedure to every part,then compiling, simulate,logic synthesis,logic fitting.Carry out programming time be loaded with finally.Then verification and by GW48type EDA experiment box,realize table tennis game machine’s fundamental function.Key words:VERILOG:EDA;Table tennis game machine目录1绪论 (1)1.1课题的背景和意义 (1)1.2国内外研究现状 (1)1.3本论文的主要内容 (2)2Quartus II与Modelsim软件简介 (3)2.1Quartus II简介 (3)2.2Modelsim简介 (4)3方案选择与系统总体设计 (6)3.1整体方案的选择 (6)3.1.1设计任务与要求 (6)3.1.2设计的原理和方法 (7)3.1.3芯片的选择 (8)3.2系统总体设计 (8)3.2.1乒乓游戏机的组成示意图 (8)3.2.2本系统的逻辑分框图 (9)4系统各部分电路的详细设计 (10)4.1七段数码管显示译码电路 (10)4.2按键去抖电路 (11)4.3状态机设计 (11)4.3.1状态机的6种状态及状态转移 (11)4.3.2状态机/球台控制电路 (13)4.4记分器设计 (15)5系统的整体综合与仿真 (16)5.1顶层文件设计 (16)5.2系统程序框图: (17)5.3整个系统的综合与仿真 (18)5.3.1电路符号 (18)5.3.2系统仿真 (18)6系统的运行与仿真过程 (20)6.1系统程序的编译 (20)6.2系统的仿真 (22)结论 (24)谢辞 (25)参考文献 (26)附录 (27)1绪论1.1课题的背景和意义随着人们的物质生活越来越好了,人们开始对娱乐生活有了新的要求,特别是进入新世纪以来各种电子产品的不断出现,更是促进了我国电子行业的发展,为此,能够推出一款新的游戏产品是非常有前景的,本设计正是考虑了当前的社会现状,想设计出一款“乒乓球”游戏机,以往可能有过这方面的设计出现过,但是那些大多数都是采用的单片机等来实现的,本设计将采用最新的FPGA技术对“乒乓球”游戏机进行实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

长沙学院EDA课程设计说明书题目乒乓球游戏电路设计系 (部)专业(班级)姓名学号指导教师起止日期2008电子信息工程专业课程设计任务书系(部):电子与通信工程系专业:电子信息工程长沙学院课程设计鉴定表目录摘要:............................................................................................................................................................ - 6 - 1.设计要求.................................................................................................................................................. - 6 - 2.设计方案...................................................................................................................................................... - 6 -2.1乒乓球游戏机系统组成................................................................................................................... - 6 -2.2 功能模块设计.................................................................................................................................. - 6 -2.2.1 分频模块.............................................................................................................................. - 6 -2.2.2 按键消抖模块...................................................................................................................... - 7 -2.2.3 比赛规则控制(含发球控制器、乒乓球控制器、计分器) .......................................... - 9 -2.3顶层原理图...................................................................................................................................... - 11 -2.4 波形仿真........................................................................................................................................ - 11 -3.心得体会.................................................................................................................................................... - 12 -4.参考文献.................................................................................................................................................... - 12 -乒乓球游戏电路设计摘要:本设计使用FPGA 芯片来模拟实际的乒乓球游戏。

本设计是基于Altera 公司的FPGA Cyclone 芯片EP1C20F324C8 的基础上实现,运用Verilog HDL 语言编程,在Quartus II 软件上进行编译、仿真,最终在开发板上成功实现下载和调试。

关键字:乒乓球游戏FPGA Verilog HDL1.设计要求1.1一个乒乓球游戏电路,能实现基本的乒乓球比赛规则。

1.2 要求使用数码管显示比赛双方的代号及得分,比赛采用21分制。

比赛结束时8位LED灯同时闪烁5秒。

1.3 拓展要求,要求增加局分显示,每一局比赛结束后局分自动增加,比分清零。

2.设计方案2.1乒乓球游戏机系统组成乒乓球比赛游戏机的组成如图1 所示。

A、B方各持一按键进行接发球操作,当乒乓球移动到最靠近己端,即最靠近己方的数码管发光期间,及时按下了按键,则接发球成功,提前按下或按下不及时则接、发球失败,对方得1分。

图1 基于Fpga乒乓球游戏机组成框图2.2 功能模块设计2.2.1 分频模块将50Mhz频率分成2hz程序://-----------------------------2Hz分频-------------------------always @(posedge clk50M)beginif(cnt==24'd1*******)beginclk2hz=~clk2hz;cnt<=0;endelsecnt<=cnt+1;end2.2.2 按键消抖模块程序:module key_debounce(input i_clk,input [3:0] i_key, // 按下为0,松开为1 output reg [3:0] o_key_val // 键值);//++++++++++++++++++++++++++++++++++++++reg [3:0] key_samp1, key_samp1_locked;// 将i_key采集至key_samp1always @ (posedge i_clk)beginkey_samp1 <= i_key;end// 将key_samp1锁存至key_samp1_lockedalways @ (posedge i_clk)beginkey_samp1_locked <= key_samp1;end//++++++++++++++++++++++++++++++++++++++wire [3:0] key_changed1;// 当key_samp1由1变为0时//--------------------------------------reg [19:0] cnt;// 一旦有按键按下,cnt立即被清零always @ (posedge i_clk)beginif(key_changed1)cnt <= 20'h0;elsecnt <= cnt + 1'b1;end//--------------------------------------reg [3:0] key_samp2, key_samp2_locked;// 只有当按键不变化(不抖动),且维持20ms以上时// 才将i_key采集至key_samp2always @ (posedge i_clk)beginif(cnt == 20'hF_FFFF) // 0xFFFFF/50M = 20.9715ms key_samp2 <= i_key;end// 将key_samp2锁存至key_samp2_lockedalways @ (posedge i_clk)beginkey_samp2_locked <= key_samp2;end//--------------------------------------wire [3:0] key_changed2;// 当key_samp2由1变为0时//--------------------------------------// 每次按键稳定后,都将键值取反always @ (posedge i_clk)beginif(key_changed2[0])o_key_val[0] <= ~o_key_val[0];if(key_changed2[1])o_key_val[1] <= ~o_key_val[1];if(key_changed2[2])o_key_val[2] <= ~o_key_val[2];if(key_changed2[3])o_key_val[3] <= ~o_key_val[3];end//--------------------------------------endmodule2.2.3 比赛规则控制(含发球控制器、乒乓球控制器、计分器)程序://----------------------比赛规则------------------------------always @(posedge clk2hz)beginif(rst)begin a_score<=0;b_score<=0;a_jufen<=0;b_jufen<=0;a<=0;b<=0;led_1<=8'b11111111; end elsebeginif(!a&&!b&&led_ctrl[0]) //如果a发球begin a<=1;led_1<=8'b01111111; end //a的控制位置1begin b<=1;led_1<=8'b11111110; end //b的控制位置1else if(a&&!b) //球从A向B移动beginif(led_1>8'b00011111) //如果没到球网B击球则A加分beginif(led_ctrl[3])begina_score<=a_score+1;a<=0;b<=0;led_1<=8'b11111111;endelsebegin led_1[7:0]<={1'b1,led_1[7:1]}; end //右移endelse if(led_1==8'b11111111) //如果B一直没有接球则A加分begin a_score<=a_score+1;a<=0;b<=0; endelsebeginif(led_ctrl[3]) //如果B击球成功,则B的控制位置1,A的控制位清零 begin a<=0;b<=1; endelsebegin led_1[7:0]<={1'b1,led_1[7:1]};endendendelse if(b&&!a) //球从B向A移动beginif(led_1>8'b11110000&&led_1!=8'b11111111)beginif(led_ctrl[1]) //如果没到球网A击球则B加分beginb_score<=b_score+1;a<=0;b<=0;led_1<=8'b11111111;endelseendelse if(led_1==8'b11111111) //如果A一直没接球则B加分begin b_score<=b_score+1;a<=0;b<=0; endelsebeginif(led_ctrl[1]) //如果A击球成功,则A的控制位置1,B的控制位清零begin a<=1;b<=0; endelsebegin led_1[7:0]<={led_1[6:0],1'b1}; endendendendled<=led_1;if(a_score==5'b10101&&b_score<5'b10101) begin a_score<=0;b_score<=0;a_jufen<=a_jufen+1;a<=0;b<=0;led_1<=8'b11111111; endif(b_score==5'b10101&&a_score<5'b10101) begin a_score<=0;b_score<=0;b_jufen<=b_jufen+1;a<=0;b<=0;led_1<=8'b11111111; endend2.3顶层原理图2.4 波形仿真2.4.1 A方发球B方不接球2.4.2 A方发球B提前接球犯规2.4.3 B方发球A不接球2.4.4 B方发球A提前接球犯规2.4.5 AB僵持球3.心得体会通过这次课程设计,我进一步熟悉了verilog语言的结构,语言规则和语言类型。

相关文档
最新文档