EDA技術(shù)與VHDL設(shè)計(西電版)第8章 仿真測試平臺_第1頁
EDA技術(shù)與VHDL設(shè)計(西電版)第8章 仿真測試平臺_第2頁
EDA技術(shù)與VHDL設(shè)計(西電版)第8章 仿真測試平臺_第3頁
EDA技術(shù)與VHDL設(shè)計(西電版)第8章 仿真測試平臺_第4頁
EDA技術(shù)與VHDL設(shè)計(西電版)第8章 仿真測試平臺_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第8章仿真測試平臺

8.1VHDL仿真概述8.2幾種常見的TestBench模型8.3ASSERT語句8.1VHDL仿真概述

當(dāng)一個設(shè)計完成后,需要對設(shè)計的正確性進(jìn)行測試和驗(yàn)證。前面的章節(jié)都是通過QuartusⅡ軟件自帶的圖形仿真工具進(jìn)行仿真驗(yàn)證的。但是,當(dāng)需要測試的向量很多時,如果僅靠畫波形的手工方式,會相當(dāng)消耗精力。實(shí)際上,VHDL作為硬件描述語言,既可以用于電路系統(tǒng)的設(shè)計,也可以用于電路系統(tǒng)的測試和驗(yàn)證。這時就可以使用測試平臺(TB,TestBench)來完成測試。TB其實(shí)就是一個與所設(shè)計的電路系統(tǒng)程序相對應(yīng)的鼓勵程序,用來為設(shè)計提供鼓勵。當(dāng)然,TB既可以采用VHDL語言,也可以采用Verilog語言來實(shí)現(xiàn)。總地來說,VHDLTestBench就是一段用于驗(yàn)證設(shè)計功能正確性的VHDL代碼。一般來說,仿真器通常需要兩個輸入:設(shè)計塊(即DUT,DesignUnitTest)和鼓勵塊(即TB,TestBench)。TB能夠完成以下幾點(diǎn)目標(biāo):

(1)在測試中實(shí)例化DUT。

(2)為DUT產(chǎn)生鼓勵。

(3)產(chǎn)生參考輸出,并與DUT的輸出進(jìn)行比較。

(4)自動提供測試通過或失敗的提示。

下面先以一個簡單的實(shí)例來感性認(rèn)識TB的使用。設(shè)計一個具有異步清零功能的十進(jìn)制計數(shù)器,能夠完成0~9的計數(shù),并能夠產(chǎn)生進(jìn)位信號。第6章中曾采用狀態(tài)機(jī)的方式實(shí)現(xiàn)該例,本章采用IF語句實(shí)現(xiàn),具體代碼見例8-1?!纠?-1】使用VHDL語言編寫TB,由于測試設(shè)計只用來進(jìn)行仿真,不受綜合中僅能使用RTL語言子集這樣的語法約束。因此它可以使用所有的行為級結(jié)構(gòu),即所有根本語法都是適用的(包括一些不能被綜合的語法)。例8-1的十進(jìn)制計數(shù)器所對應(yīng)的TB見例8-2?!纠?-2】從例8-2可總結(jié)出TB的根本結(jié)構(gòu):包含一個不需要定義輸入/輸出端口的空實(shí)體和一個帶有被測試元件聲明、例化、鼓勵產(chǎn)生的結(jié)構(gòu)體。例8-2的L5~L6是TB的實(shí)體定義,實(shí)體名為cnt_tb,它與外界沒有任何接口,只和DUT通過信號進(jìn)行連接,不需要定義輸入/輸出端口;L10~L15是被測試元件DUT的聲明;L17~L20聲明了與DUT相連接的信號;L23是元件例化;L24確定了時鐘信號clk的周期為50ns,每隔25ns值取反,其初始值為“1〞(由L17定義);L25~L27確定了信號reset的取值,初始值為“0〞,240ns后取值為“1〞,360ns后取值為“0〞。

