FPGA課程設計報告_第1頁
FPGA課程設計報告_第2頁
FPGA課程設計報告_第3頁
FPGA課程設計報告_第4頁
FPGA課程設計報告_第5頁
已閱讀5頁,還剩28頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上精選優質文檔-傾情為你奉上專心-專注-專業專心-專注-專業精選優質文檔-傾情為你奉上專心-專注-專業課程設計開課學期: 2014年2015年下學期 課程名稱: FPGA課程設計 學 院: 信息科學與工程學院 專 業: 集成電路設計與集成系統 班 級: 集成1201班 學 號: 20121221077 姓 名: 劉 蔚 任課教師: 孫 濤 2015 年 7 月 21 日基于FPGA的數字鐘設計摘要 本文介紹一種利用現場可編程邏輯器件FPGA產生多功能數字鐘的設計方案。數字鐘是采用數字電路實現對時、分、秒數字顯示的計時裝置,是人們日常生活中不可少的必需品。本設計采用EDA

2、技術,以硬件描述語言Verilog為系統邏輯描述手段設計文件,在Quartus II工具軟件環境下,由各個基本模塊共同構建了一個基于FPGA的數字鐘。系統由時鐘模塊、控制模塊、計時模塊、數據譯碼模塊、顯示以及報時模塊組成。經編譯和仿真所設計的程序,在可編程邏輯器件上下載驗證。開發板采用5CSEMA5F31C6N。本次設計的多功能數字鐘,具有時、分、秒的數碼管顯示功能,以24小時循環計數,具有整點報時功能,并有由按鍵輸入進行數字鐘的校時、清零、啟停功能。 關鍵詞:可編程邏輯器件 FPGA Verilog 數字鐘 EDA技術AbstractThis paper introduces a kind

3、of based on field programmable logic device FPGA design of multi-function digital clock, the digital clock is used in digital circuits, and seconds digital display timing device is in peoples daily life necessities.This design using EDA technology, hardware description language Verilog logic system

4、description method of design documents, in the Quartus II software environment, by all the basic modules together to build a a FPGA based digital clock.System consists of the clock module, control module, time module, data decoding module, display and broadcast module composition. Program after comp

5、ilation and simulation design, programmable logic device to download verification. Development board using the multi-function digital clock 5CSEMA5F31C6N. this design, with time, points, the second digital tube display, to a 24-hour cycle count, with the whole point timekeeping function and input by

6、 the key of the school of digital clock, clear, open and stop function. Key words: programmable logic device FPGA Verilog Digital cloc EDA Technology目 錄TOC o 1-3 h u 前言現代社會的標志之一就是信息產品的廣泛使用,而且是產品的性能越來越強,復雜程度越來越高,更新步伐越來越快。支撐信息電子產品高速發展的基礎就是微電子制造工藝水平的提高和電子產品設計開發技術的發展。前者以微細加工技術為代表,而后者的代表就是電子設計自動化(electro

7、nicdesignautomatic,EDA)技術。本設計采用的Verilog是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統行為級、寄存器傳輸級和邏輯門級三個不同層次的設計;支持結構、數據流、行為三種描述形式的混合描述、覆蓋面廣、抽象能力強,因此在實際應用中越來越廣泛。ASIC是專用的系統集成電路,是一種帶有邏輯處理的加速處理器。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設計開發周期短、設計制造成本低、開發工具先進、標準產品無需測試、質量穩定以及可實時在線檢測等優點。在控制系統中,鍵盤是常用的人機交換接口,當所設置的功能鍵或數字鍵按下的時候,系統應該完成該鍵所

8、設置的功能。因此,鍵信息輸入是與軟件結構密切相關的過程。根據鍵盤的結構不同,采用不同的編碼方法。但無論有無編碼以及采用什么樣的編碼,最后都要轉換成為相應的鍵值,以實現按鍵功能程序的轉移。鐘表的數字化給人們生產生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、定時啟閉電路、定時開關烘箱、通斷動力設備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數字化為基礎的。因此,研究數字鐘及擴大其應用,有著非常現實的意義。 多功能數字鐘概述1.1 數字鐘的構成數字鐘實際上是一個對標準頻率(1HZ)進行計數的計數電路。由于計數的起始時間不可能與標準時間(如北京時間)一致,故需要在

