fpga正交信號發生器課程設計_第1頁
fpga正交信號發生器課程設計_第2頁
fpga正交信號發生器課程設計_第3頁
fpga正交信號發生器課程設計_第4頁
fpga正交信號發生器課程設計_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、廣西大學行健文理學院課程設計報告課程名稱:FPGA課程設計設計題目: 正交信號發生器 系 別: 通信與控制工程系 專 業: 電子信息工程 班 級: 10級電子信息工程3班 學生姓名: 學 號: 起止日期: 2013年6月8日 2012年6月18日 指導教師: 教研室主任: 摘 要 EDA技術是指以計算機為工作平臺,融合了應用電子技術、計算機技術、信息處理及智能化技術的最新成果,進行電子產品的自動設計。本文詳細介紹了基于FPGA的DSP開發技術,提供了一種設計正交信號發生器的方案。在信號檢測和信號處理中經常需要正交信號。由于正交方波信號較易得到,所以工程人員進行相關檢測時所采用的正交信號源通常為

2、方波信號。但通過對方波信號作傅立葉分析可知,這種信號含有豐富的諧波分量,嚴重影響相關檢測中的接收精度及檢測靈敏度。采用可控的正、余弦波作正交信號,就可以有效地避免諧波問題。本文采用MatlabDSP Builder建立模型來實現正交信號發生器,使用自頂向下的設計方法,設計簡單,能夠提高設計效率。利用DSP Builder 建立起數學模型,實現了模塊化的設計變得直觀。在Simulink中進行仿真驗證,通過Signal Compiler 將模型轉換成硬件描述語言,經過Quartus仿真正確后,下載到FPGA里,輸出的正交信號能靈活的調頻,調相,調幅,實現全數字化設計。該方案簡化了硬件設計的難度。對

3、各個模塊的參數進行簡單的設置就能完成復雜的電子設計系統設計。 關鍵詞:EDA技術;DSP Builder;正交信號發生器;Signal Compiler目 錄設計要求11、方案論證與對比11.1方案一11.2 方案二11.3方案選擇22、系統總體方案設計及實現22.1正交信號發生器設計22.1.1 DDS原理及設計22.1.2 頻率字輸入的計算62.1.3 輸出波形峰峰值的計算62.1.4 相位差的計算62.1.5正交信號發生器電路模型圖72.1.6 Simulink模型的仿真82.2 SignalCompiler的使用92.2.1 分析當前的模塊92.2.2 設置SignalCompiler

4、92.2.3 把模型文件MDL 轉換成VHDL92.2.4 綜合92.2.5 Quartus試配102.3嵌入式鎖相環的設計102.4 引腳的鎖定103、設計結果與結論114、結束語及致謝115、元器件及儀器設備明細表126、參考文獻137、程序清單13正交信號發生器設計要求能通過按鍵進行幅度控制,輸出信號的頻率在1050kHZ,或者固定在某一頻率上,要求峰-峰值大于3V,且輸出波形不失真。1、方案論證與對比1.1方案一該方案根據矩陣式鍵盤輸入給FPGA送出頻率控制字與相位控制字,用于設定輸出正弦波的頻率與相位。高速DA轉換器用于正弦波的DA轉換。FPGA構成DDS的核心部分,用于接收送來的頻

5、率字與相位字,同時給DA轉換器輸出正弦波數據。采用字符型液晶顯示屏實時顯示輸出的頻率與相位。該方案需借助Quartus來完成。圖1 方案一原理框圖按鍵控制DDS相位累加器幅度控制D/A轉換電路A頻率字輸入相位字輸入A路輸出 1.2 方案二該方案是基于DSP Builder與DDS并借助于MATLAB進行設計的。首先在Matlab中DSP Build的Simulink中進行建模,系統仿真通過SignalCompiler將模型設計文件轉換成相應的硬件描述語言(VHDL),在Quartus平臺上進行綜合生成網表文件,并適配下載至FPGA。在這個方案中,有兩路正弦信號,一路為參考信號,另一路是可數控的