DUT和TB的結(jié)構(gòu)關(guān)系如圖8-1所示,它們之間通過內(nèi)部信號進(jìn)行交互。圖8-1DUT和TestBench結(jié)構(gòu)示意從本章開始均采用不再自帶圖形仿真工具的QuartusⅡ11.1版本,直接調(diào)用Modelsim完成仿真的形式。本例需要將設(shè)計文件cnt.vhd和測試平臺文件cnt_tb.vhd都保存于同一文件夾、同一工程內(nèi)。設(shè)置設(shè)計文件cnt.vhd為頂層實(shí)體,然后選擇菜單Assignments→Settings,翻開如圖8-2所示對話框。在左邊的Category欄中選擇EDAToolSettings→Simulation,即可翻開仿真設(shè)置對話框。在其中選擇Compiletestbench,然后單擊TestBenches按鈕,翻開圖8-3所示對話框。單擊New,添加測試文件,彈出圖8-4所示新建測試平臺設(shè)置對話框。在Testbenchname欄中輸入測試平臺實(shí)體的名稱,即cnt_tb,那么Toplevelmoduleintestbench欄也會出現(xiàn)相同的名稱。在UsetestbenchtoperformVHDLtimingsimulation前的方框內(nèi)打勾,那么Designinstancenameintestbench欄變亮,在其中填入例化名u1。Simulationperiod欄可根據(jù)需要選擇是根據(jù)鼓勵變化確定仿真時間還是自定義仿真時間,本例選擇Runsimulationuntilallvectorstimuliareused。在Filename欄右側(cè)單擊“…〞按鈕,添加測試平臺文件cnt_tb.vhd。設(shè)置完成后,單擊OK,會發(fā)現(xiàn)圖8-3所示的窗口已經(jīng)包含相關(guān)設(shè)置信息,如圖8-5所示,單擊OK返回。圖8-2仿真設(shè)置對話框圖8-3添加測試文件圖8-4新建測試平臺設(shè)置圖8-5已添加測試平臺圖8-6例8-1十進(jìn)制計數(shù)器仿真結(jié)果(1)圖8-7例8-1十進(jìn)制計數(shù)器仿真結(jié)果(2)8.2幾種常見的TestBench模型

TB產(chǎn)生鼓勵的方式,主要有以下三種:

(1)鼓勵直接在TB中產(chǎn)生。

(2)由其他硬件或軟件模型產(chǎn)生鼓勵。

(3)從單獨(dú)的文件中讀入鼓勵。很明顯,例8-1所采用的形式是鼓勵直接在TB中產(chǎn)生,該方式導(dǎo)致TB的可重用性比較差,只能針對該DUT。對于大型設(shè)計,目前比較流行的形式是利用Matlab產(chǎn)生鼓勵文件,由TB讀入該鼓勵文件并將相應(yīng)的鼓勵信息傳遞給DUT,DUT產(chǎn)生的輸出可以以文件的形式進(jìn)行存儲,或直接與Matlab產(chǎn)生的理想輸出進(jìn)行比較。下面以一個移位存放器的例子來講解幾種不同形式的TB模型。8.2.1簡單TestBench

1.移位存放器實(shí)例

簡單的TB模型中只有相應(yīng)的DUT被例化,鼓勵在TB中直接產(chǎn)生,其模型結(jié)構(gòu)見圖8-8。例8-2即為一個簡單的TB模型。例8-3是移位存放器DUT的VHDL代碼,例8-4是其對應(yīng)的簡單TB。圖8-8簡單TB模型【例8-3】【例8-4】例8-4的仿真結(jié)果見圖8-9和圖8-10。從圖8-9中可以明顯觀察到din變化的時間;圖8-10顯示在時鐘clk的上升沿時,數(shù)據(jù)依次左移,最右位補(bǔ)“1〞的過程。圖8-10例8-4TB移位存放器仿真結(jié)果(2)圖8-9例8-4TB移位存放器仿真結(jié)果(1)2.直接產(chǎn)生鼓勵信號的各種方式

鼓勵信號一般可分為兩類:周期性的鼓勵信號和時序變化的鼓勵信號。周期性的鼓勵信號最典型的代表就是時鐘信號,而時序變化的鼓勵信號包括復(fù)位信號reset、清零信號clear以及其他一些輸入信號等。