9、電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩定。通常使用石英晶體振蕩器電路構成數字鐘。圖3-1所示為數字鐘的一般構成框圖。主要包括時間基準電路、計數器電路、控制電路、譯碼和顯示電路。其中的控制邏輯電路是比較靈活多樣的,不斷完善它可以增強數字鐘的功能。圖1.1-1數字鐘的一般組成框圖1.2 多功能數字鐘的基本原理通過分析多功能數字鐘的設計要求和所要實現的功能,應用層次化方法設計出數字鐘應由計時模塊、分頻脈沖模塊、譯碼顯示模塊、校時校分和清零模塊、報時模塊等幾個模塊組成,其原理框圖如下圖1.2-1所示:圖1.2-1 數字鐘的原理圖1.3 計時電路通過分析數字鐘的功能,知道數字鐘計時

10、周期是24小時,因此必須設置模24的小時計數器,兩個模為60的計數器實現分和秒的計數,三個計數器之間構成進為關系,即秒計數器為分計數器提供計數脈沖信號,分計數器為時計數器提供計數脈沖信號。另外,如果想要數字鐘還可以顯示星期的話,還應添加一個模7的星期計數器,由時計數器提供計數脈沖信號。從全局設計考慮計時器應具有使能端和異步清零端。多功能數字鐘應該具有的功能:顯示時分秒。整個電子鐘的工作應該是在1Hz信號的作用下進行,這樣每來一個時鐘信號,秒增加1秒,當秒從59秒跳轉到00秒時,分鐘增加1分,同時當分鐘從59分跳轉到00分時,小時增加1小時,小時的范圍是從023時。復位后全部顯示000000。在

11、設計中為了顯示的方便,分鐘和秒鐘(顯示的范圍都是從0059),小時(0023)的十位和個位都應該采用十進制計數器。圖1.3-1總體結構1.4 異步清零電路為實現異步清零功能,可以將異步清零開關KK3分別和各個計數器的清零信號的取反相或非后再接給清零端。這樣,當KK3關閉(低電平)時,計數器正常計數;當開關KK3開啟(高電平)時,計數器全部異步清零。1.5 校時、校分功能電路數字鐘的校時和校分功能原理相同,通過開關KK1、KK2控制工作狀態。當KK1打到低電平、KK2打到低電平時,各計數器的ENT端接的都是正常計數信號,ENP端都是高電平,各個計數器均正常計數;當KK1打到高電平、KK2打到低電

12、平時,分個計數器的ENP端接的是KK2的非(高電平),進位信號正常送入分十位計數器的ENT端,分計數器快速校分,而由于秒計數器和時計數器的個位的ENP端接的是KK1的非,所以秒計數器和時計數器被保持;當KK1打到低電平、KK2打到高電平時,正常進位信號被阻塞,分計數器可以不接受秒計數器的進位信號控制,校時信號便被送入CP端,時計數器可以進行快速校時。以上3部分功能可放在同一模塊中實現,電路圖如1.5-1所示:圖1.5-1 報時電路仿真結果如下圖1.3所示:圖1.3 報時電路的仿真第二章 FPGA簡介2.1 現場可編程邏輯門陣列FPGAFPGA(現場可編程門陣列)與CPLD(復雜可編程邏輯器件)

13、都是可編程邏輯器件,它們是在PAL、GAL等邏輯器件的基礎之上發展起來的。但FPGA/CPLD的規模較大,非常適合于對時序、組合等邏輯電路應用場合,它可以替代幾十甚至上百塊通用IC芯片。高速和高可靠是FPGA最明顯的特點,當今的該類可編程器件,其最高工作頻率可達百兆級,其時鐘延遲可達納秒級,結合其并行工作方式,在超高速應用領域和實時測控方面有非常廣闊的應用前景。FPGA的設計是基于查找表來實現的。查找表就是實現將輸入信號的各種組合功能以一定的次序寫入RAM中,然后在輸入信號的作用下,輸出特定的函數運算結果。其結構圖如圖2.1-1所示。圖2.1-1 查表結構圖一個N輸入查找表(LUT,Look

14、Up Table)可以實現N個輸入變量的任何邏輯功能,如N輸入“與”、N輸入“異或”等。輸入多于N個的函數、方程必須分開用幾個查找表(LUT)實現(如圖2.1-2所示)。圖2.1-2 FPGA查找表單元內部結構2.2 FPGA簡介FPGA是Filed Progranmmable Gate Array的縮寫,即現場可編程邏輯陣列。FPGA是在CPLD的基礎上發展起來的新型高性能可編程邏輯器件它一般采用SRAM工藝,也有一些專用器件采用Flash工藝或反熔絲(Anti_Fuse)工藝等。FPGA的集成度很高,其器件密度從數萬系統門到數千萬系統門不等,可以完成極其復雜的時序與組合邏輯電路功能,適用于

