verilog中的高級(jí)結(jié)構(gòu)_第1頁(yè)
verilog中的高級(jí)結(jié)構(gòu)_第2頁(yè)
verilog中的高級(jí)結(jié)構(gòu)_第3頁(yè)
verilog中的高級(jí)結(jié)構(gòu)_第4頁(yè)
verilog中的高級(jí)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

7.1任務(wù)和函數(shù)

在行為級(jí)設(shè)計(jì)中,經(jīng)常需要在程序的多個(gè)不同地方實(shí)現(xiàn)同樣的功能。這表明有必要把這些公共的部分提取出來(lái),將其組成子程序,然后在需要的地方調(diào)用這些子程序,以避免重復(fù)編碼。絕大多數(shù)程序設(shè)計(jì)語(yǔ)言都提供了過(guò)程或子程序來(lái)達(dá)到這個(gè)目的。同樣,verilog語(yǔ)言提供的任務(wù)和函數(shù)可以將較大的行為級(jí)設(shè)計(jì)劃分為較小的代碼段,允許verilog設(shè)計(jì)者將在多個(gè)地方位用的相同代碼提取出來(lái),編寫(xiě)成任務(wù)和函數(shù)。

任務(wù)(task)通常用于調(diào)試,或?qū)τ布M(jìn)行行為描述可以包含時(shí)序控制(#延遲,@,wait)可以有input,output,和inout參數(shù)可以調(diào)用其他任務(wù)或函數(shù)函數(shù)(function)通常用于計(jì)算,或描述組合邏輯不能包含任何延遲;函數(shù)仿真時(shí)間為0只含有input參數(shù)并由函數(shù)名返回一個(gè)結(jié)果可以調(diào)用其他函數(shù),但不能調(diào)用任務(wù)1.任務(wù)與函數(shù)的區(qū)別和聯(lián)系區(qū)別任務(wù)和函數(shù)必須在module內(nèi)調(diào)用在任務(wù)和函數(shù)中不能聲明wire所有輸入/輸出都是局部寄存器任務(wù)/函數(shù)執(zhí)行完成后才返回結(jié)果。

例如,若任務(wù)/函數(shù)中有forever語(yǔ)句,則永遠(yuǎn)不會(huì)返回結(jié)果共同點(diǎn)2.任務(wù)使用task和endtask來(lái)聲明含有延遲、時(shí)序或事件控制結(jié)構(gòu)沒(méi)有輸出或輸出變量數(shù)目大于1沒(méi)有輸入變量moduletop;regclk,a,b;DUTu1(out,a,b,clk);always#5clk=!clk;

taskneg_clocks;

input[31:0]number_of_edges;

repeat(number_of_edges)@(negedgeclk);

endtaskinitialbeginclk=0;a=1;b=1;

neg_clocks(3);//任務(wù)調(diào)用

a=0;

neg_clocks(5);b=0;endendmodule滿足以上三點(diǎn)的,一般用任務(wù)而不用函數(shù)

任務(wù)中含有時(shí)序控制和一個(gè)輸入,并引用了一個(gè)module變量,但沒(méi)有輸出、輸入輸出和內(nèi)部變量,也不顯示任何結(jié)果。時(shí)序控制中使用的信號(hào)(例如clk)一定不能作為任務(wù)的輸入,因?yàn)檩斎胫抵幌蛟撊蝿?wù)傳送一次。任務(wù)可以有input,output

和inout參數(shù)。傳送到任務(wù)的參數(shù)和與任務(wù)I/O說(shuō)明順序相同。盡管傳送到任務(wù)的參數(shù)名稱(chēng)與任務(wù)內(nèi)部I/O說(shuō)明的名字可以相同,但在實(shí)際中這通常不是一個(gè)好的方法。參數(shù)名的唯一性可以使任務(wù)具有好的模塊性??梢栽谌蝿?wù)內(nèi)使用時(shí)序控制。在Verilog中任務(wù)定義一個(gè)新范圍(scope)要禁止任務(wù),使用關(guān)鍵字disable

。主要特點(diǎn):

