verilog實現(xiàn)任意位二進制轉(zhuǎn)換BCD_第1頁
verilog實現(xiàn)任意位二進制轉(zhuǎn)換BCD_第2頁
verilog實現(xiàn)任意位二進制轉(zhuǎn)換BCD_第3頁
verilog實現(xiàn)任意位二進制轉(zhuǎn)換BCD_第4頁
verilog實現(xiàn)任意位二進制轉(zhuǎn)換BCD_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、verilog實現(xiàn)任意位二進制轉(zhuǎn)換BCD作者:kb129   來源:kb129   點擊數(shù):1372   更新時間:2014年06月08日   【字體:大 中 小】     一直感覺這是個很簡單的問題,直到突然自己連BCD都不太清楚的時候,才發(fā)現(xiàn)這沒有看起來那么簡單,這里介紹里任意位二進制轉(zhuǎn)為BCD的verilog代碼,這個轉(zhuǎn)換方法也可以用在C上面,此為原創(chuàng),轉(zhuǎn)載請注明,謝謝。 基礎(chǔ)知識:      BCD:BCD碼

2、又稱為8421碼,      意義:之所以有時候需要將binary轉(zhuǎn)換為BCD,一般是用在本科的實驗中,為了將binary顯示在數(shù)碼管中,當然還有很多應用,只是目前我還沒有用到。轉(zhuǎn)換算法:左移加3法      移位加3法的具體原理,在網(wǎng)上感覺也沒有人能夠說的清楚,以后找到書籍再說吧。下面解釋下左移加三算法。這里以8bit二進制數(shù)FF做例子。該算法的操作為上圖。下面對上圖的操作進行詳細的解釋:      由于8bit的二進制最大為FF,轉(zhuǎn)換為十進制

3、為255。所以需要使用三個BCD碼來表示所有的8bit二進制數(shù)。上圖的hundreds表示百位的BCD,tens表示十位的BCD,Units表示個位的BCD。算法的操作為一直將binary數(shù)據(jù)左移,移出的數(shù)據(jù)按順序存在hundreds,tens,Units。例如上面的shift1,shift2,shift3操作后,Units變?yōu)榱?111,至于為何在shift3后進行add3操作,是因為在算法中每一次左移,都要對hundreds,tens和Units進行判斷,如果hundreds,tens和Units里面的值大于或等于5,就將hundreds,tens和Units自加3.所以shift3后,U

4、nits里面為0111,表示為7,此時不能左移,而是對Units加三操作,所以Units的值從0111變?yōu)榱?010.值得注意的是,只要hundreds,tens和Units中任意一個的值大于或等于5(0101),就要先進行一次自加三的操作,然后才能繼續(xù)左移,后面的操作同上。注意2:n位的binary就需要進行n次左移注意3:最后一次左移不需要進行add3操作注意4 :  親自推導16位的,和24位的binary轉(zhuǎn)換,結(jié)果正確,所以該算法適用于任意位binaryto  BCD,當然這種論斷沒有足夠的理論依據(jù)。verilog代碼:說明:對于8bit及以下的binar