15、高速、高密度的高端數字邏輯電路設計領域。FPGA的基本組成部分有可編程輸入/輸出單元,基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元、內嵌專用硬核等。FPGA的主要器件供應商有Xilinx、Altera、Lattice、Actel和Atmel等。2.3 Quartus II軟件簡介Quartus II是Alera公司推出的一款功能強大,兼容性最好的EDA工具軟件。該軟件界面友好、使用便捷、功能強大,是一個完全集成化的可編程邏輯設計環境,具有開放性、與結構無關、多平臺完全集成化豐富的設計庫、模塊化工具、支持多種硬件描述語言及有多種高級編程語言接口等特點。Quartus II

16、是Altera公司推出的CPLD/FPGA開發工具,Quartus II提供了完全集成且與電路結構無關的開發包環境,具有數字邏輯設計的全部特性,包括:可利用原理圖、結構框圖、VerilogHDL、AHDL和Verilog完成電路描述,并將其保存為設計實體文件;芯片平面布局連線編輯;功能強大的邏輯綜合工具;完備的電路功能仿真與時序邏輯仿真工具;定時/時序分析與關鍵路徑延時分析;可使用SignalTap II邏輯分析工具進行嵌入式的邏輯分析;支持軟件源文件的添加和創建,并將它們鏈接起來生成編程文件;使用組合編譯方式可一次完成整體設計流程;自動定位編譯錯誤;高效的期間編程與驗證工具;可讀入標準的ED

17、IF網表文件、Verilog網表文件和Verilog網表文件;能生成第三方EDA軟件使用的Verilog網表文件和Verilog網表文件。設計方案多功能數字鐘應該具有的功能有:顯示時分秒、整點報時、小時和分鐘可調等基本功能。整個鐘表的工作應該是在1Hz信號的作用下進行,這樣每來一個時鐘信號,秒增加1秒,當秒從59秒跳轉到00秒時,分鐘增加1分,同時當分鐘從59分跳轉到00分時,小時增加1小時,小時的范圍為023時。在實驗中為了顯示的方便,由于分鐘和秒鐘顯示的范圍都是從059,所以可以用一個3位的二進制碼顯示十位,用一個四位的二進制碼(BCD碼)顯示個位,對于小時因為他的范圍是從023,所以可以

18、用一個2位的二進制碼顯示十位,用一個4位的二進制碼(BCD碼)顯示個位。實驗中由于七段碼管是掃描的方式 顯示,所以雖然時鐘需要的是1Hz時鐘信號,但是掃描需要一個比較高頻率的信號,因此為了得到準確的1Hz信號,必須對輸入的系統時鐘50Mhz進行分頻。對于整點報時功能,本實驗設計的是當進行正點的倒計時5秒時,讓LED來閃爍進行整點報時的提示。調整時間的按鍵用按鍵模塊的S1和S2,S1調節小時,每按下一次,小時增加一個小時;S2調整分鐘,每按下一次,分鐘增加一分鐘。另外用S8按鍵作為系統時鐘復位,復位后全部顯示000000。管腳分配如下表:端口名使用模塊信號對應FPGA管腳說明S1按鍵開關S1R1

19、6調整小時S2按鍵開關S2P14調整分鐘RST按鍵開關S8M15復位 LEDLED模塊D1L14整點倒計時 LEDAG0數碼管模塊A段N4時間顯示 LEDAG1數碼管模塊B段G4 LEDAG2數碼管模塊C段H4 LEDAG3數碼管模塊D段L5 LEDAG4數碼管模塊E段L4 LEDAG5數碼管模塊F段K4 LEDAG6數碼管模塊G段K5 SEL0數碼管選擇位1M48個數碼管的選擇位 SEL1數碼管選擇位2F3 SEL2數碼管選擇位3F4 CP脈沖源J3 50Mhz脈沖設計實現4.1 頂層模塊本程序采用結構化設計方法,將其分為彼此獨立又有一定聯系的三個模塊,如圖4.1-1所示:圖4.1-1頂層結