6、移動信號,并且這兩路可同步進行幅度和頻率數控,即對于這兩路輸出的正弦信號,在相位、頻率和幅度3個參數上都能完成等步長數控步進,而且還能對指定的參數進行設定。頻率字輸入圖2 方案二原理框圖信號輸出DDS相位累加器加法器查找表查找表相位字輸入信號輸出1.3方案選擇方案一是基于Quartus,在設計的過程中,利用VHDL完成電路設計,必須借助于EDA工具中的綜合器、適配器、時序仿真器和編程器等工具進行相應的處理,才能使此項設計在FPGA上完成硬件實現并得到硬件測試,在進行HDL文本輸入設計流程中比較繁瑣,而且容易出錯。而方案二是基于DSP Builder進行手動流程設計,在設計過程中,DSP Bui

7、lder會自動完成VHDL的轉換、綜合、適配,而不像方案一那樣要進行HDL文本輸入,這樣的話就能避免文本輸入過程中的絕大多數錯誤。因而我們選擇方案二。2、系統總體方案設計及實現2.1正交信號發生器設計2.1.1 DDS原理及設計直接數字頻率合成技術(Direct Digital Synthesis,DDS)是一種從相位概念出發直接合成所需要的波形的新的全數字頻率合成技術,該技術具有頻率分辨率高、頻率變化速度快、相位可連續性變化等特點,在數字通信系統中被廣泛采用,是信號生成的最佳選擇。DDS主要由相位累加器、相位調制器、正弦ROM查找表、D /A轉換器等組成。系統時鐘clk由一個穩定的晶體振蕩器

8、產生,用來同步整個合成器的各組成部分。同步寄存器的使用是為了當輸入的頻率字改變時不會干擾相位累加器的正常工作。相位累加器是整個DDS的核心,它由N位加法器和N位相位寄存器級聯構成,類似一個簡單的加法器,完成上面推導中的相位累加功能。每來一個時鐘脈沖,加法器就將輸入的N位頻率字與相位寄存器輸出的累加相位數據相加,然后將相加后的結果送至相位累加器的輸入端,相位寄存器就將在上一個時鐘作用后產生的新相位數據反饋到加法器的輸入端,以使加法器在下一個時鐘的作用下繼續將相位數據與輸入的頻率字相加。當相位累加器累加滿量(2) 時,就會產生一次溢出,完成一個周期性的動作,這個周期就是合成信號的一個周期,累加器的

9、溢出頻率就是DDS的合成信號頻率。相位調制器接收相位累加器的相位輸出,并與一個相位偏移值相加,主要用于信號的相位調制, 如PSK(相移鍵控)等。在不使用時可去掉該部分,或加一個固定的相位字輸入。注意相位字輸入也要用同步寄存器保持同步,但相位字輸入的寬度M與頻率字輸入N往往是不相等的,一般M < N。正弦ROM查找表的作用是完成查表轉換,或理解為相位到幅度的轉換。將相位累加器或相位調制器輸出的相位數據作為取樣地址,來尋找正弦ROM表進行相位到幅度的變換,輸出不同的幅度編碼。經D /A轉換器得到相應的階梯波,最后經過低通濾波器對階梯波進行平滑處理,得到由輸入的頻率字決定的連續變化的輸出正弦波

10、。下面的即為基本DDS結構的常用參數計算公式: 輸出頻率: 頻率字: 其中是頻率控制字,為系統基準時鐘的頻率值,N為相位累加器的數據位寬,也是頻率控制字的數據位寬。 圖3 DDS基本結構原理圖相位字輸入同步寄存器M同步寄存器相位累加器相位調制器正弦ROMM正弦信號輸出頻率字輸入CLKN下圖為 DDS基本結構原理圖,仔細觀察。頻率控制字的可調整性使得系統輸出頻率非常容易調整。輸出正弦波頻率f=fclk*frequword/220,系統時鐘,頻率控制字DDS系統時鐘12MHz,異步于CPU時鐘20bit頻率控制字,8bit相位控制字,8bit數據輸出每波形抽樣256個點。相位累加器相位累加器結構如