從代碼中多處調(diào)用任務(wù)時(shí)要小心。因?yàn)槿蝿?wù)的局部變量的只有一個(gè)拷貝,并行調(diào)用任務(wù)可能導(dǎo)致錯(cuò)誤的結(jié)果。在任務(wù)中使用時(shí)序控制時(shí)這種情況時(shí)常發(fā)生。

在任務(wù)或函數(shù)中引用調(diào)用模塊的變量時(shí)要小心。如果想使任務(wù)或函數(shù)能從另一個(gè)模塊調(diào)用,則所有在任務(wù)或函數(shù)內(nèi)部用到的變量都必須列在端口列表中。

下面的任務(wù)中有輸入,輸出,時(shí)序控制和一個(gè)內(nèi)部變量,并且引用了一個(gè)module變量。但沒(méi)有雙向端口,也沒(méi)有顯示。任務(wù)調(diào)用時(shí)的參數(shù)按任務(wù)定義的順序列出。modulemult(clk,a,b,out,en_mult);

inputclk,en_mult;

input[3:0]a,b;

output[7:0]out;

reg[7:0]out;

always@(posedgeclk)multme(a,b,out);//任務(wù)調(diào)用

task

multme;//任務(wù)定義

input

[3:0]xme,tome;

output

[7:0]result;

wait

(en_mult)

result=xme*tome;

endtaskendmodule自動(dòng)任務(wù)任務(wù)在本質(zhì)上是靜態(tài)的,任務(wù)中的所有聲明項(xiàng)的地址空間是靜態(tài)分配的。因此,如果這個(gè)任務(wù)在模塊中的兩個(gè)地方被同時(shí)調(diào)用,則這兩個(gè)任務(wù)調(diào)用將對(duì)同一塊地址空間進(jìn)行操作。操作的結(jié)果很有可能是錯(cuò)誤的。為了避免這個(gè)問(wèn)題,verilog通過(guò)在task關(guān)鍵字前面添加關(guān)鍵字automatic,使任務(wù)成為可重入的,這樣聲明的任務(wù)也稱(chēng)為自動(dòng)任務(wù),每次調(diào)用時(shí),在動(dòng)態(tài)任務(wù)中聲明的所有模塊項(xiàng)的存儲(chǔ)空間都是動(dòng)態(tài)分配的,每個(gè)調(diào)用都對(duì)各自獨(dú)立的地址空間進(jìn)行操作。這樣.每個(gè)任務(wù)調(diào)用只對(duì)自己所擁有的獨(dú)立變量副本進(jìn)行操作.因此可以得到正確的執(zhí)行結(jié)果。所以,如果某一任務(wù)有可能在程序代碼的兩處被同時(shí)調(diào)用,我們建議讀者最好使用自動(dòng)任務(wù)。moduletop;reg[15:0]cd_xor,ef_xor;

reg[15:0]c,d,e,f;task

automaticbitwise_xor;//任務(wù)定義

output

[15:0]ab_xor;input

[15:0]a,b;begin

#delayab_and=a&b;

ab_or=a|b;ab_xor=a^b;

endendtaskalways@(posedgeclk)bitwise_xor(ef_xor,e,f);always@(posedgeclk2)bitwise_xor(cd_xor,c,d);endmodule自動(dòng)任務(wù)3.函數(shù)(function)以關(guān)鍵詞function和endfunction聲明函數(shù)內(nèi)不含延遲、時(shí)序或事件控制結(jié)構(gòu)moduleorand(a,b,c,d,e,out);

input[7:0]a,b,c,d,e;

output[7:0]out;

reg

[7:0]out;

always@(aorborcordore)out=f_or_and(a,b,c,d,e);//函數(shù)調(diào)用

function[7:0]f_or_and;

input[7:0]a,b,c,d,e;

if(e==1)f_or_and=(a|b)&(c|d);

elsef_or_and=0;