20、構框圖4.2 新建工程項目在E盤建立項目工程文件夾,如E:/fpga-keshe/lw-clock,打開Quartus II軟件,執行【File】【NewProjectWizard】選項,按如圖4.2-1所示設置。圖4.2-1 新建工程項目4.3 選擇芯片該系統設計中,FPGA芯片用的是ALTERA公司的5CSEMA5F31C6,它由若干個邏輯單元和中央布線池加I/O端口構成,然后再選擇Verilog HDL語言。如圖4.3-1所示。 圖4.3-1 選擇所需芯片和語言最后單擊Finish按鈕,創建好了設計工程,選擇【FILE】【NEW】菜單,出現如圖4.3-2所示的新建設計文件類型窗口。圖4.

21、3-2 選擇編程Verilog文本文件在上圖4.3-2中選擇【Verilog HDL File】,單擊【OK】建立一個新的文本設計文件,命名為clock.v。4.4 子模塊4.4.1 分頻器分頻器的作用是對50Mhz的系統時鐘信號進行分頻,得到頻率為1000hz的信號,作為顯示器的輸入信號。module fenpin(CP,CPout,Cout,CP_En);input CP, output CPout;reg CPout;reg 31:0 Cout;reg CP_En;always (posedge CP ) /將50MHz分頻為1kHzbeginCout = (Cout = 32d5000

22、0) ? 32d0 : (Cout + 32d1);CP_En = (Cout = 32d50000) ? 1d1 : 1d0;CPout = CP_En; endEndmodule保存文件。功能仿真波形如圖4.4.2-1所示(以五分頻為例):圖4.4.1-14.4.2 控制器和計數器控制器的作用是,調整小時和分鐘的值,并能實現清零功能。計數器的作用是實現分鐘和秒鐘滿60進1,小時則由23跳到00。當到達59分55秒的時候,LED燈會閃爍來進行報時。因為控制器和計數器的驅動信號頻率均為1Hz,故從分頻器輸出的信號進入控制器后,要進行二次分頻,由1Khz變為1Hz。源程序如下:module ko

23、ngzhiqi( CPout,S1,S2,RET,Hour,Minute,Second,LED );input CPout,S1,S2,RET;output 5:0 Hour;output 5:0 Minute;output 5:0 Second;output LED;reg 5:0 Hour;reg 5:0 Minute;reg 5:0 Second;reg R1;reg R2,R8,LED;reg 10:0 Cout;reg Clk_En;always(posedge CPout)beginif(S1=0)beginR1=1;endif(S2=0)beginR2=1;endif(RET=0

24、)beginR8=1;endCout=(Cout=32d1000)?32d0:(Cout + 32d1);Clk_En=(Cout=32d1000)?1d1:1d0;if(Clk_En)beginif(R1=1)beginif(Hour24)Hour=Hour+1;if(Hour=24)beginHour=0;endR1=0;endif(R2=1)beginif(Minute60)Minute=Minute+1;if(Minute=60)beginMinute=0;if(Hour24)Hour=Hour+1;if(Hour=24)beginHour=0;endendR2=0;endif(Sec

25、ond60)Second=Second+1;if(Second=60)beginSecond=0;if(Minute60)Minute=Minute+1;if(Minute=60)beginMinute=0;if(Hour55)/整點倒計時beginif(LED=1)LED=0;elseLED=1;endelseLED=0;if(R8=1)/清零beginHour=0;Minute=0;Second=0;R8=0;endendendEndmodule保存文件。功能仿真波形如圖4.4.2-1所示:圖4.4.2-14.4.3 顯示器顯示器的作用是將時分秒的值在數碼管上依次顯示出來。從分頻器輸出的1

26、Khz的信號作為數碼管的掃描信號。SEL表示三個數碼管選擇位,它的取值表示八個數碼管,從左至右依次是111000。LEDGA表示七段數碼管,它的取值決定特定位數上顯示的數字。源程序如下:module clock(CPout,Hour,Minute,Second,SEL,LEDAG);input CPout;input Hour,Minute, Second;output SEL,LEDAG;reg 2:0 SEL;reg 6:0 Led;reg 3:0 shi1,ge1,shi2,ge2,shi3,ge3;always (posedge CPout )beginshiwei1=Hour/10;

27、gewei1=Hour%10;shiwei2=Minute/10;gewei2=Minute%10;shiwei3=Second/10;gewei3=Second%10;if(SEL=3b110) /判斷位選SEL的值,并將此位上的值輸出到數碼管case(shiwei1) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led =

28、 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcaseif(SEL=3b101)case(gewei1) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0

29、110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcaseif(SEL=3b100)Led=7b1000_000;if(SEL=3b011)case(shiwei2) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led =