11、圖(4)所示。假設系統時鐘為Fc,輸出頻率為Fout。每次轉動一個角度360°/2N, 則可以產生一個頻率為Fc/2N 的正弦波的相位遞增量。那么只要選擇恰當的頻率控制字M,使得 Fout / Fc= M / 2N,就可以得到所需要的輸出頻率Fout,Fout = Fc*M / 2N,相位幅度轉換通過相位累加器,我們已經得到了合成Fout 頻率所對應的相位信息,然后相位幅度轉換器把0°360°的相位轉換成相應相位的幅度值。 (1)相位累加器結構如圖(4)所示。圖4 相位累加器 (2)如圖5所示,該部分是頻率字輸入,不同的頻率字輸入會使得信號輸出波形的頻率不同。 圖

12、5 頻率字輸入 (3)如圖6所示,該部分是輸入地址為6位,輸出值位寬為8的正弦查找表模塊,且輸入地址總線為無符號整數。圖6 LUT模塊 高速D/A模塊GW_ADDA板含兩片10位超高速DAC(轉換速率最高150MHz),D/A全部處于使能狀態,除了數據線外,任一器件的控制信號線只有時鐘線,這有利于高速控制和直接利用MATLAB/DSP Builder工具的設計。GW_ADDA板上工作時鐘必須由FPGA的I/O口提供,優點是時鐘頻率容易變化,且可通過Cyclone中的PLL的到幾乎任何時鐘頻率。由此即可測試DAC的最高轉換頻率。 兩個電位器可分別調協兩個D/A輸出的幅度(輸出幅度峰峰值不可大于5

13、V,否則波形失真);模擬信號從接插口的2針“AIN”輸入,J1和J2分別是模擬信號輸出的PA、PB口,也可在兩掛鉤處輸出,分別是兩個10位DA5651輸出口。電路原理圖如圖7所示。相位累加器結構如圖(4)所示。假設系統時鐘為Fc,輸出頻率為Fout。每次轉動一個角度360°/2N, 則可以產生一個頻率為Fc/2N 的正弦波的相位遞增量。下圖為高速DA模塊電路原理圖,認真理解并運用:圖7 高速DA模塊電路原理圖2.1.2 頻率字輸入的計算由DDS的頻率輸入字公式:計算,式中N為相位累加器的數據位寬,也是頻率輸入字的數據位寬,fclk是系統基準時鐘的頻率值。本設計中N=20,fclk=1

14、2MHZ,fout=50KHZ根據計算得出頻率輸入字為4369。2.1.3 輸出波形峰峰值的計算本設計中正弦查找模塊輸入地址為8位,輸出位寬為10位,且輸入地址總線為無符號整數,可設置起始值為0、結束值為2、步進值為2/26。為了得到完整滿度的波形輸出,計算式可寫成:511*sin0:2*pi/28:2*pi+5122.1.4 相位差的計算本設計用8bit相位控制字,8bit數據輸出每波形抽樣28=256個點,所以每按一鍵增加或減小相位差為3600/256=1.400 符合設計要求。2.1.5正交信號發生器電路模型圖兩個電位器可分別調協兩個D/A輸出的幅度,使用時一定要調節好,使之能調幅。基于

15、DDS的正交信號發生器是整個系統的設計核心部分,其電路模型圖如圖8所示。圖8 基于DDS的正交信號發生器MDL模型DDS用來產生頻率、相位和幅度可變的正弦波。DDS的工作原理是利用正弦信號的相位與時間呈線性關系的特性”1,采用相位累加方法作為地址,讀出相應ROM中的值,得到正弦信號的瞬時幅值,實現頻率合成。DDS包括頻率控制字、相位控制字、同步寄存器、相位累加器、波形存儲器、數模轉換器、低通濾波器。在系統時鐘的控制下相位累加器對頻率控制字K進行累加,得到相位碼,相位碼尋址ROM得到幅值碼,經過數模轉換后得到相應的階梯波,再經過低通濾波得到連續平滑的、由頻率控制字K決定的模擬輸出波形。DDS可以