(1)周期性鼓勵信號的產(chǎn)生。時鐘信號是最典型的周期性信號,既可以使用并行信號賦值語句來產(chǎn)生,也可以在進(jìn)程中產(chǎn)生;既可以產(chǎn)生占空比是50%的時鐘信號,也可以產(chǎn)生占空比任意的時鐘信號。例8-5采用并行信號賦值語句中的條件信號賦值語句建立了一個占空比是75%的時鐘信號clk。【例8-5】

CONSTANTperiod:TIME:=50ns;

clk<=‘0’AFTER3*period/4WHENclk=‘1’ELSE

‘1’AFTERperiod/4WHENclk=‘0’ELSE

'0';將例8-5改為在進(jìn)程中實(shí)現(xiàn),見例8-6。

【例8-6】

CONSTANTperiod:TIME:=50ns;

PROCESS

BEGIN

clk<=‘1’;

WAITFOR3*period/4;

clk<=‘0’;

WAITFORperiod/4;

ENDPROCESS;仍然以移位存放器為例,二者仿真結(jié)果相同,見圖8-11,所不同的是時鐘信號clk的占空比由50%變?yōu)?5%。需要注意的是,如果采用例8-4所示并行信號賦值語句,那么時鐘信號的初值必須明確聲明為“1〞或者“0〞。

例8-7顯示了一個周期性的信號,其周期為70ns,波形見圖8-12。一般來說,為實(shí)現(xiàn)信號的周期性變化,一般采用WAIT語句。圖8-11時鐘信號占空比為75%【例8-7】

PROCESS

BEGIN

s<=‘0’,

‘1’AFTER10ns,

‘0’AFTER20ns,

‘1’AFTER40ns,

‘0’AFTER45ns;

WAITFOR70ns;

ENDPROCESS;(2)時序變化的鼓勵信號的產(chǎn)生。時序變化的鼓勵信號也可以通過并行賦值語句和進(jìn)程兩種方式產(chǎn)生。例8-8采用并行賦值語句顯示了一個復(fù)位信號reset的變化,仿真開始時,其值為“0〞;60?ns后,其值變?yōu)椤?〞;再經(jīng)過30?ns后,其值變?yōu)椤?〞。例8-9在進(jìn)程中定義復(fù)位信號reset,采用WAIT語句來實(shí)現(xiàn)。二者仿真結(jié)果完全一致,如圖8-13所示。需要注意的是,例8-9中最后一句WAIT語句的作用,如果不加該條語句,仿真結(jié)果又會如何變化,請讀者自行分析。

【例8-8】

reset<=‘0’,

'1'AFTER60ns,

'0'AFTER90ns;【例8-9】

PROCESS

BEGIN

reset<='0';

WAITFOR60ns;

reset<='1';

WAITFOR30ns;

reset<='0';

WAIT;--一直等待

ENDPROCESS;圖8-13例8-8和例8-9復(fù)位信號reset仿真結(jié)果例8-10顯示了使用預(yù)定義屬性DELAYED來產(chǎn)生一個延時一定時間的鼓勵信號。信號s較信號reset延時50ns,仿真波形見圖8-14。

【例8-10】

s<=reset‘DELAYED(50ns);

還有一類比較特殊的鼓勵信號,稱為動態(tài)鼓勵信號,即輸入的鼓勵信號與DUT的行為相關(guān),受其影響或由其決定。例8-11仍然以例8-3中的移位存放器為DUT,置數(shù)信號load由移位結(jié)果控制,當(dāng)移位結(jié)果全1時,load=“1〞允許置數(shù)。圖8-14使用預(yù)定義屬性產(chǎn)生延時一定時間的鼓勵信號【例8-11】例8-11的仿真結(jié)果見圖8-15。可以看到,當(dāng)q移位為“11111111〞時,延時60ns后,load由“0〞變?yōu)椤?〞,允許置數(shù),重新將“00110011〞置入;q置數(shù)成功后,再次觸發(fā)進(jìn)程,此時由于q不等于“11111111〞,那么執(zhí)行L32,延時60ns后,load由“1〞變?yōu)椤?〞。圖8-15例8-11TB移位存放器仿真結(jié)果8.2.2帶有獨(dú)立源的TestBench