5、y,可以使用case語句實現(xiàn)移位加三算法。由于這里說明的是任意位的二進制數(shù),轉(zhuǎn)為BCD,所以我的代碼中設(shè)計了一個狀態(tài)機,來控制移位,加三和結(jié)束操作。由于代碼編寫時間倉促,其中或許有些bug。/name: 二進制轉(zhuǎn)BCD/data: 2014-04-17 at kb129/info: as 2*8=255  change to BCD then this need 3 times of “8421”module b_to_bcd(      clk,      rst_n, &

6、#160;    binary,      state_en,     BCD);parameter   b_length      = 8;parameter   bcd_len       = 12;parameter   idle       

7、       = 5'b00001;parameter   shift             = 5'b00010;parameter   wait_judge   = 5'b00100;parameter   judge        

8、60;  = 5'b01000;parameter   add_3          = 5'b10000;input       clk;input       rst_n;input    b_length-1:0  binary;input     

9、; state_en;output reg bcd_len-1:0  BCD;reg  b_length-1:0  reg_binary;     reg  3:0    bcd_b, bcd_t, bcd_h;reg  3:0    shift_time;             

10、60;      reg   5:0    c_state, n_state;reg      add3_en;reg      change_done;/this is a three section kind of state code stylealways(posedge clk or negedge rst_n)begin   

11、     if(!rst_n)              c_state <= idle;       else             c_state <= n_state;end/the second sectionalways(po

12、sedge clk or negedge rst_n)begin       if(!rst_n)                  c_state <= idle;       else         

13、0;       case(n_state)                 idle:begin                       

14、60;       if(binary!=0)&&(state_en=1'b1)&&(change_done=0'b0)                                

15、;       n_state <= shift;                              else          

16、60;                           n_state <= idle;                    &

17、#160;     end                 shift: n_state <= wait_judge;       wait_judge: begin             &

18、#160;                 if(change_done=1'b1)                             

19、         n_state <= idle;                               else        

20、;                              n_state <= judge;                 &#

21、160;        end                judge:begin                        

22、0;          if(add3_en)                                       n_s

23、tate <= add_3;                               else                &#

24、160;                      n_state <= shift;                         

25、; end                add_3:begin                               &#

26、160; n_state <= shift;                           end               default: n_state <= idle;&#

27、160;               endcaseend/the third sectionalways(posedge clk or negedge rst_n)begin         if(!rst_n)             

28、     begin                          shift_time  <= 4'b0;              

29、60;           change_done <= 1'b0;                          add3_en  <= 1'b0;    

30、             end         else           case(n_state)           idle:begin    &#

31、160;                     shift_time <= b_length;                         

32、; reg_binary <= binary;                          bcd_h     <= 4'b0;             

33、             bcd_t     <= 4'b0;                          bcd_b     <= 4'

34、;b0;                        end          shift:begin              

35、0;        bcd_h,bcd_t,bcd_b,reg_binary <= bcd_h,bcd_t,bcd_b,reg_binary<<1;                      shift_time <= shift_time-1;    &

36、#160;                 if(shift_time=1)     change_done <= 1'b1;                      els

37、e                       change_done <= 1'b0;                     end  wait_jud

38、ge:begin                       if(bcd_h>=4'd5)|(bcd_t>=4'd5)|(bcd_b>=4'd5)                

39、;               add3_en <= 1;                       else          &

40、#160;                    add3_en <= 0;                      if(change_done=1)   BCD <

41、;= bcd_h,bcd_t,bcd_b;                    end        judge:  add3_en <= 0;       add_3: begin      

42、0;                if(bcd_h>=4'd5) bcd_h <= bcd_h + 4'b0011; else bcd_h <= bcd_h;                      &

43、#160;if(bcd_t>=4'd5) bcd_t <= bcd_t + 4'b0011; else bcd_t <= bcd_t;                       if(bcd_b>=4'd5) bcd_b <= bcd_b + 4'b0011; else bcd_b <= bcd_b;

44、0;                  end      default: begin                        

45、60;  change_done <= 1'b0;                           add3_en  <= 1'b0;            

46、      end           endcase        endendmodule代碼的仿真:這里對上面的代碼進行了仿真,仿真結(jié)果顯示上面代碼可以實現(xiàn)8bitbinary的BCD轉(zhuǎn)換。testbench:module  filter_tb;reg clk;reg rst_n;reg state_en;reg  7:0 binary;wire 11

47、:0 BCD;initial       begin                clk=0;                rst_n=0;      &#

48、160;          state_en = 0;     #100   binary = 8'h3f;     #150   rst_n=1;     #200     state_en =1;endalways  #10  clk=clk;b_to_bcd u_b_to_bcd( .

49、clk(clk), .rst_n(rst_n), .binary(binary), .state_en(state_en), .BCD(BCD);endmodule仿真結(jié)果:二進制的3f=十進制的63利用verilog將二進制碼轉(zhuǎn)換為十進制BCD碼時間 2014-02-20 10:54:17 CSDN博客 原文  主題 軟件開發(fā)           小序 :                先說一個 bear

50、 的親身體會,bear 在做一些 fpga 小設(shè)計時經(jīng)常會用到數(shù)據(jù)顯示功能,比如數(shù)字時鐘,數(shù)字頻率計,溫度計,跑表等等,往往我們會選用        led 數(shù)碼管來做顯示,  因為它驅(qū)動起來比 lcd 液晶要簡單的很多,我們知道 fpga 中寄存器在定義和儲存的數(shù)據(jù)都是采用二進制的格式 ,而 fpga 輸出給數(shù)碼        管做顯示的數(shù)據(jù)必須是十進制的格式 , 之前 bear 經(jīng)常會選擇把一個寄存器的個位和十位分開定義 ,比如在做數(shù)字時鐘時 ,就會吧 時,分,秒的各位和十位    

51、;    都分別定義成一個變量  ,無疑這種方法會增加代碼的復雜度 ,所以考慮需要一個專門把 二進制 的數(shù)據(jù)轉(zhuǎn)換成 十進制 BCD碼的模塊 ,在網(wǎng)上有一些, 但是好        像都不太完整 , 所以bear花了一下午寫了一個 ,親測效果不錯 ,希望對朋友們有所幫助,下面開始正文。  首先給出二進制碼轉(zhuǎn)換為十進制BCD碼的幾個步驟(以8bit二進制碼為例):                1.將二進制碼左移一位(或者乘2)  

52、;              2.找到左移后的碼所對應的個,十,百位。                3.判斷在個位和百位的碼是否大于5,如果是則該段碼加3。                4.繼續(xù)重復以上三步直到移位8次后停止。               下面是一個例子 ,將 1111_1111

53、 轉(zhuǎn)換為 BCD碼 ,如果8bit數(shù)據(jù)最終移位得到18bit 數(shù)據(jù) ,那么個位,十位,百位分別對應129,1613,1817位。                                        下面給出   CODE:             timescale 1ns / 1ps module bin_dec(c

54、lk,bin,rst_n,one,ten,hun,count,shift_reg     ); input  7:0 bin; input        clk,rst_n; output 3:0 one,ten; output 3:0 count; output 1:0 hun; output 17:0shift_reg; reg    3:0 one,ten; reg    1:0 hun; reg    3:0 count; reg    

55、17:0shift_reg=18'b000000000000000000; / 計數(shù)部分 / always ( posedge clk or negedge rst_n ) begin  if( !rst_n )     count<=0;  else if (count<=8)    count<=count+1;  else    count<=9; end / 二進制轉(zhuǎn)換為十進制 / always (posedge clk or negedge rst_n

56、) begin   if (!rst_n)        shift_reg=0;   else if (count=0)        shift_reg=10'b0000000000,bin;   else if ( count<=8)                /實現(xiàn)8次移位操作    begin       if(shift_reg

57、11:8>=5)         /判斷個位是否>5,如果是則+3             begin              if(shift_reg15:12>=5) /判斷十位是否>5,如果是則+3                    begin    shift_reg15

58、:12=shift_reg15:12+2'b11;       shift_reg11:8=shift_reg11:8+2'b11; shift_reg=shift_reg<<1;  /對個位和十位操作結(jié)束后,整體左移  endelse        begin                    shift_reg15:12=shift_reg15:12; shif

59、t_reg11:8=shift_reg11:8+2'b11; shift_reg=shift_reg<<1;  end           end                       else           begin              if(shift_reg15:

60、12>=5)                  begin    shift_reg15:12=shift_reg15:12+2'b11;    shift_reg11:8=shift_reg11:8;shift_reg=shift_reg<<1;  end              else        begin &