endfunctionendmodule只有一個(gè)返回值至少有一個(gè)輸入變量沒(méi)有輸出變量不含有非阻塞賦值語(yǔ)句主要特性:函數(shù)定義中不能包含任何時(shí)序控制語(yǔ)句。函數(shù)至少有一個(gè)輸入,不能包含任何輸出或雙向端口。函數(shù)只返回一個(gè)數(shù)據(jù),其缺省為reg類(lèi)型。傳送到函數(shù)的參數(shù)順序和函數(shù)輸入?yún)?shù)的說(shuō)明順序相同。函數(shù)在模塊(module)內(nèi)部定義。函數(shù)不能調(diào)用任務(wù),但任務(wù)可以調(diào)用函數(shù)。函數(shù)在Verilog中定義了一個(gè)新的范圍(scope)。雖然函數(shù)只返回單個(gè)值,但返回的值可以直接給信號(hào)連接賦值。這在需要有多個(gè)輸出時(shí)非常有效。

{o1,o2,o3,o4}=f_or_and(a,b,c,d,e);

要返回一個(gè)向量值(多于一位),在函數(shù)定義時(shí)在函數(shù)名前說(shuō)明范圍。函數(shù)中需要多條語(yǔ)句時(shí)用begin和end。不管在函數(shù)內(nèi)對(duì)函數(shù)名進(jìn)行多少次賦值,值只返回一次。下例中,函數(shù)還在內(nèi)部聲明了一個(gè)整數(shù)。modulefoo;input[7:0]loo;

output[7:0]goo;//可以持續(xù)賦值中調(diào)用函數(shù)

wire[7:0]goo=zero_count(loo);

function

[3:0]

zero_count;

input[7:0]in_bus;

integerI;

begin

zero_count=0;

for(I=0;I<8;I=I+1)

if(!in_bus[I])

zero_count

=zero_count+1;

end

endfunctionendmodule函數(shù)返回值可以聲明為其它register類(lèi)型:integer,real,或time。在任何表達(dá)式中都可調(diào)用函數(shù)modulechecksub(neg,a,b);outputneg;regneg;inputa,b;

function

integer

subtr;

input[7:0]in_a,in_b;

subtr=in_a-in_b;//結(jié)果可能為負(fù)

endfunction

always@(aorb)

if(subtr(a,b)<0)neg=1;

elseneg=0;endmodule函數(shù)中可以對(duì)返回值的個(gè)別位進(jìn)行賦值。函數(shù)值的位數(shù)、函數(shù)端口甚至函數(shù)功能都可以參數(shù)化。...parameterMAX_BITS=8;reg[MAX_BITS:1]D;function

[MAX_BITS:1]

reverse_bits;

input[MAX_BITS-1:0]data;

integerK;for(K=0;K<MAX_BITS;K=K+1)

reverse_bits[MAX_BITS-(K+1)]=data[K];endfunctionalways@(posedgeclk)D=reverse_bits(D);...a.遞歸函數(shù)verilog中的函數(shù)是不能進(jìn)行遞歸調(diào)用的;若在函數(shù)聲明時(shí)使用了關(guān)鍵字automatic,那么該函數(shù)將成為自動(dòng)的或可遞歸的.moduletop;function

automatic

integerfactorial;

input[31:0]oper;

integerI;beginif(oper>=2)factorial=factorial[oper-1]*oper;elsefactorial=1;endendfunction

integerresult;initialbegin

result=factorial(4);endendmoduleb.常量函數(shù)

常量函數(shù)實(shí)際上是一個(gè)帶有某些限制的常規(guī)verilog函數(shù)。這種函數(shù)能夠用來(lái)引用復(fù)雜的值,因此可用來(lái)代替常量。moduleram(….);parameterram_depth=256;input[clogb2(ram_depth)-1:0]addr_bus;function

integerclogb2(inputintegerdepth);

beginfor(clogb2=0;depth>0;clogb2=clogb2+1)depth=depth>>1;endendfunctionendmodule

c.帶符號(hào)函數(shù)返回值可以作為帶符號(hào)數(shù)進(jìn)行運(yùn)算moduletop;

function

signed

[63:0]compute_signed

(input[63:0]vector);

……..…….

endfunction