將產(chǎn)生鼓勵的模塊作為一個文件,與DUT一起,在TB中進(jìn)行例化,就稱為帶有獨(dú)立源的TB,其結(jié)構(gòu)模型見圖8-16。該模型比較適合于具有復(fù)雜輸入、簡單輸出的設(shè)計;鼓勵信號由獨(dú)立源Source產(chǎn)生。圖8-16帶有獨(dú)立源的TB模型仍然以例8-3所設(shè)計的移位存放器為DUT,在此,再設(shè)計一個計數(shù)器,其計數(shù)輸出作為移位存放器的置數(shù)初值,即移位存放器的鼓勵由計數(shù)器產(chǎn)生,結(jié)構(gòu)模型如圖8-17所示。當(dāng)置數(shù)信號load=“1〞時,計數(shù)器count停止計數(shù),將當(dāng)前計數(shù)結(jié)果作為鼓勵信號傳遞給移位存放器;同時,由于load=“1〞,移位存放器允許置數(shù),并將在下一個時鐘上升沿到來時開始移位操作。計數(shù)器的VHDL代碼見例8-12,TB見例8-13。圖8-17由計數(shù)器產(chǎn)生鼓勵信號【例8-12】【例8-13】例8-13的仿真結(jié)果見圖8-18和圖8-19。其中,圖8-19是圖8-18當(dāng)load第二次由“0〞變“1〞時的放大??梢钥吹剑?dāng)?shù)谝淮蝜oad?=“1〞后,計數(shù)器進(jìn)行一次清零,重新開始計數(shù),直到第二次load?=“1〞時,計數(shù)結(jié)果為“00001111〞,將其傳遞給DUT作為置數(shù)初值,然后在時鐘信號clk的上升沿進(jìn)行移位。

需要注意的是,如果采用帶有獨(dú)立源的TB模型,那么在QuartusⅡ軟件中設(shè)置TB時,需要添加產(chǎn)生鼓勵的源文件,如圖8-20所示。圖8-19例8-13TB仿真結(jié)果(2)圖8-18例8-13TB仿真結(jié)果(1)圖8-20添加產(chǎn)生鼓勵的源文件當(dāng)然,如果鼓勵的變化與電路的行為相關(guān),即節(jié)中提到的動態(tài)鼓勵信號,那么帶有獨(dú)立源Source的動態(tài)鼓勵模型框圖如圖8-21所示。如果輸出端較為復(fù)雜,也需要由單獨(dú)的模塊(輸出模塊Sink)產(chǎn)生或者變化,那么模型框圖可變?yōu)槿鐖D8-22所示,該模型也可以由電路影響鼓勵的變化。圖8-21電路響應(yīng)影響鼓勵變化圖8-22帶有獨(dú)立源和輸出模塊的TB模型8.2.3使用TEXTIO的TestBench

對于大型設(shè)計工程,輸入、輸出比較復(fù)雜,單靠輸入波形或直接產(chǎn)生鼓勵的形式難以驗(yàn)證結(jié)果的正確性。這時,采用文本文件存儲鼓勵的形式更加方便,能夠有效地提高效率。TEXTIO是VHDL標(biāo)準(zhǔn)庫STD中的一個程序包,它提供了VHDL與磁盤文件直接訪問的橋梁,可以利用它來讀取存儲在磁盤中的文件或者將仿真數(shù)據(jù)寫入磁盤文件并存儲。TEXTIO的使用是通過TB來進(jìn)行的,即可以在TB中調(diào)用TEXTIO來進(jìn)行仿真。常用的做法是,將所有的輸入鼓勵保存在文件中,仿真時,可以直接讀取文件中的鼓勵數(shù)據(jù)產(chǎn)生相應(yīng)的波形或是將仿真結(jié)果存儲到文件中;也可以將其他軟件計算出來的結(jié)果保存在另一個文件中,自動將仿真結(jié)果與預(yù)先計算的結(jié)果進(jìn)行比較,給出一定的信息來確定結(jié)果的正確與否。使用TEXTIO的TB模型見圖8-23。圖8-23使用TEXTIO的TB模型1.TEXTIO概述