16、用來產生多種波形,只要改變ROM中的數據預先設置成正弦波、余弦波等,根據查表就可以實現不同的波形。利用DSPBuilder設計DDS。然后轉換成VHDL。DDS的分辨率在相位累加器的位數,足夠大時,理論上可以獲得相應的分辨精度。DDS是一個全數字結構的開環系統,無反饋環節,速度非常快。DDS的相位誤差主要依賴于時鐘的相位特性,相位誤差小,相位是連續變化的,形成的信號具有良好的頻譜。這是傳統的直接頻率合成方法無法實現的。相位字輸入的數據寬度M往往小于相位寄存器字長,實際的DDS結構中很大。其中Subsystem的原理圖如圖9 圖9 Subsystem的原理圖2.1.6 Simulink模型的仿真

17、在Sinout模型編輯窗口中,選擇SlimulationStart命令,開始仿真,等待仿真結束后,雙擊Scope模塊,打開Scope觀察窗口。其仿真波形如圖10圖10 simulink模型仿真圖2.2 SignalCompiler的使用2.2.1 分析當前的模塊雙擊Sinout模型中的SignalCompiler模塊,之后單擊Analyze按鈕后,SignalCompiler就會對Sinout模型進行分析,檢查模型有無錯誤,并在MATLAB主窗口中彈出對話框,并給出相關信息。2.2.2 設置SignalCompilerSignalCompiler窗口中大致分為3個功能部分:項目設置選項 硬件編

18、譯流程信息框2.2.3 把模型文件MDL 轉換成VHDL當設置好Device和Synthesis后,右側的硬件編譯部分就會列出一個操作:(1)Convert MDL to VHDL(2) Synthesis(3) Quartus2.2.4 綜合單擊步驟(2)的圖標,完成綜合過程。2.2.5 Quartus試配單擊步驟(3)的圖標,調用Quartus完成編譯試配過程,生成編譯文件。編譯文件可以直接用于FPGA的編譯配置。打開Quartus后 ,需在VHDL文件程序中實體說明中添加: CLK : out std_logic;在結構體最后加入:CLK<=CLOCK;2.3嵌入式鎖相環的設計當輸

19、出波形頻率較高時,由于采樣一個完整周期的波形數據點數減少,勢必引起波形失真,要消除波形失真,一是可以增加采樣波形數據的點數,二是提高系統的主工作時鐘頻率。若不增加外配ROM的情況下,可以使用后一種方法。本系統設計時在充分利用FPGA的存儲空間的情況下,為了提高波形的輸出頻率(在不失真的條件下),還使用了Cyclone器件中的嵌入式鎖相環,提高系統的主工作時鐘頻率,在實際工作時的主時鐘頻率達12 MHz。2.4 引腳的鎖定設計中各引腳的鎖定如圖11所示。本設計選擇工作模式1,通過鍵盤控制波形輸出的幅度。圖11各引腳的鎖定3、設計結果與結論(1)嵌入式邏輯分析儀輸出波形如圖12圖12 嵌入式邏輯分

20、析儀輸出波形(2)波形失真度與儲存波形ROM的位數及主工作時鐘頻率有關。(3)1.,2,3鍵控制幅度,其中1是微調,2,3粗調。由于我們頻率設定在一個固定值,在10HZ到50KHZ之間,能夠實現在峰峰值大于3V波形不失真。且波形較穩定。4、結束語及致謝在本文的撰寫過程中,老師作為我們的指導老師,他們治學嚴謹,學識淵博,視野廣闊,為我營造了一種良好的學術氛圍。置身其間,耳濡目染,潛移默化,使我不僅接受了全新的思想觀念,樹立了明確的學術目標,領會了基本的思考方式,掌握了通用的研究方法,而且還明白了許多待人接物與為人處世的道理。其嚴以律己、寬以待人的崇高風范,樸實無華、平易近人的人格魅力,與無微不至

21、、感人至深的人文關懷,令人如沐春風,倍感溫馨。這段時間的學習,使我們了解到了理論和實際之間的差別,第一次真正接觸到了實際中的問題,并通過和老師、同學交流,加強了自身的分析問題、解決問題的能力。同時,我們也發現了自己在某些方面的不足,這是我們以后要加以改進的方面。對于如何運用MATLAB與DSPbuilder有了更好的運用,使我們對硬件課程的學習有了更濃的興趣, 使我們對我們所學的這個方向服了更濃的興趣。雖然在做課設的過程中遇到過許多困難,尤其是思路一開始不正確的時候也產生過放棄的念頭,但最終還是堅持了下來,終于把這個課設完整圓滿的做完了。在此特向老師致以衷心的謝意!向他們無可挑剔的敬業精神、嚴