if(compute_signed(vector)<-3)begin…..endendmodule7.2電路級(jí)建模Verilog沒(méi)有描述模擬電路的功能,可以描述mos晶體管,但晶體管僅被當(dāng)作開(kāi)關(guān)來(lái)描述,即只有導(dǎo)通和截止?fàn)顟B(tài)。1.MOS開(kāi)關(guān)以關(guān)鍵詞nmos用于NMOS晶體管建模以關(guān)鍵詞pmos用于PMOS晶體管建模

因?yàn)殚_(kāi)關(guān)是用verilog原語(yǔ)定義的,類(lèi)似于邏輯門(mén),實(shí)例名稱(chēng)是可選頂,所以調(diào)用實(shí)例引用開(kāi)關(guān)時(shí)可以不給出實(shí)例名稱(chēng)。//實(shí)例名引用nmosn1(out,data,control);pmos

p1(out,data,control);//無(wú)實(shí)例名引用nmos

(out,data,control);pmos

(out,data,control);

信號(hào)out的值由信號(hào)data和control值確定。out的邏輯值如表所示。信號(hào)data和cotrol的不同組合導(dǎo)致這兩個(gè)開(kāi)關(guān)輸出1,0或者z或x.邏輯值(如果不能確定輸出為1或.就有可能輸出z值或x值)。符號(hào)L代表0或z,H代表1或z;2.CMOS開(kāi)關(guān)以關(guān)鍵詞cmos用于CMOS晶體管建模//實(shí)例名引用cmosc1(out,data,ncontrol,pcontrol);cmos

(out,data,ncontrol,pcontrol);

信號(hào)ncontrol和pcontrol通常是互補(bǔ)的。當(dāng)信號(hào)ncontrol為1且pcontrol信號(hào)為0時(shí),開(kāi)關(guān)導(dǎo)通。如果信號(hào)ncontrol為0且pcontrol為1,則開(kāi)關(guān)的輸出為高阻值。CMOSE本質(zhì)上是兩個(gè)開(kāi)關(guān)(NMOS和PMOS)的組合體。//無(wú)實(shí)例名引用nmos

(out,data,ncontrol);pmos

(out,data,pcontrol);3.雙向開(kāi)關(guān)NMOS,PMOS和CMOS門(mén)都是從漏極向源極導(dǎo)通,是單向的。在數(shù)字電路中,雙向?qū)ǖ钠骷苤匾?duì)雙向?qū)ǖ钠骷?,其兩邊的信?hào)都可以是驅(qū)動(dòng)信號(hào)。通過(guò)設(shè)計(jì)雙向開(kāi)關(guān)就可以實(shí)現(xiàn)雙向?qū)ǖ钠骷?。有三個(gè)關(guān)鍵字用來(lái)定義雙向開(kāi)關(guān):tran,tranif0和tranif1。

tran開(kāi)關(guān)作為兩個(gè)信號(hào)inout1和inout2之間的緩存,inout1或inout2都可以是驅(qū)動(dòng)信號(hào)。僅當(dāng)control信號(hào)是邏輯0時(shí),開(kāi)關(guān)tranif0連接inout1和inout2兩個(gè)信號(hào)。如果control信號(hào)為1,則沒(méi)有驅(qū)動(dòng)源的信號(hào)取高阻態(tài)值z(mì),有驅(qū)動(dòng)源的信號(hào)仍然從驅(qū)動(dòng)源取值。//實(shí)例名引用tran

t1(inout1,inout2);tranif0(inout1,inout2,control);tranif1(inout1,inout2,control);4.電源和地以關(guān)鍵詞supply1用于表示源極類(lèi)型,相當(dāng)于電路中的VDD,代表邏輯1以關(guān)鍵詞supply0用于表示地極類(lèi)型,相當(dāng)于電路中的VSS或GND,代表邏輯0supply1vdd;supply0gnd;assigna=vdd;assignb=gnd;5.阻抗開(kāi)關(guān)比一般的開(kāi)關(guān)具有更高的源極到漏極阻抗在一般開(kāi)關(guān)的關(guān)鍵詞前面加r聲明阻抗開(kāi)關(guān)在傳輸信號(hào)時(shí)減小了信號(hào)的強(qiáng)度關(guān)鍵詞rnmos