TEXTIO是VHDL標(biāo)準(zhǔn)庫STD中的一個程序包;當(dāng)然,Synopsys公司參加IEEE庫中的std_logic_textio程序包也定義了相關(guān)內(nèi)容。所不同的是,定義在STD庫中的TEXTIO程序包針對INTEGER、BIT、BIT_VECTOR、STRING、TIME等定義在VHDL標(biāo)準(zhǔn)程序包STANDARD中的預(yù)定義數(shù)據(jù)類型;而std_logic_textio程序包針對定義在IEEE庫中的STD_ULOGIC、STD_LOGIC以及它們的矢量類型的預(yù)定義數(shù)據(jù)類型。TEXTIO提供了用于訪問文件的過程,具有重載性,即過程名相同,但參數(shù)類型或個數(shù)不同,詳細(xì)定義請參見附錄A。

PROCEDUREREADLINE(指定文件,行變量);表示從指定文件讀取一行數(shù)據(jù)到行變量中。

PROCEDUREREAD(行變量,數(shù)據(jù)變量,[GOOD]);表示從指定行讀取相應(yīng)數(shù)據(jù)類型的數(shù)據(jù)。GOOD為可選項(xiàng),返回BOOLEAN類型,用于說明過程是否正確執(zhí)行,正確那么返回TURE。

PROCEDUREWRITELINE(指定文件,行變量);表示向指定文件寫入行變量所包含的數(shù)據(jù)。

PROCEDUREWRITE(行變量,數(shù)據(jù)變量,寫入方式,位寬);表示將數(shù)據(jù)寫入行變量;寫入方式表示寫在行變量的左邊還是右邊,其值只能是left或者right;位寬表示寫入數(shù)據(jù)時所占的寬度。

在TEXTIO中定義了幾種數(shù)據(jù)類型,包括:數(shù)據(jù)類型LINE、TEXT、SIDE和子類型WIDTH。

(1)數(shù)據(jù)類型LINE。其源代碼定義如下:

TYPELINEISACCESSSTRING;定義LINE為存取類型的變量,它表示該變量是指向字符串的指針,是TEXTIO中所有操作的根本單元。讀文件時,先按行(LINE)讀出一行數(shù)據(jù),再對LINE操作來讀取各種不同數(shù)據(jù)類型的數(shù)據(jù);寫文件時,先將各種數(shù)據(jù)類型組合成LINE,再將LINE寫入文件。需要注意的是,只有變量才可以是存取類型,而信號那么不能是存取類型。例8-14聲明了兩個變量line_in和line_out,其類型都是LINE。

【例8-14】

VARIABLEline_in:LINE;

VARIABLEline_out:LINE;(2)數(shù)據(jù)類型TEXT。其源代碼定義如下:

TYPETEXTISFILEOFSTRING;

定義TEXT是文件類型,長度可變。例8-15和例8-16都定義了兩個文件類型的變量file_input和file_output,用于訪問對應(yīng)的文件datain.txt和dataout.txt。不同的是,例8-15采用的是VHDL87標(biāo)準(zhǔn),而例8-16采用的是VHDL93標(biāo)準(zhǔn),兩個標(biāo)準(zhǔn)在文件使用方面有較大的差異,使用時應(yīng)注意選擇相應(yīng)的標(biāo)準(zhǔn)?!纠?-15】

FILEfile_input :TEXTISIN“datain.txt〞;

FILEfile_output :TEXTISOUT“dataout.txt〞;

【例8-16】

FILEfile_input :TEXTOPENREAD_MODEIS“datain.txt〞;

FILEfile_output :TEXTOPENWRITE_MODEIS"dataout.txt";(3)數(shù)據(jù)類型SIDE。其源代碼定義如下:

TYPESIDEIS(right,left);