22、謹認真的治學態度、深厚的專業修養和平易近人的待人方式表示深深的敬意!5、元器件及儀器設備明細表設備與器件名數量備注計算機1臺MATLAB軟件1套MATLAB 7.0DSP Builder軟件1套DSP Builder6.0Quartus開發軟件1套Quartus II6.0EDA實驗箱1個GW48-PK2數字示波器1臺ADS7022S6、參考文獻1邊計年,薛宏熙譯. 用VHDL設計電子線路. 北京:清華大學出版社,2000.2黃正謹,徐堅等. CPLD系統設計技術入門與應用. 北京:電子工業出版社,2002.3蔣璇,蔵春華. 數學系統設計與PLD應用技術. 北京:電子工業出版社,2001.4李

23、宗伯,王蓉暉譯. VHDL設計表示和綜合. 北京:機械工業出版社,2002.5潘松,黃繼業,王國棟. 現代DSP技術. 西安:西安電子科技大學出版社,2003.6王金明,楊吉斌. 數字系統設計與Verilog HDL. 北京:電子工業出版社,2002.7王鎖萍. 電子設計自動化(EDA)教程. 成都: 電子科技大學出版社,2000.8徐志軍,徐光輝. CPLD/FPGA開發與應用. 北京:電子工業出版社,2002.9Altera Corporation. Altera Digital Library. Altera,2002.10Xilinx Inc. Data Book 2001. Xili

24、nx,2000.7、程序清單use dspbuilder.dspbuilderblock.all;library lpm;use lpm.lpm_components.all; library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;library dspbuilder;Entity biaozhun1 is Port(clk:out std_logic;clock:in std_logic;sclrp :in std_logic:='0'Input:in std_logic_vector(7

25、 downto 0);Input1:in std_logic_vector(31 downto 0);Input2:in std_logic_vector(7 downto 0);Input3:in std_logic_vector(7 downto 0);Output:out std_logic_vector(9 downto 0);Output1:out std_logic_vector(9 downto 0) );end biaozhun1;architecture aDspBuilder of biaozhun1 issignalSAOutputO:std_logic_vector(9

26、 downto 0);signalSAOutput1O:std_logic_vector(9 downto 0);signal sclr :std_logic:='0'signalA0W:std_logic_vector(32 downto 0);signalA1W:std_logic_vector(9 downto 0);signalA2W:std_logic_vector(15 downto 0);signalA3W:std_logic_vector(8 downto 0);signalA4W:std_logic_vector(32 downto 0);signalA5W:

27、std_logic_vector(8 downto 0);signalA6W:std_logic_vector(8 downto 0);signalA7W:std_logic_vector(33 downto 0);signalA8W:std_logic_vector(23 downto 0);signalA9W:std_logic_vector(32 downto 0);signalA10W:std_logic_vector(19 downto 0);signalA11W:std_logic_vector(19 downto 0);signalA12W:std_logic_vector(33

28、 downto 0);signalA13W:std_logic_vector(34 downto 0);signalA14W:std_logic_vector(10 downto 0);signalA15W:std_logic_vector(10 downto 0);signalA16W:std_logic_vector(10 downto 0);signalA17W:std_logic_vector(10 downto 0);signalA18W:std_logic_vector(10 downto 0);Beginassert (1<0) report altversion seve

29、rity Note;Output<=SAOutputO;Output1<=SAOutput1O;- Global reset circuitry for the input global reset sclrpsclr<=sclrp;- Input - I/O assignment from Simulink Block "Input"A3W(7 downto 0) <= Input;A3W(8) <= '0'- Input - I/O assignment from Simulink Block "Input1&qu

30、ot;A4W(31 downto 0) <= Input1;A4W(32) <= '0'- Input - I/O assignment from Simulink Block "Input2"A5W(7 downto 0) <= Input2;A5W(8) <= '0'- Input - I/O assignment from Simulink Block "Input3"A6W(7 downto 0) <= Input3;A6W(8) <= '0'A0W(32)<