rpmos

rcmosrtranrtranif1rtranif06.設(shè)計(jì)實(shí)例a.cmos或非門(mén)modulemy_nor(out,a,b);outputout;inputa,b;wirec;supply1pwr;supply0gnd;pmos(c,pwr,b);pmos(out,c,a);nmos(out,gnd,a);nmos(out,gnd,b);endmodule

b.cmos反相器modulemy_not(out,in);outputout;inputin;supply1pwr;supply0gnd;pmos(out,pwr,in);nmos(out,gnd,in);endmodule7.3UDP用戶自定義原語(yǔ)學(xué)習(xí)如何使用用戶定義基本單元進(jìn)行邏輯設(shè)計(jì)組合邏輯UDP設(shè)計(jì)時(shí)序邏輯UDP設(shè)計(jì)1.術(shù)語(yǔ)及定義UDP:userdefinedprimitive,用戶自定義原語(yǔ),其行為和Verilog內(nèi)部的原語(yǔ)相似。其功能用真值表定義。UDP有兩類(lèi):表示組合邏輯的UDP,輸出僅取決于輸入信號(hào)的組合邏輯。表示時(shí)序邏輯的UDP。下一個(gè)輸出值不但取決于當(dāng)前的輸入值,還取決于當(dāng)前的內(nèi)部狀態(tài)。在Verilog結(jié)構(gòu)描述中,可以使用:二十多個(gè)內(nèi)部門(mén)級(jí)基本單元用戶自定義基本單元UDP在ASIC庫(kù)單元開(kāi)發(fā)、中小型芯片設(shè)計(jì)中很有用可以使用UDP擴(kuò)充已定義的基本單元集UDP是自包容的,也就是不需要實(shí)例化其它模塊UDP可以表示時(shí)序元件和組合元件UDP的行為由真值表表示UDP實(shí)例化與基本單元實(shí)例化相同可以使用UDP擴(kuò)充已定義的基本單元集UDP是一種非常緊湊的邏輯表示方法。UDP可以減少消極(pessimism)因素,因?yàn)橐粋€(gè)input上的x不會(huì)像基本單元那樣自動(dòng)傳送到output。一個(gè)UDP可以替代多個(gè)基本單元構(gòu)成的邏輯,因此可以大幅減少仿真時(shí)間和存儲(chǔ)需求。相同邏輯的行為級(jí)模型甚至可以更快,這取決于仿真器。UDP的特點(diǎn)UDP只能有一個(gè)輸出如果在功能上要求有多個(gè)輸出,則需要在UDP輸出端連接其它的基本單元,或者同時(shí)使用幾個(gè)UDP。

UDP可以有1到10個(gè)輸入若輸入端口超過(guò)5,存儲(chǔ)需求會(huì)大幅增加。下表列出輸入端口數(shù)與存儲(chǔ)需求的關(guān)系。所有端口必須為標(biāo)量且不允許雙向端口不支持邏輯值Z輸出端口必須列為端口列表的第一個(gè)時(shí)序UDP輸出端可以用initial語(yǔ)句初始化為一個(gè)確定值。UDP不可綜合#輸入存儲(chǔ)器(KB)#輸入存儲(chǔ)器(KB)1-51856659187717106232.語(yǔ)法定義primitive

<udp名稱(chēng)>(<輸出端口名>,<輸入端口名>);//端口說(shuō)明語(yǔ)句output<輸出端口名>;input<輸入端口名>;reg

<輸出端口名>;(可選,只有在表示時(shí)序邏輯的udp才需要)//udp初始化(只有時(shí)序邏輯才需要)Initial<輸出端口名>=<值>//udp狀態(tài)表table<狀態(tài)表>endtableendprimitive這兩行用于減少消極因素。表示若a,b有相同邏輯值,即使sel=x,o也輸出與a,b相同的值。Verilog內(nèi)部基本單元不能描述這種行為。UDP將X作為真實(shí)世界的未知值(0或1),而不是Verilog值,描述也更為精確。這兩行表示不管a為何值,若s為o,o輸出b值3.組合邏輯UDPUDP在模塊(module)外部定義。沒(méi)有在真值表中說(shuō)明的輸入組合,輸出X。真值表中輸入信號(hào)按端口列表順序給出。primitive