61、#160;                  shift_reg15:12=shift_reg15:12; shift_reg11:8=shift_reg11:8; shift_reg=shift_reg<<1;  end           end            end   end /輸出賦值/ always ( posedge clk or negedg

62、e rst_n ) begin  if ( !rst_n )   begin     one<=0;     ten<=0;     hun<=0;    end  else if (count=9)  /此時8次移位全部完成,將對應的值分別賦給個,十,百位   begin     one<=shift_reg11:8; ten<=shift_reg15:12; hun<=shift_reg17:16;

63、0;   end end   以下是仿真結(jié)果,bin為輸入的二進制碼,為了便于對比,仿真時也化成十進制顯示了,one,ten,hun分別對應BCD碼的個,十,百位。                 基本思路是把二進制按4位一組分開,把每一組對應的二進制數(shù)轉(zhuǎn)換成bcd碼表,最后把所有位進行bcd碼相加,第一個4位的碼表也可以省略,第二個4位對于關(guān)系是4'h0: 10'h000;4'h1: 10'h016;4'h2: 10'h032;4'h3:

64、 10'h048;4'h4: 10'h064;4'h5: 10'h080;4'h6: 10'h096;4'h7: 10'h112;4'h8: 10'h128;4'h9: 10'h144;4'ha: 10'h160;4'hb: 10'h176;4'hc: 10'h192;4'hd: 10'h208;4'he: 10'h224;4'hf: 10'h240;第3組對于你來說只有3位4'h0: 1