31、;='0'- Constant assignment - Simulink Block "Constant0"A1W(9)<='0'A1W(8 downto 0)<="000000000"- Constant assignment - Simulink Block "Constant1"A2W(15)<='0'A2W(14 downto 0)<="000000000000000"- Concatenation Operation - Simul

32、ink Block "BusConcatenation"A8W(22 downto 0) <= A3W(7 downto 0) & A2W(14 downto 0);A8W(23)<='0'- Concatenation Operation - Simulink Block "BusConcatenation1"A9W(31 downto 0) <= A1W(8 downto 0) & A8W(22 downto 0);A9W(32)<='0'A16W(10)<='0&

33、#39;A17W(10)<='0'A18W(10)<='0'- Output - I/O assignment from Simulink Block "Output"Outputi : SBF generic map(width_inl=>11,width_inr=>0,width_outl=>10,width_outr=>0,lpm_signed=>BusIsUnsigned,round=>0,satur=>0)port map (xin=>A17W,yout=>SAOut

34、putO);- Output - I/O assignment from Simulink Block "Output1"Output1i : SBF generic map(width_inl=>11,width_inr=>0,width_outl=>10,width_outr=>0,lpm_signed=>BusIsUnsigned,round=>0,satur=>0)port map (xin=>A18W,yout=>SAOutput1O);-Bus Formatting Simulink Block "

35、AltBus"AltBusi : SBF generic map(width_inl=>34,width_inr=>0,width_outl=>32,width_outr=>0,lpm_signed=>BusIsUnsigned,round=>0,satur=>0)port map (xin =>A7W,yout=>A0W(31 downto 0);- Delay Element - Simulink Block "Delay"Delayi : SDelaygeneric map (LPM_WIDTH =>

36、; 34,LPM_DELAY => 1,SequenceLength => 1,SequenceValue => 1)port map (dataa=>A12W,clock=>clock,ena =>'1',sclr =>sclr,result=>A7W);- Product Operator - Simulink Block "Product"Producti : AltiMult generic map (LPM_WIDTHA=>11,LPM_WIDTHB=>9,PIPELINE=>0,o

37、ne_input=>0,lpm =>1,lpm_hint=>"UNUSED",cst_val =>"000000000",SequenceLength=>1,SequenceValue=>1,dspb_widthr=>20)port map (DATAA=>A14W,DATAB=>A5W,clock=>'0',ena =>'1',sclr =>'0',result=>A10W);- Product Operator - Simul

38、ink Block "Product1"Product1i : AltiMult generic map (LPM_WIDTHA=>11,LPM_WIDTHB=>9,PIPELINE=>0,one_input=>0,lpm =>0,lpm_hint=>"UNUSED",cst_val =>"000000000",SequenceLength=>1,SequenceValue=>1,dspb_widthr=>20)port map (DATAA=>A15W,DATAB=&

39、gt;A6W,clock=>'0',ena =>'1',sclr =>'0',result=>A11W);- Sum Operator - Simulink Block "ParallelAdderSubtractor"ParallelAdderSubtractori : SAdderSub generic map (lpm_width =>33,pipeline=>1,SequenceLength=>1,SequenceValue=>1,AddSubVal=>AddAdd

40、)port map (dataa=>A0W,datab=>A9W,clock=>clock,ena =>'1',sclr =>sclr,result=>A12W);- Sum Operator - Simulink Block "ParallelAdderSubtractor1"ParallelAdderSubtractor1i : SAdderSub generic map (lpm_width =>34,pipeline=>1,SequenceLength=>1,SequenceValue=>1

41、,AddSubVal=>AddAdd)port map (dataa(32 downto 0)=>A4W(32 downto 0),dataa(33)=>A4W(32),datab=>A7W,clock=>clock,ena =>'1',sclr =>sclr,result=>A13W);- Look-up table - Simulink Block "LUT"LUTi : lpm_romgeneric map (LPM_WIDTH => 10,LPM_WIDTHAD => 10,lpm_address_control => "REGISTERED",lpm_outdata => "UNREGISTERED",lpm_file => "

溫馨提示

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

評論

0/150

提交評論