multiplexer(o,a,b,s);outputo;inputs,a,b;

table//abs:o0?1:0;1?1:1;?00:0;?10:1;00x:0;11x:1;

endtableendprimitiveUDP名稱(chēng)輸出端口真值表中?表示的邏輯值為:0、1或x這兩行表示不管b為何值,若s為1,o輸出a值舉例:2-1數(shù)據(jù)選擇器組合邏輯舉例2:全加器//FULLADDERCARRY-OUTTERMprimitiveU_ADDR2_C(CO,A,B,CI);

outputCO;

inputA,B,Ci;

table

//ABCI:CO11?:1; 1?1:1; ?11:1; 00?:0; 0?0:0; ?00:0;

endtableendprimitive全加器可以由兩個(gè)組合邏輯UDP實(shí)現(xiàn)//FULLADDERSUMTERMprimitive

U_ADDR2_S(S,A,B,CI);

outputS;

inputA,B,CI;

table//ABCI:S 000:0; 001:1; 010:1; 011:0; 100:1; 101:0; 110:0; 111:1;

endtableendprimitive4.時(shí)序邏輯電路鎖存器的行為如下:當(dāng)時(shí)鐘輸入為0時(shí),data輸入的值傳送到輸出。當(dāng)時(shí)鐘輸入為1時(shí),輸出不變。這種加電初始化在實(shí)際元件中很少見(jiàn),但在UDP功能測(cè)試時(shí)很有用。primitive

latch(q,clock,data);

outputq;

reg

q;

inputclock,data;

initialq=1'b1;

table//clockdatacurrentnext//statestate01:?:1;00:?:0;1?:?:-;

endtableendprimitive輸出必須聲明為reg以保存前一狀態(tài)時(shí)序UDP初始化語(yǔ)句,將輸出初始化為1輸入及當(dāng)前狀態(tài)中的?表示無(wú)關(guān)值用另一個(gè)場(chǎng)表示下一狀態(tài)‘-’狀態(tài)值表示輸出沒(méi)有變化舉例1:鎖存器latch舉例2:D觸發(fā)器在任何一個(gè)真值表入口語(yǔ)句中只能說(shuō)明一個(gè)輸入跳變。如果說(shuō)明了任何輸入跳變,則必須說(shuō)明所有輸入上的所有跳變。primitive

d_edge_ff(q,clk,data);outputq;

inputclk,data;regq;table//clkdatstatenext (01)0:?:0; (01)1:?:1; (0x)1:1:1; (0x)0:0:0; (x1)0:0:0; (x1)1:1:1;//忽略時(shí)鐘下降沿

(?0)?:?:-; (1x)?:?:-;//時(shí)鐘穩(wěn)定時(shí)忽略data變化

?(??):?:-;

endtableendprimitive表里有邊沿項(xiàng)表示輸入跳變。在一條入口語(yǔ)句中只能說(shuō)明一個(gè)輸入跳變,因?yàn)閂erilog仿真是基于事件,一次只允許一個(gè)事件發(fā)生。在每個(gè)時(shí)間步中,電平入口優(yōu)先于邊沿入口,因?yàn)殡娖阶詈筇幚?。因此,下面的出口?/p>

(?0)?:?:-;

可由下式取代:0?:?:-;

兩個(gè)都給出時(shí),只有后者起作用

5.提高可讀性的簡(jiǎn)寫(xiě)形式Verilog中有一些符號(hào)可用于UDP真值表中以提高可讀性符號(hào)表示解釋-沒(méi)有變化時(shí)序元件輸出的下一個(gè)值與當(dāng)前值相同?0、1或x任何值b0或1任何確定值r(01)0->1跳變f(10)1->0跳變p(01)、(0x)或(x1)任何上升沿(posedge)n(10)、(1x)或(x0)任何下降沿(negedge)*(??)任何跳變提高可讀性的簡(jiǎn)寫(xiě)形式table//clkdatstatenext

r0:?:

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論