65、4'h0000;4'h1: 14'h0256;4'h2: 14'h0512;4'h3: 14'h0768;4'h4: 14'h1024;4'h5: 14'h1280;4'h6: 14'h1536;4'h7: 14'h1792;把11位二進制查表得出的3個數(shù)進行bcd碼相加這里把每個結(jié)果按同級單個bcd碼相加,也就是>9對結(jié)果加6,>19對結(jié)果加12,>29對結(jié)果加18類推,當然高一級的bcd碼要加上低一級的進位,也就是高出4位的部分,最后把結(jié)果拼接 給你一個

66、16位有符號的例子module bcd(clk, hex, dec);input clk;input 16:0 hex;output 19:0 dec;wire 15:0 rrhex;reg 3:0 rhex3:0;reg 17:0 rhexd;reg 13:0 rhexc;reg 9:0 rhexb;reg 3:0 rhexa;reg 5:0 resa,resb,resc,resd;reg 3:0 rese;assign rrhex = hex16 ? hex15:0+1'b1 : hex15:0; /去符號assign dec = rese,resd3:0,resc3:0,resb

67、3:0,resa3:0;always(posedge clk) /第一級寄存器begin rhex3 <= rrhex15:12; rhex2 <= rrhex11:8; rhex1 <= rrhex7:4; rhex0 <= rrhex3:0;endalways(posedge clk) /第二級寄存器,千begin case(rhex3) 4'h0: rhexd <= 18'h00000; 4'h1: rhexd <= 18'h04096; 4'h2: rhexd <= 18'h08192; 4

68、9;h3: rhexd <= 18'h12288; 4'h4: rhexd <= 18'h16384; 4'h5: rhexd <= 18'h20480; 4'h6: rhexd <= 18'h24576; 4'h7: rhexd <= 18'h28672; default: rhexd <= 10'h00000; endcaseendalways(posedge clk)begin case(rhex2) 4'h0: rhexc <= 14'h0000;

69、4'h1: rhexc <= 14'h0256; 4'h2: rhexc <= 14'h0512; 4'h3: rhexc <= 14'h0768; 4'h4: rhexc <= 14'h1024; 4'h5: rhexc <= 14'h1280; 4'h6: rhexc <= 14'h1536; 4'h7: rhexc <= 14'h1792; 4'h8: rhexc <= 14'h2048; 4'h9: rh

70、exc <= 14'h2304; 4'ha: rhexc <= 14'h2560; 4'hb: rhexc <= 14'h2816; 4'hc: rhexc <= 14'h3072; 4'hd: rhexc <= 14'h3328; 4'he: rhexc <= 14'h3584; 4'hf: rhexc <= 14'h3840; default: rhexc <= 14'h0000; endcaseend always(posedge

71、 clk)begin case(rhex1) 4'h0: rhexb <= 10'h000; 4'h1: rhexb <= 10'h016; 4'h2: rhexb <= 10'h032; 4'h3: rhexb <= 10'h048; 4'h4: rhexb <= 10'h064; 4'h5: rhexb <= 10'h080; 4'h6: rhexb <= 10'h096; 4'h7: rhexb <= 10'h11