定義了SIDE為一種枚舉類型,取值只有right和left兩種,分別表示將數(shù)據(jù)從左和從右寫入行變量中。例8-17顯示了將output_data從左邊寫入LINE變量line_out,位寬為8。

【例8-17】

WRITE(line_out,output_data,left,8);

(4)子類型WIDTH。其源代碼定義如下:

SUBTYPEWIDTHISNATURAL;

數(shù)據(jù)類型WIDTH用于指定寫入LINE變量的位寬。2.移位存放器實(shí)例

這里仍然以例8-3移位存放器的例子,采用TEXTIO的方法來實(shí)現(xiàn)測試驗(yàn)證,其原理框圖如圖8-24所示。文件datain.txt提供移位存放器的置數(shù)初值din,在傳遞給DUT之前,進(jìn)行數(shù)據(jù)類型的變化,由BIT_VECTOR變化為符合DUT中聲明的數(shù)據(jù)類型STD_LOGIC_VECTOR。再按照時鐘節(jié)拍,將DUT的輸出數(shù)據(jù)寫入到輸出文件dataout.txt。當(dāng)然,在寫入前,也需要進(jìn)行數(shù)據(jù)類型的變換。圖8-24使用TEXTIO的移位存放器TB原理框圖首先將存儲輸入鼓勵的datain.txt文件保存于移位存放器工程同一文件夾下,datain.txt文件內(nèi)有三個鼓勵輸入,分別是:“00001101〞、“00000101〞和“00001001〞,見圖8-25。對于大型設(shè)計,更好的方式是采用C語言或者M(jìn)atlab產(chǎn)生鼓勵。例8-18讀取datain.txt中的鼓勵,并將其傳遞給信號din,作為置數(shù)初值。圖8-25提供鼓勵的文件datain.txt【例8-18】例8-18中L5聲明了STD庫中的TEXTIO程序包。L28~L35確定了4次有效的置數(shù)信號(load=“1〞)。進(jìn)程p0從datain.txt讀出鼓勵,并傳遞給din,使用了斷言語句ASSERT,當(dāng)文件讀完后,會出現(xiàn)警告信息。進(jìn)程p1將DUT的輸出經(jīng)過轉(zhuǎn)化后寫入文件dataout.txt。需要注意的是,L55聲明了文件類型變量file_out,可以訪問的對應(yīng)保存輸出結(jié)果的文件是dataout.txt,這里必須要寫明文件路徑和文件名,且在工程同一文件夾內(nèi)保存有空dataout.txt文件。例8-18的仿真結(jié)果如圖8-26和圖8-27所示。可以看到,“00001101〞、“00000101〞、“00001001〞分別被作為初值置入,然后在時鐘信號clk的上升沿開始進(jìn)行移位操作。在1200ns時,由于文件數(shù)據(jù)已經(jīng)讀完,執(zhí)行斷言語句L47~L49,在Modelsim的Transcript窗口顯示文件結(jié)束的警告信息,如圖8-28所示。

例8-18也可翻開IEEE庫中的std_logic_textio程序包,直接對數(shù)據(jù)類型STD_LOGIC進(jìn)行操作,防止數(shù)據(jù)類型的轉(zhuǎn)換,請讀者自行完成相應(yīng)的代碼和仿真測試。圖8-27例8-18TB仿真結(jié)果(2)圖8-26例8-18TB仿真結(jié)果(1)圖8-28文件結(jié)束的警告信息在工程保存目錄下找到文件dataout.txt,翻開文件即可觀察輸出結(jié)果,如圖8-29所示。

如果改變datain.txt中的鼓勵數(shù)據(jù),如將“00001101〞改為“00000111〞,那么仿真結(jié)果也會發(fā)生改變,見圖8-30。輸出結(jié)果文件dataout.txt也會發(fā)生相應(yīng)的改變,如圖8-31所示。圖8-29文件dataout.txt仿真輸出結(jié)果圖8-30改變鼓勵后文件dataout.txt仿真輸出結(jié)果圖8-31改變鼓勵數(shù)據(jù)后

溫馨提示

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

評論

0/150

提交評論