30、7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcaseif(SEL=3b010)case(gewei2) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b01

31、00: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcaseif(SEL=3b001)Led=7b1000_000;if(SEL=3b000)case(shiwei3) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b0010: Led = 7

32、b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcase if(SEL=3b111)case(gewei3) 4b0000: Led = 7b0111_111;4b0001: Led = 7b0000_110;4b00

33、10: Led = 7b1011_011;4b0011: Led = 7b1001_111;4b0100: Led = 7b1100_110;4b0101: Led = 7b1101_101;4b0110: Led = 7b1111_101;4b0111: Led = 7b0000_111;4b1000: Led = 7b1111_111;4b1001: Led = 7b1101_111; default: Led = 7b0000_000;endcase SEL = SEL + 3d1; endassign LEDAG=Led;endmodule進行編譯如圖4.4.3-1:圖4.4.3-1

34、輸入程序代碼并進行編譯運行在圖4.4.3-2中的【File】菜單中點選【Save as】存盤并保證該文件添加到了工程中,文件名為默認的即可。至此,clock顯示掃描模塊文件建立完成。圖4.4.3-2 保存設計文件4.5 元件封裝選擇菜單【Files】【Create/Update】【Create Symbol Files for Current File】,將元件進行封裝。圖4.5-1進行元件封裝選擇菜單【Tools】【Netlist Viewers】【RTL Viewer】可以查看封裝后所形成的結構圖。通過以上步驟,便完成了數字時鐘模塊的設計工作,即系統底成模塊完成。4.6 引腳的綁定和設置為

35、了能對該計數器進行硬件測試,應將其輸入輸出信號鎖定在芯片確定的引腳上,編譯后下載還必須配置芯片進行編輯,完成FPGA的最終開發。選擇菜單【Assignments】【Pin Planner】,進行引腳。如圖4.6-1所示:圖4.6-1 引腳分配4.7 之后再進行一次編譯運行。5.1 下載將編譯生成的.sof文件下載到硬件里,具體過程為:選擇圖標,點擊【Hardware Setup】,在出現的小框框里選擇【DE-SoCUSB-1】,如圖5.1-1所示:圖5.1-1然后再點擊【Auto Detect】選擇【5CSEMA5】,如圖5.1-2圖5.1-2右擊【5CSEMA5F31】,選擇【Edit】【C

36、hange File】,如圖5.1-3所示:圖5.1-3在【Program/Configure】點擊打勾,然后點擊左側的【Start】,如圖5.1-4、5.1-5所示:圖5.1-4 圖5.1-5 下載中4.6 設計結果通過上述的步驟之后,將系統文件寫進開發板。如圖4.6-1所示:圖4.6-1 開發板給系統上電,可以實現多功能數字時鐘。實驗完成。結束語通過本次EDA設計,掌握了較為復雜邏輯電路的設計方法,了解了用Veriog語言編程設計電路的一般方法。同時鍛煉了自己的分析理解能力和動手能力,并且加深了對數電相關知識的理解。實驗時需要十分細心,一不小心就容易出錯,一旦出現錯誤,就要馬上耐心地檢查線

37、路,分析出錯原因,找到錯誤,并加以更正。如果不是接線問題,那再去思考一下,是不是設計的原理圖有問題。雖然這不是一個容易的過程,但在這個過程中,鍛煉了自己的各項能力,令我受益匪淺。其實,實驗的過程也是鍛煉耐力的過程。在添加鬧鐘功能時,我們曾遇到過困難。本來我們的報時電路是對的,可加上鬧鐘功能后,非但鬧鐘到時刻不響,就連原本的整點報時也不響了,經過一番仔細的盤查,我們發現原來是我們錯用了或門,用高電平和發聲頻率相或,所以才會沒有聲音。另外,在給鬧鐘增加音樂功能時也花了不少力氣,剛開始在網上找的相關資料都不能用,最后終于找到了一個可以播放音樂的資料,我們將找到的Verilog源程序輸入到自己的工程,終于成功讓鬧鐘播放音樂鬧鈴了,那一刻,我們相當開心,因為這是我們通過努力才得到的收獲。這次課程設計雖然只有短短的兩周不到,但我的收獲卻很大。通過這次實習,我掌握了EDA設計的基本流程(即設計輸入編譯調試仿真下載),領會了自頂而下結構化設計的優點,并具備了初步的EDA程序設計能力。我感覺,這個程序最難的地方在于頂層模塊的設計,因為頂層模塊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論