72、2; 4'h8: rhexb <= 10'h128; 4'h9: rhexb <= 10'h144; 4'ha: rhexb <= 10'h160; 4'hb: rhexb <= 10'h176; 4'hc: rhexb <= 10'h192; 4'hd: rhexb <= 10'h208; 4'he: rhexb <= 10'h224; 4'hf: rhexb <= 10'h240; default: rhexb &l

73、t;= 10'h000; endcaseend always(posedge clk)begin rhexa <= rhex0;endalways(posedge clk)begin resa = addbcd4(rhexa3:0,rhexb3:0,rhexc3:0, rhexd3:0); resb = addbcd4(resa5:4, rhexb7:4,rhexc7:4, rhexd7:4); resc = addbcd4(resb5:4, rhexb9:8,rhexc11:8, rhexd11:8); resd = addbcd4(resc5:4, 4'h0, rhe

74、xc13:12,rhexd15:12); rese = resd5:4 + rhexd17:16;endfunction 5:0 addbcd4; input 3:0 add1,add2,add3,add4;begin addbcd4 = add1 + add2 + add3 + add4; if(addbcd4 > 6'h1d) />29 最低有一個可能出現(xiàn)0xf,但由二進制轉(zhuǎn)換而來的數(shù)在這里不會出現(xiàn)大于40的情況 addbcd4 = addbcd4 + 5'h12; else if(addbcd4 > 5'h13) />19 addbcd4

75、= addbcd4 + 4'hc; else if(addbcd4 > 4'h9) />9 addbcd4 = addbcd4 + 4'h6;endendfunctionendmodule利用verilog將二進制碼轉(zhuǎn)換為十進制BCD碼 分類: FPGA verilog 2014-02-20 10:54 2359人閱讀 評論(7) 收藏 舉報 二進制十進制BCDverilog          小序:               

76、先說一個 bear 的親身體會,bear 在做一些 fpga 小設(shè)計時經(jīng)常會用到數(shù)據(jù)顯示功能,比如數(shù)字時鐘,數(shù)字頻率計,溫度計,跑表等等,往往我們會選用       led 數(shù)碼管來做顯示, 因為它驅(qū)動起來比 lcd 液晶要簡單的很多,我們知道 fpga 中寄存器在定義和儲存的數(shù)據(jù)都是采用二進制的格式 ,而 fpga 輸出給數(shù)碼       管做顯示的數(shù)據(jù)必須是十進制的格式 , 之前 bear 經(jīng)常會選擇把一個寄存器的個位和十位分開定義 ,比如在做數(shù)字時鐘時 ,就會吧 時,分,秒的各位和十位 

77、     都分別定義成一個變量  ,無疑這種方法會增加代碼的復雜度 ,所以考慮需要一個專門把 二進制 的數(shù)據(jù)轉(zhuǎn)換成 十進制 BCD碼的模塊 ,在網(wǎng)上有一些,但是好       像都不太完整 , 所以bear花了一下午寫了一個 ,親測效果不錯 ,希望對朋友們有所幫助,下面開始正文。                               首先給出

78、二進制碼轉(zhuǎn)換為十進制BCD碼的幾個步驟(以8bit二進制碼為例):               1.將二進制碼左移一位(或者乘2)               2.找到左移后的碼所對應的個,十,百位。               3.判斷在個位和百位的碼是否大于5,如果是則該段碼加3。          &#

79、160;    4.繼續(xù)重復以上三步直到移位8次后停止。               下面是一個例子 ,將 1111_1111 轉(zhuǎn)換為 BCD碼 ,如果8bit數(shù)據(jù)最終移位得到18bit 數(shù)據(jù) ,那么個位,十位,百位分別對應129,1613,1817位。                                  

80、0;            之前寫的代碼在轉(zhuǎn)換完之后沒有對count清零,所以在仿真時候需要用rst_n清零,感謝博友onlytime417的提示,經(jīng)過修改之后可以對不同的輸入值連續(xù)轉(zhuǎn)換,而不需要rst_n的復位,下面是修改后的代碼以及仿真結(jié)果,(該轉(zhuǎn)換模塊已經(jīng)在實際項目中應用)。               CODE:       &#

81、160;  timescale 1ns / 1psmodule bin_dec(clk,bin,rst_n,one,ten,hun,count,shift_reg    );input  7:0 bin;input        clk,rst_n;output 3:0 one,ten;output 3:0 count;output 1:0 hun;output 17:0shift_reg;reg    3:0 one,ten;reg    1:0 hun;reg

82、   3:0 count;reg    17:0shift_reg=18'b000000000000000000;/ 計數(shù)部分 /always ( posedge clk or negedge rst_n )begin if( !rst_n )    count<=0; else if (count=9)   count<=0; else   count<=count+1;end/ 二進制轉(zhuǎn)換為十進制 /always (posedge cl

83、k or negedge rst_n )begin  if (!rst_n)       shift_reg=0;  else if (count=0)       shift_reg=10'b0000000000,bin;  else if ( count<=8)                /實現(xiàn)8次移位操作   begin      i

84、f(shift_reg11:8>=5)         /判斷個位是否>5,如果是則+3            begin             if(shift_reg15:12>=5) /判斷十位是否>5,如果是則+3                   begin   shif

85、t_reg15:12=shift_reg15:12+2'b11;      shift_reg11:8=shift_reg11:8+2'b11;shift_reg=shift_reg<<1;  /對個位和十位操作結(jié)束后,整體左移 end             else       begin               

86、;    shift_reg15:12=shift_reg15:12;shift_reg11:8=shift_reg11:8+2'b11;shift_reg=shift_reg<<1; end          end                    else      &

87、#160;   begin             if(shift_reg15:12>=5)                 begin   shift_reg15:12=shift_reg15:12+2'b11;   shift_reg11:8=shift_reg11:8;shift_reg=shift_reg<<1; end  

88、0;          else       begin                   shift_reg15:12=shift_reg15:12;shift_reg11:8=shift_reg11:8;shift_reg=shift_reg<<1; end          end    

89、      end  end/輸出賦值/always ( posedge clk or negedge rst_n )begin if ( !rst_n )  begin    one<=0;    ten<=0;    hun<=0;   end else if (count=9)  /此時8次移位全部完成,將對應的值分別賦給個,十,百位  begin    one&

90、lt;=shift_reg11:8;ten<=shift_reg15:12;hun<=shift_reg17:16;   endendendmodule   以下是仿真結(jié)果,bin為輸入的二進制碼,為了便于對比,仿真時也化成十進制顯示了,one,ten,hun分別對應BCD碼的個,十,百位。修改前的仿真結(jié)果:                          

91、60; 修改后的仿真結(jié)果:二進制 轉(zhuǎn)換成十進制 BCD碼(加3移位法) 2010-07-05 15:53:35 分類:   "二進制數(shù)調(diào)整BCD碼的方法是將二進制碼左移8次,每次移位后都檢查低四位LSD+3是否大于7,如是則加3,否則不加,高4位MSD作同樣處理"一、為什么左移8次原寄存器是存二進制數(shù)的,新寄存器是存十進制數(shù)的,當然要左移8次,把數(shù)據(jù)全部移進去。但這里要注意兩件事,第一,如果只安排一個字節(jié)作十進制寄存器,原數(shù)據(jù)要小于 64H(即100)。第二,由于新寄存器是十進制的,要隨時調(diào)整。二、檢查 半字節(jié)+3 是否大于 7,是,則 +3在

92、 51 系列里有十進制調(diào)節(jié)指令(半字節(jié)大于 9,則加 6,應該不難理解),PIC 里沒有,只好采取變通的方法。檢查 半字節(jié)+3 是否大于 7,也就是檢查半字節(jié)是否大于 4。因為,如果大于 4(比如 5、6),下一步左移就要溢出了,所以加 3,等于左移后的加 6,起到十進制調(diào)節(jié)的作用。那為什么要繞個圈子去檢測 半字節(jié)+3 是否大于 7 呢?這樣程序編起來會簡練一些。一個例子假如有一個八位二進制數(shù)255,我把他轉(zhuǎn)255的十進制數(shù)0        1111 1111    原數(shù)1        0000 0001    ;左移一次2        0000 0011   ; 左移二次3     

溫馨提示

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

最新文檔

評論

0/150

提交評論