Quartus II教程_第1頁
Quartus II教程_第2頁
Quartus II教程_第3頁
Quartus II教程_第4頁
Quartus II教程_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、·267·第3章 Altera Quartus II軟件開發(fā)向?qū)Щ贏ltera Quartus II軟件的設(shè)計(jì)方法有模塊編輯法、文本編輯法、宏模塊編輯法和包含前三種方法的混合編輯法。宏模塊設(shè)計(jì)法放在第6章講述,本章通過實(shí)例簡(jiǎn)單介紹使用Quartus II軟件的模塊原理圖編輯法、文本編輯法和包含前兩種方法的混合編輯法。3.1模塊編輯及設(shè)計(jì)流程Quartus II軟件的模塊編輯器以原理圖的形式和圖標(biāo)模塊的形式來編輯輸入文件。每個(gè)模塊文件包含設(shè)計(jì)中代表邏輯的框圖和符號(hào)。模塊編輯器可以將框圖、原理圖或符號(hào)集中起來,用信號(hào)線、總線或管道連接起來形成設(shè)計(jì),并在此基礎(chǔ)上生成模塊符號(hào)文件

2、(.bdf)、AHDL Include文件(.inc)和HDL文件。3.1.1 原理圖輸入文件的建立在這里我們?cè)O(shè)計(jì)非常簡(jiǎn)單一個(gè)二輸入的或門電路。它只包含一個(gè)或門、兩個(gè)輸入引腳和一個(gè)輸出引腳。首先創(chuàng)建一個(gè)原理圖形式的輸入文件。步驟如下:(1)打開模塊編輯器單擊【File】|【New】,彈出新建文件對(duì)話框,如圖3.1所示。圖3.1 新建文件對(duì)話框選擇文件類型【Block Diagram/Schematic File】,打開模塊編輯器,如圖3.2所示。使用該編輯器可以編輯圖標(biāo)模塊,也可以編輯原理圖。圖3.2 模塊編輯器Quartus II提供了大量的常用的基本單元和宏功能模塊,在模塊編輯器中可以直接

3、調(diào)用它們。在模塊編輯器要插入元件的地方單擊鼠標(biāo)左鍵,會(huì)出現(xiàn)小黑點(diǎn),稱為插入點(diǎn)。然后鼠標(biāo)左鍵,彈出【Symbol】對(duì)話框,如圖3.3所示?;蛘咴诠ぞ邫谥袉螕魣D標(biāo),也可打開該對(duì)話框。圖3.3 Symbol對(duì)話框在Symbol對(duì)話框左邊的元件庫【Libraries】中包含了Quartus II提供的元件。它們存放在alteraquartus60libraries的子目錄下,分為primitives、others、megafunctions三個(gè)大類。q 基本邏輯函數(shù)(primitives)基本邏輯函數(shù)存放在alteraquartus60libraries primitives的子目錄下,分別為緩沖邏輯

4、單元(buffer)、基本邏輯單元(logic)、其它單元(other)、引腳單元(pin)和存儲(chǔ)單元(storage)五個(gè)子類。Buffer子類中包含的是緩沖邏輯器件,如alt_in buffer、alt_out_buffer、wire等;logic子類中包含的是基本邏輯器件,如and、or、xor等門電路器件;other子類中包含的是常量單元,如constant、vcc和gnd等;pin子類中包含的是輸入、輸出和雙向引腳單元;storage子類中包含的是各類觸發(fā)器,如dff、tff等。q 宏模塊函數(shù)(megafunctions)宏模塊函數(shù)是參數(shù)化函數(shù),包括LPM函數(shù) MegaCore AM

5、PP函數(shù)。這些函數(shù)經(jīng)過嚴(yán)格的測(cè)試和優(yōu)化,用戶可以根據(jù)要求設(shè)定其功能參數(shù)以適應(yīng)不同的應(yīng)用場(chǎng)合。這些函數(shù)存放在alteraquartus60libraries megafunctions的子目錄下,包含arithmetic、gates、I/O和storage四個(gè)子類。arithmetic子類中包含的是算法函數(shù),如累加器、加法器、乘法器和LPM算術(shù)函數(shù)等;gates子類中包含的是多路復(fù)用器和門函數(shù);I/O子類中包含的是時(shí)鐘數(shù)據(jù)恢復(fù)(CDR)、鎖相環(huán)(PLL)、千兆位收發(fā)器(GXB)、LVDS接收發(fā)送器等;storage子類中包含的是存儲(chǔ)器、移位寄存器模塊和LPM存儲(chǔ)器函數(shù)。q 其他函數(shù)(others

6、)其他函數(shù)包含了MAXPlus 所有的常用的邏輯電路和Opencore_plus函數(shù),這些函數(shù)存放在alteraquartus60libraries others的子目錄下。這些邏輯函數(shù)可以直接應(yīng)用到原理圖的設(shè)計(jì)上,可以簡(jiǎn)化許多設(shè)計(jì)工作。在模塊編輯器的左邊是工具欄,熟悉這些工具按鈕的性能,可以大幅度提高設(shè)計(jì)速度。下面詳細(xì)介紹這些按鈕的功能。q 選擇工具:選取、移動(dòng)、復(fù)制對(duì)象,是最基本且常用的功能。q 文字工具:文字編輯工具,設(shè)定名稱或批注時(shí)使用。q 符號(hào)工具:用于添加工程中所需要的各種原理圖函數(shù)和符號(hào)。q 圖標(biāo)模塊工具:用于添加一個(gè)圖表模塊,用戶可定義輸入和輸出以及一些相關(guān)參數(shù),用于自頂向下的

7、設(shè)計(jì)。q 正交節(jié)點(diǎn)工具:用于畫垂直和水平的連線,同時(shí)可定義節(jié)點(diǎn)的名稱。q 正交總線工具:用于畫垂直和水平的總線。q 正交管道工具:用于模塊之間的連線和映射。q 橡皮筋工具:使用此項(xiàng)移動(dòng)圖形元件時(shí)引腳與連線不斷開。q 部分連線工具:使用此項(xiàng)可以實(shí)現(xiàn)局部連線。q 放大/縮小工具:用于放大或縮小原理圖。q 全屏工具:用于全屏顯示原理圖編輯窗口。q 查找工具:用于查找節(jié)點(diǎn),總線和元件等。q 元件翻轉(zhuǎn)工具 :用于圖形的翻轉(zhuǎn),分別為水平翻轉(zhuǎn),垂直翻轉(zhuǎn)和90度的逆時(shí)針翻轉(zhuǎn)。q 畫圖工具、:畫圖工具,分別為矩形、圓形、直線和弧線工具。(2)添加元件符號(hào)打開Symbol對(duì)話框左邊的元件庫【Libraries】,

8、選擇【primitives】|【logic】|【or2】,彈出Symbol對(duì)話框,如圖3.4所示。圖3.4 在Symbol對(duì)話框選擇元件單擊【OK】按鈕。鼠標(biāo)變?yōu)楹瓦x中的符號(hào),將目標(biāo)元件移動(dòng)到合適位置單擊左鍵,編輯器窗口就出現(xiàn)了該元件,如圖3.5所示。圖3.5 在編輯器窗口添加或門同理,在【Libraries】中,選擇【primitives】|【pin】|【input】,放兩個(gè)輸入引腳到編輯器窗口;選擇【primitives】|【pin】|【output】,放一個(gè)輸出引腳到編輯器窗口。如圖3.6所示。圖3.6 在編輯器窗口添加輸入/輸出引腳(3)連接各元件并給引腳命名放置好元件后,接下來的就要

9、連接各個(gè)功能模塊,通過導(dǎo)線將模塊間的對(duì)應(yīng)管腳直接連接起來。其具體做法如下:將鼠標(biāo)移到其中一個(gè)端口,待鼠標(biāo)變?yōu)椤?”形狀后。一直按住鼠標(biāo)左鍵,將鼠標(biāo)拖到到待連接的另一個(gè)端口上。放開左鍵,則一條連線畫好了。如果需要?jiǎng)h除一根線,單擊這根連線并按Del鍵。這里分別將兩個(gè)輸入引腳連接到或門的兩個(gè)輸入端,將輸出引腳連接到或門的輸出端。連線完成后可以給輸入/輸出引腳命名。在引線端子的PIN_NAME處雙擊鼠標(biāo),彈出Pin Properties對(duì)話框,在【Pin name】欄中填入名字。這里三個(gè)引腳分別命名為A、B、C。如圖3.7所示。圖3.7 連接元件并命名引腳名稱可以使用26個(gè)大寫英文字母和26個(gè)小寫英文

10、字母,以及10個(gè)阿拉伯?dāng)?shù)字,或是一些特殊符號(hào)“/”“_”來命名,例如AB, /5C,a_b都是合法的引腳名。引腳名稱不能超過32個(gè)字符;大小寫的表示相同的含義;不能以阿拉伯?dāng)?shù)字開頭;在同一個(gè)設(shè)計(jì)文件中引腳名稱不能重名??偩€(Bus)在圖形編輯窗口中顯示為的是一條粗線,一條總線可代表2256個(gè)節(jié)點(diǎn)的組合,即可以同時(shí)傳遞多路信號(hào)??偩€的命名必須在名稱后面加上 a b,表示一條總線內(nèi)所含的節(jié)點(diǎn)編號(hào),其中a和b必須是整數(shù),但誰大誰小并無原則性的規(guī)定,例如A3.0、B0.15、C8.15都是合法的總線名稱。(4)保存文件最后如需要保存文件,選擇【File】菜單中的【Save As】項(xiàng)或單擊按鈕,彈出Sa

11、ve As對(duì)話框,如下圖3.8所示,在File Name 對(duì)話框內(nèi)輸入設(shè)計(jì)文件名my_or_2,然后選擇【OK】,即可保存文件。圖3.8 保存文件原理圖和圖表模塊設(shè)計(jì)的文件名稱與引腳命名規(guī)則相同,長(zhǎng)度必須在32個(gè)字符以內(nèi),不包含擴(kuò)展名“.bdf”。3.1.2 圖表模塊輸入圖表模塊輸入是自頂向下的設(shè)計(jì)方法。首先在頂層文件中劃出圖形塊或器件符號(hào),然后在圖形塊上設(shè)置端口和參數(shù)信息,用信號(hào)線、總線和管道把各個(gè)組件連接起來。下面以3-8譯碼器為例介紹圖表模塊輸入法。打開模塊編輯器,單擊工具欄上的圖表模塊工具,將該模塊拖到右邊的空白處,用鼠標(biāo)在需作圖的地方畫矩形框,在所畫的矩形框范圍就會(huì)出現(xiàn)圖表模塊,如圖

12、3.9所示。圖3.9 生成的圖表模塊在圖表模塊上單擊鼠標(biāo)右鍵,彈出如圖3.10左圖所示的菜單,選擇【Block Properties】選項(xiàng),彈出模塊屬性設(shè)置對(duì)話框,如圖3.10右圖所示。 圖3.10 模塊屬性設(shè)置對(duì)話框模塊屬性設(shè)置對(duì)話框有四個(gè)屬性標(biāo)簽頁.。在【General】標(biāo)簽頁中的【Name】欄設(shè)置模塊名稱為decode3_8;在【I/Os】標(biāo)簽頁設(shè)置3-8譯碼器的端口信息,在【Name】欄中輸入端口名稱A,【Type】欄輸入INPUT,設(shè)定為輸入端口。單擊【Add】按鈕,即可將輸入端口A添加到模塊屬性設(shè)置對(duì)話框下面的【Existing Block I/Os】列表中,如圖3.11左圖所示。

13、以此類推,添加另外兩個(gè)輸入信號(hào)B、C,添加三個(gè)使能信號(hào)G1、G2a、G2b,添加八個(gè)輸出信號(hào)y0、y1、y2、y3、y4、y5、y6、y7。如圖3.11右圖所示。 圖3.11 添加輸入端口單擊【確定】,就生成了圖標(biāo)模塊。使用鼠標(biāo)選中圖標(biāo)模塊,調(diào)整其大小,以便顯示所有的端口。如圖3.12所示。圖3.12 生成的圖標(biāo)模塊單擊,保存設(shè)計(jì)的圖標(biāo)模塊文件,將該文件的后綴名定義為.bdf。以上的設(shè)計(jì)過程只是規(guī)定了設(shè)計(jì)的圖標(biāo)模塊的外部端口,圖標(biāo)模塊的功能由硬件描述語言或圖形文件實(shí)現(xiàn)。Quartus II軟件支持的設(shè)計(jì)文件格式有:AHDL語言格式、VHDL語言格式、Verilog HDL 語言格式、Schem

14、atic圖形格式。在圖標(biāo)模塊單擊鼠標(biāo)右鍵,在彈出的菜單中選擇【Create Design File from Selected Block】選項(xiàng),彈出創(chuàng)建設(shè)計(jì)文件對(duì)話框,如圖3.13所示。圖 創(chuàng)建設(shè)計(jì)文件對(duì)話框選擇文件設(shè)計(jì)類型,這里選VHDL,確定是否把將要生成的文件添加到當(dāng)前工程中。單擊【OK】,就生成了設(shè)計(jì)文件decode3_8.vhd。如圖所示。圖3.13 生成設(shè)計(jì)文件decode3_8.vhd單擊【確定】,彈出包含端口聲明的VHDL文本編輯窗口,如圖3.14所示。圖 包含端口聲明的VHDL文本編輯窗口在該窗口中,已經(jīng)自動(dòng)生成了包含端口定義的VHDL程序的實(shí)體部分,用描述模塊功能的結(jié)構(gòu)體

15、部分是個(gè)空白,需要插入相應(yīng)的語句,完成設(shè)計(jì)。如果在圖 創(chuàng)建設(shè)計(jì)文件對(duì)話框選擇Schematic,則彈出包含已經(jīng)定義的輸入輸出端口原理圖編輯窗口,如圖3.15所示。圖3.15 已經(jīng)定義的輸入輸出端口原理圖編輯窗口在原理圖編輯窗口左邊,是輸入端口;在原理圖編輯窗口右邊,是輸出端口。下面我們要做的工作就是在中間插入元件,以構(gòu)成自動(dòng)decode3_8的原理圖。在生成圖標(biāo)模塊的設(shè)計(jì)文件之后,如果需要對(duì)頂層圖標(biāo)模塊的端口名或端口數(shù)目進(jìn)行修改,那么在修改后,在模塊上單擊右鍵,在彈出的菜單中選擇【Update Design File from Selected Block】選項(xiàng),Quartus II軟件會(huì)自動(dòng)

16、更新底層設(shè)計(jì)文件。在設(shè)計(jì)較為復(fù)雜的電路時(shí),頂層文件中需要包含多個(gè)圖標(biāo)模塊和多個(gè)元件符號(hào),而且需要把它們連接起來。,一般來說,連接元件符號(hào)的是信號(hào)線或總線,連接圖標(biāo)模塊的既可以是信號(hào)線或總線,也可以是管道。當(dāng)用管道連接兩個(gè)圖標(biāo)模塊時(shí),如果兩邊端口名稱相同,如圖所示則不必在管道上加標(biāo)注,兩者能夠智能連接。在連接兩個(gè)圖標(biāo)模塊的管道上單擊右鍵,在彈出的菜單中選擇【Properties】選項(xiàng),彈出Conduct Properties對(duì)話框,如圖3.16所示。選擇【Signal】屬性頁,可在【Connections】列表中看到對(duì)應(yīng)的連接關(guān)系。如圖3.17所示。圖3.16 具有相同端口名稱的兩圖標(biāo)模塊 圖3

17、.17 Conduit Properties對(duì)話框當(dāng)需要連接的兩個(gè)圖標(biāo)模塊端口名稱不同時(shí),或者是圖標(biāo)模塊和元件符號(hào)相連時(shí),使用端口映射的方法將兩個(gè)模塊的端口連接起來。以如圖3.18所示的電路為例。圖3.18 圖標(biāo)模塊和元件符號(hào)相連圖3.18中顯示的時(shí)一個(gè)圖標(biāo)模塊和一個(gè)二輸入的與門,首先用兩條信號(hào)線分別從與門的兩個(gè)輸入端引向圖標(biāo)模塊,在圖標(biāo)模塊會(huì)產(chǎn)生一個(gè)連接器端點(diǎn)。選中連接的信號(hào)線,在彈出的菜單中選擇【Properties】選項(xiàng),彈出Conduct Properties對(duì)話框,對(duì)該信號(hào)線命名,例如這里為wire01和wire02。選中圖標(biāo)模塊中需要映射的連接器端點(diǎn),在連接器端點(diǎn)上單擊右鍵,在彈出

18、的菜單中選擇【Mapper Properties】選項(xiàng),彈出Mapper Properties 對(duì)話框,如圖3.19所示。圖3.19 Mapper Properties 對(duì)話框在Mapper Properties 對(duì)話框中選擇【Mapping】屬性頁,該屬性頁用于設(shè)置模塊I/O端口和連接器上的信號(hào)映射。例如,這里在【I/O on block】填入M,在【Signal in node】填入單擊wire01,單擊【Add】按鈕,就將映射關(guān)系添加到了下面的【Existing mapping】列表中,表示將圖標(biāo)模塊的輸出端連接到信號(hào)線wire01上,而信號(hào)線wire01又連接在與門的一個(gè)輸入端上,這樣

19、就實(shí)現(xiàn)了圖標(biāo)模塊和元件符號(hào)的相連。依此類推,將其它映射關(guān)系也添加進(jìn)來。完成映射后,在圖表模塊連接器端點(diǎn)處可以看到相關(guān)信息,如圖3.20所示。圖3.20 映射后的連接圖如果連接的是兩個(gè)圖標(biāo)模塊,用類似同樣地辦法設(shè)置。3.1.3原理圖設(shè)計(jì)流程本節(jié)以上節(jié)建立的二輸入或門輸入文件為頂層文件,通過全部流程,實(shí)現(xiàn)設(shè)計(jì)。詳細(xì)介紹基于Quartus II軟件的原理圖設(shè)計(jì)方法,具體實(shí)現(xiàn)步驟如下。1.建立工程(1)單擊【File】|【New Project Wizard】選項(xiàng),彈出工程向?qū)У幕拘畔?duì)話框,如圖3.7所示,在此對(duì)話框中,第一欄填入新工程的文件夾名,這里單擊,彈出Select Directory對(duì)話

20、框,找到上節(jié)建立的輸入文件(my_or2.bdf),單擊【打開】,在第一欄就出現(xiàn)新工程的文件夾名,第二欄出現(xiàn)工程名,第三欄出現(xiàn)頂層實(shí)體名。注意工程名要和頂層實(shí)體名相同。圖3.7 工程向?qū)У幕拘畔ⅲ?)選擇需要加入的文件和庫單擊圖3.7所示對(duì)話框中的【Next】按鈕進(jìn)行下一步操作。此時(shí)如果文件夾不存在的話,系統(tǒng)會(huì)自動(dòng)提示用戶是否創(chuàng)建該文件夾,選擇【Yes】按鈕后會(huì)自動(dòng)創(chuàng)建。已經(jīng)創(chuàng)建就彈出添加文件對(duì)話框,如圖3.8所示。如果此設(shè)計(jì)中還需要其他設(shè)計(jì)文件,可以單擊【File name】欄右邊的,選擇要添加的文件,單擊【Add All】按鈕就將該文件加入到上面的工程中?;蛘咧苯訂螕簟続dd All】按

21、鈕加入在該目錄下的所有文件,如果需要用戶自定義的庫,單擊【User Libraries】按鈕進(jìn)行選擇。選中已加入的文件,單擊【Remove】可以將其移除。這里不需要添加任何其它文件,直接單擊【Next】。圖3.8 添加文件對(duì)話框3)選擇目標(biāo)器件單擊圖3.8所示對(duì)話框中的【Next】按鈕后,彈出器件類型設(shè)置的對(duì)話框,如圖3.9所示。在【Target device】選項(xiàng)中選擇【Auto device selected by the Fitter】選項(xiàng),系統(tǒng)會(huì)自動(dòng)給所設(shè)計(jì)的文件分配目標(biāo)器件。選擇【Specific device selected in Available deviceslist】選項(xiàng)

22、,用戶可以根據(jù)實(shí)驗(yàn)條件指定目標(biāo)器件。在右側(cè)的選項(xiàng)中,可以選擇目標(biāo)器件的封裝類型(Package),引腳數(shù)量(Pin count)和速度等級(jí)(Speed grade)以便快速查找用戶所需的器件范圍。圖3.9 器件類型設(shè)置(4)選擇第三方EDA工具單擊圖3.9中的【Next】按鈕,彈出EDA工具設(shè)置對(duì)話框,如圖.10所示。在此選擇使用的第三方EDA工具。本例中不需要第三方EDA工具,直接單擊【Next】按鈕。圖3. 10 EDA工具設(shè)置(5)結(jié)束工程設(shè)置最后彈出新工程確認(rèn)對(duì)話框,如圖3.11所示。從對(duì)話框中可以看到建立的工程名稱,選擇的器件等信息,如確認(rèn)無誤后,單擊【Finish】按鈕,創(chuàng)建新工程

23、。圖3.11 工程信息概要2. 編譯工程單擊工具欄上的按鈕,對(duì)工程文件進(jìn)行編譯,這時(shí)Quartus II界面不斷變化,編譯結(jié)束后產(chǎn)生的界面如圖3.12所示,這是編譯成功的情況。單擊【確定】,生成的編譯結(jié)果界面如圖3.13所示。該界面顯示了編譯時(shí)的各種信息。如果編譯不成功,在信息顯示窗口給出錯(cuò)誤和警告,可根據(jù)提示錯(cuò)誤和警告進(jìn)行相應(yīng)的修改后重新編譯,直到?jīng)]有錯(cuò)誤提示為止。圖3.12 編譯完成時(shí)界面圖3.13 編譯結(jié)果3. 建立仿真矢量波形文件(1)創(chuàng)建文件在工具欄中單擊【File】|【New】,彈出新建對(duì)話框,如圖3.14所示。在出現(xiàn)的【New】對(duì)話框中選擇【Other Files】頁面,在該頁面

24、選擇【W(wǎng)aveform Editor File】選項(xiàng),單擊【OK】按鈕,彈出矢量波形文件編輯窗口,如圖3.15所示。圖3.14 建立矢量波形文件 圖3.15 矢量波形編輯窗口(2)添加引腳或節(jié)點(diǎn)雙擊圖3.15中【Name】下方空白處,彈出Insert Node or Bus對(duì)話框,如圖3.16所示。圖 3.16 Insert Node or Bus對(duì)話框點(diǎn)擊【Node Finder】按鈕,彈出Node Finder對(duì)話框,如圖3.17所示。圖3.17 Node Finder對(duì)話框單擊【Filter】欄的下拉菜單選擇【Pins:all】選項(xiàng)后,點(diǎn)擊【List】按鈕,彈出設(shè)計(jì)文件引腳列表窗口,如圖

25、3.18所示。在【Node Found】欄中列出了設(shè)計(jì)文件的列表。圖3.18 輸入/輸出引腳列表在列表中雙擊需要的引腳,選中的信號(hào)將出現(xiàn)在右邊的一側(cè),或者單擊按鈕,也可以如此,如圖3.19所示。圖3.19 選擇輸入/輸出節(jié)點(diǎn)單擊【OK】按鈕。返回insert Node or Bus對(duì)話框,如圖3.20所示。圖 3.20 查找節(jié)點(diǎn)后的“ Insert Node or Bus”對(duì)話框單擊【OK】按鈕后,選中的輸入/輸出引腳就出現(xiàn)在波形編輯窗口的【Name】欄下,引腳添加成功,如圖3.21所示。圖3.21 添加節(jié)點(diǎn)后的矢量波形編輯窗口(3)編輯輸入波形并保存波形觀察窗的左邊是輸入引腳,在同行的右邊可

26、以編輯波形。使用時(shí),先選中左邊的輸入引腳名,再在右邊用鼠標(biāo)在輸入波形上拖一條需要改變的黑色區(qū)域,然后單擊左邊工具欄的有關(guān)按鈕,即可進(jìn)行低電平、高電平、任意、高阻態(tài)、反相和總線數(shù)據(jù)等各種設(shè)置。若是時(shí)鐘信號(hào),用鼠標(biāo)點(diǎn)時(shí)鐘信號(hào)的,出現(xiàn)時(shí)鐘信號(hào)設(shè)置對(duì)話框,按下【OK】即可設(shè)置時(shí)鐘信號(hào)。這時(shí)時(shí)鐘信號(hào)的波形區(qū)域全部變成黑色,按集成環(huán)境窗左邊上的時(shí)鐘按鈕,根據(jù)要求將各輸入信號(hào)A、B的波形設(shè)置成如圖3.22所示。然后單擊保存文件,文件取名為my_or_2 .vwf。圖3.22 編輯輸入信號(hào)4波形仿真(1)功能仿真在Quartus II的工具欄中選擇【Processing】|【Generate Function

27、al.】,生成功能仿真網(wǎng)表,然后選擇【Assignments】|【Setting】,彈出設(shè)置仿真類型對(duì)話框,點(diǎn)擊“Simulator Settings”選項(xiàng),在“simulation mode”中選擇“Functional”命令,如圖3.23所示。圖3.23 設(shè)置功能仿真類型后點(diǎn)擊按鈕進(jìn)行功能仿真,檢查設(shè)計(jì)的邏輯錯(cuò)誤。仿真結(jié)果如圖3.24所示。圖3.24 功能仿真(2)時(shí)序仿真選擇Quartus II的工具欄中【Assignments】|【Setting】|【Simulator Settings】|【simulation mode】選擇“Timing”命令,然后單擊工具欄的按鈕,開始時(shí)序仿真,

28、驗(yàn)證時(shí)序是否符合要求,仿真過程在后臺(tái)進(jìn)行,計(jì)算機(jī)能夠同時(shí)作其他的工作。結(jié)果如圖3.25所示。圖3.25 時(shí)序仿真觀察波形,發(fā)現(xiàn)輸出端C的波形產(chǎn)生了一些延時(shí)。5. 引腳分配分配引腳是為了對(duì)所設(shè)計(jì)的過程進(jìn)行硬件測(cè)試,將輸入/輸出引腳信號(hào)鎖定在目標(biāo)器件的引腳上。單擊工具欄【Assignments】|【Pins】選項(xiàng),彈出選擇要分配的分配引腳的對(duì)話框,如圖3.26所示。在下方的列表中列出了本設(shè)計(jì)的所有輸入輸出引腳名。圖3.26 選擇要分配的分配引腳在圖3.26中,雙擊輸入端A對(duì)應(yīng)的【Location】選項(xiàng),彈出引腳列表,從中選擇合適的引腳,這時(shí)輸入A的引腳分配完畢,同理完成其他所有引腳的指定,結(jié)果如圖

29、3.27所示。圖3.27 完成所有引腳的分配6. 下載驗(yàn)證下載驗(yàn)證是將所做設(shè)計(jì)生成的文件通過計(jì)算機(jī)下載到實(shí)驗(yàn)電路板上,用來驗(yàn)證本次設(shè)計(jì)是否符合要求的一道流程,其步驟如下:(1)編譯分配完引腳后必須經(jīng)過再次編譯,這樣才能存儲(chǔ)引腳鎖定的信息,單擊編譯按鈕執(zhí)行再次編譯。如果編譯出現(xiàn)問題,可以對(duì)器件重新設(shè)置。 (2)配置下載電纜在【Tools】|【Progammer】命令,彈出未經(jīng)配置的下載窗口,如圖3.28所示。圖3.28 未經(jīng)配置的下載窗口單擊【Hardware Setup】按鈕,彈出Hardware Setup對(duì)話框,如圖3.29所示。圖3.29 Hardware Setup對(duì)話框單擊【Add

30、Hardware】按鈕,彈出下載電纜選擇對(duì)話框,如圖3.30所示。在【Hardware Type】一欄中選擇【ByteBlasterMV or ByteBlaster II】,單擊【OK】按鈕,完成設(shè)置。如果下載電纜一直保持不變,不需每次都要設(shè)置。圖3.30 下載電纜選擇對(duì)話框(3)JTAG模式下載JTAG模式是Quartus II軟件默認(rèn)的下載模式,其相應(yīng)的下載文件為.sof格式,勾選下載文件右側(cè)的小方框,如圖3.31所示.。圖3.31 選擇下載文件將下載電纜連接好后,單擊【Start】按鈕,計(jì)算機(jī)就開始下載編程文件。下載完后結(jié)果如圖3.32所示。圖 3.32 JTAG模式下載完畢(4)Ac

31、tive Serial模式Active Serial模式的下載文件為“.pof”格式,在【Mode】一欄中選擇Active Serial】,彈出提示框,點(diǎn)擊【是】,然后在“Add File”里添加選擇文件“or_2.pof”,勾選下載文件右側(cè)的小方框,將下載電纜連接好后,單擊【Start】按鈕,開始下載編程文件。下載完后結(jié)果如圖3.33所示。圖3.33 Active Serial模式對(duì)于大多數(shù)設(shè)計(jì)來說,到此就完成了。7. Quartus II的幾個(gè)常用功能。(1)使用RTL Viewer分析綜合結(jié)果單擊【Tools】|【Netlist Viewers】|【RTL Viewer】,彈出RTL V

32、iewer對(duì)話框,如圖3.34所示??梢钥吹骄C合后的RTL結(jié)構(gòu)圖,發(fā)現(xiàn)該圖與原理圖相同。圖3.34 RTL Viewer對(duì)話框(2)使用Technology Map Viewer分析綜合結(jié)果單擊【Tools】|【Netlist Viewers】|【Technology Map Viewer】,彈出Technology Map Viewer對(duì)話框,如圖3.35所示。圖 3.35 Technology Map Viewer對(duì)話框(3)創(chuàng)建圖元符號(hào)單擊【File】|【Create/Update】|【Create Symbol Files for Current File】,生成“.bsf”格式的圖元

33、符號(hào)文件,如圖3.36所示。從圖中可以看出生成的是只有輸入輸出的元件。在原理圖編輯窗口單擊按鈕,在彈出的“Symbol”對(duì)話框的“Project”欄里出現(xiàn)已經(jīng)生成的元件or_2,在以后的原理圖設(shè)計(jì)中可以直接調(diào)用。圖3.36 生成的元件符號(hào)3.2 文本編輯及設(shè)計(jì)流程Quartus II軟件支持的文本編輯是指用AHDL、VHDL 和Verilog語言創(chuàng)建輸入文件。本節(jié)使用VHDL語言設(shè)計(jì)一個(gè)簡(jiǎn)單的4位加法器程序,來介紹設(shè)計(jì)過程。3.2.1 建立文本文件在工具欄中,單擊【File】|【New】,或使用快捷鍵Ctrl+N,彈出新建文件對(duì)話框。按圖示選擇【VHDL File】選項(xiàng),如圖3.37所示文件,

34、圖3.37 建立VHDL文本文件單擊【OK】,彈出文本文件編輯框。如圖3.38所示。在編輯框內(nèi)可以輸入VHDL程序。 圖3.38 VHDL文本編輯窗口在編輯框內(nèi)可以輸入VHDL代碼,代碼如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADD4 ISPORT (A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CIN: IN STD_LOGIC; SUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUNT: OUT STD_LO

35、GIC);END ADD4;ARCHITECTURE ART OF ADD4 ISSIGNAL A1,B1,C :STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN A1<='0'&A;B1<='0'&B; PROCESS(A1,B1,CIN,C) BEGIN C<=A1+B1+CIN;END PROCESS;SUM<=C(3 DOWNTO 0);COUNT<=C(4);END ART;輸入代碼后的文本文件編輯框。如圖3.39所示。圖3.39 輸入代碼為了提高代碼輸入的效率,Quartus II軟件

36、提供了一個(gè)輸入模版,在模板上給出了程序的框架,在框架內(nèi),用填入的自己的代碼。單擊【Edit】|【Insert Template】,彈出插入模板對(duì)話框,如圖3.40所示。圖3.40 插入模板對(duì)話框在【Template section】下面的窗口中可以選擇需要插入的文本類型。如單擊【Architecture Body】,在下面的【Preview】窗口中就出現(xiàn)具體的內(nèi)容,單擊【OK】,【Preview】窗口中的內(nèi)容就會(huì)出現(xiàn)在的文本文件編輯框中。如圖3.41所示。圖3.41 在文本文件編輯框中插入模板這樣就可在編輯框中的模板內(nèi)容里,刪除不需要的內(nèi)容,添加自己的程序。依此類推,可以其它模板內(nèi)容,以減輕編

37、程中負(fù)擔(dān)。在文本編輯完成后,就要保存文件。單擊保存文件或選擇 【File】 菜單中的 【Save As】選項(xiàng). 彈出Save As對(duì)話框,如圖3.42所示,在 File Name 對(duì)話框內(nèi)輸入設(shè)計(jì)文件名add4.vhd,然后選擇【OK】 即可保存文件。這樣文本輸入文件就建立完成。圖3.42 保存文件3.2.2 文本設(shè)計(jì)流程文本設(shè)計(jì)與模塊設(shè)計(jì)的流程大致相同,本節(jié)就以上節(jié)的四位加法器為例,詳細(xì)介紹Quartus II的文本設(shè)計(jì)方法,具體實(shí)現(xiàn)步驟如下。1. 建立新工程單擊【File】|【New Project Wizard】,在對(duì)彈出的話框中分別填入新工程的文件夾名,工程名,頂層實(shí)體名,新工程如圖3

38、.43所示。圖3.43 建立新工程注意:工程名要和頂層實(shí)體名相同。本例中只有一個(gè)設(shè)計(jì)文件,那么它就是頂層文件,它的工程名就是文件的實(shí)體名。單擊【Next】,彈出添加文件對(duì)話框,添加設(shè)計(jì)文件,然后單擊【Next】,進(jìn)入目標(biāo)器件選擇窗口,設(shè)置完器件后,單擊【Next】,進(jìn)入EDA工具選擇窗口,這里不選擇。單擊【Finish】,彈出完成工程配置窗口,如圖3.41所示。圖3.41 完成工程的配置2. 編譯工程點(diǎn)擊工具欄上的按鈕,對(duì)文件進(jìn)行編譯,根據(jù)提示錯(cuò)誤警告進(jìn)行相應(yīng)的修改后重新編譯,直到?jīng)]有錯(cuò)誤提示為止,編譯成功后結(jié)果如圖3.42所示。圖3.42 編譯工程3. 建立矢量波形文件在工具欄中單擊【Fil

39、e】菜單下的【New】命令,彈出新建對(duì)話框,如圖3.43所示。圖 3.43 建立矢量波形文件在出現(xiàn)的New對(duì)話框中選擇【W(wǎng)aveform Editor File】選項(xiàng),單擊【OK】按鈕后波形文件建立成功。如圖3.44所示。圖3.44 矢量波形文件編輯窗口下面添加引腳或節(jié)點(diǎn)。雙擊“Name”下方空白處,在彈出話框中點(diǎn)擊【Node Finder】按鈕,選擇【Filter】欄的“Pins:all”選項(xiàng)后點(diǎn)擊【List】按鈕,雙擊需要的引腳,選中的信號(hào)將出現(xiàn)在波形編輯器中,結(jié)果如圖3.45所示。圖3.45 選擇輸入/輸出節(jié)點(diǎn)單擊【OK】按鈕。彈出查找節(jié)點(diǎn)后的Insert Node or Bus對(duì)話框,

40、如圖3.46所示。圖3.46 查找節(jié)點(diǎn)后的“ Insert Node or Bus”對(duì)話框單擊【OK】按鈕后引腳后引腳添加成功,如圖3.47所示。圖3.47 添加節(jié)點(diǎn)后的矢量波形編輯窗口下面編輯輸入信號(hào)并保存文件。單擊左邊工具欄的有關(guān)按鈕對(duì)輸入波形按需要設(shè)定,本例波形按圖3.48 設(shè)定。圖3.48 編輯輸入信號(hào)單擊保存文件,文件取名為“add4 .vwf”,如圖3.49 所示。圖3.49 保存矢量波形文件4. 仿真波形(1)在Quartus II的工具欄中選擇【Processing】|【Generate Functional.】生成功能仿真網(wǎng)表,然后選擇【Assignments】|【Setti

41、ng】,彈出如圖3.50所示對(duì)話框。圖3.50 仿真模式選擇單擊【Simulator Settings】選項(xiàng),在【simulation mode】中選擇【Functional】,點(diǎn)擊按鈕進(jìn)行功能仿真,檢查設(shè)計(jì)的邏輯錯(cuò)誤。仿真結(jié)果如圖3.51所示。圖3.51 功能仿真(2)選擇Quartus II的工具欄中【Assignments】|【Setting】,在彈出的對(duì)話框中選擇【Simulator Settings】頁面中的【simulation mode】選項(xiàng),選擇【Timing】,單擊工具欄的按鈕,開始時(shí)序仿真,驗(yàn)證時(shí)序是否符合要求。時(shí)序仿真結(jié)果如圖3.52所示。圖3.52 時(shí)序仿真5. 引腳分

42、配及下載驗(yàn)證對(duì)本項(xiàng)目分配引腳,結(jié)果如圖3.53 所示。并下載到實(shí)驗(yàn)板上驗(yàn)證其功能。具體和3.1節(jié)模塊設(shè)計(jì)步驟相同。在此就不加重復(fù)說明了。圖3.53 分配引腳3.3混合設(shè)計(jì)(自底向上)對(duì)于較為簡(jiǎn)單的電路可以使用前面兩節(jié)介紹的設(shè)計(jì)方法。但在實(shí)際工程項(xiàng)目中往往涉及許多模塊,而其中的模塊又由許多模塊組成,參加項(xiàng)目的人使用的設(shè)計(jì)方式可能不同。這就要求設(shè)計(jì)者掌握混合編輯法以設(shè)計(jì)復(fù)雜的數(shù)字系統(tǒng)。下面以一個(gè)計(jì)數(shù)顯示電路為例介紹這種設(shè)計(jì)方法。該電路有一個(gè)十進(jìn)制計(jì)數(shù)器和七段譯碼顯示電路組成。3.3.1 建立文件需要建立兩個(gè)VHDL的文本文件。cnt4.vhd文件描述十進(jìn)制計(jì)數(shù)器,seg_7.vhd文件描述七段譯碼

43、顯示電路。1. 建立計(jì)數(shù)器文件Cnt4.vhd程序的功能是在時(shí)鐘的驅(qū)動(dòng)下循環(huán)產(chǎn)生09的二進(jìn)制數(shù),其代碼如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 ISPORT (CLK:IN STD_LOGIC; EN: IN STD_LOGIC; RST: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END CNT4;ARCHITECTURE ART OF CNT4 IS SIGNAL CNT: STD_LOGIC_V

44、ECTOR(3 DOWNTO 0) ; BEGIN PROCESS(CLK,EN,RST) BEGIN IF RST='1' THEN CNT<="0000" ELSIF CLK'EVENT AND CLK='1' THEN IF EN='1' THEN IF CNT<9 THEN CNT<=CNT+1; ELSE CNT<="0000" END IF; END IF; END IF;END PROCESS;Q<=CNT;END ART;該程序經(jīng)編譯仿真正確后,建立圖元

45、符號(hào)。單擊【File】|【Create/Update】|【Symbol Files for Current File】,生成.bsf格式的圖元文件,以備后面使用。生成的圖元符號(hào)如圖3.54所示。圖3.54 生成的10進(jìn)制計(jì)數(shù)器圖元符號(hào)2. 建立七段譯碼顯示電路文件SEG_7程序設(shè)計(jì)的電路的功能是將計(jì)數(shù)器輸出的二進(jìn)制數(shù)轉(zhuǎn)化為數(shù)碼管的驅(qū)動(dòng)信號(hào)。其代碼如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SEG_7 ISPORT (SEG: IN STD_LOGIC_VECTOR(3 DO

46、WNTO 0 ); -四位二進(jìn)制碼輸入 Q3: OUT STD_LOGIC_VECTOR(6 DOWNTO 0) );-輸出LED七段碼END SEG_7;ARCHITECTURE ART OF SEG_7 ISBEGINPROCESS(SEG) BEGINCASE SEG ISWHEN "0000" => Q3<="0000001"-0 WHEN "0001" => Q3<="1001111"-1WHEN "0010" => Q3<="001001

47、0"-2WHEN "0011" => Q3<="0000110"-3WHEN "0100" => Q3<="1001100" ; -4WHEN "0101" => Q3<="0100100"-5WHEN "0110" => Q3<="0100000"-6WHEN "0111" => Q3<="0001111"-7WHEN &qu

48、ot;1000" => Q3<="0000000"-8WHEN "1001" => Q3<="0000100"-9WHEN OTHERS => Q3<="1111111"END CASE;END PROCESS; END ART;如上面一樣該程序經(jīng)編譯仿真正確后,建立圖元符號(hào),以備后面使用。生成的圖元符號(hào)如圖3.55所示。圖3.54 生成的10進(jìn)制計(jì)數(shù)器圖元符號(hào)3.3.2 設(shè)計(jì)流程混合設(shè)計(jì)的流程與前面的設(shè)計(jì)流程一樣,所不同的只是頂層文件的設(shè)計(jì)。具體步驟如下:1. 建立新

49、工程創(chuàng)建一個(gè)新工程,其頂層文件是一個(gè).bdf格式的文件。這里取工程名為cnt4_top,如圖3.55所示。圖3.58 建立新的工程2. 建立原理圖文件并添加圖元符號(hào) 建立名為cnt4_top的原理圖文件,雙擊鼠標(biāo)后在彈出對(duì)話框中的【Project】欄中選擇生成的圖元符號(hào),如圖3.59所示。將兩個(gè)圖元符號(hào)添加到原理圖編輯器中,并放置三個(gè)輸入和一個(gè)輸出引腳,如圖3.60所示。圖3.59 選擇生成的圖元符號(hào)圖 3.60 擺放所用圖元和引腳連接各個(gè)模塊并命名。在圖3.60中完成線路連接,結(jié)果如圖3.61所示。保存該圖。圖3.61 完整電路圖3. 編譯工程單擊工具欄的,將所設(shè)計(jì)的工程項(xiàng)目進(jìn)行編譯,根據(jù)提

50、示,如有錯(cuò)誤,進(jìn)行相應(yīng)的修改并重新編譯,直到?jīng)]有錯(cuò)誤提示編譯成功為止。如圖3.62所示。圖 3.62 編譯工程4. 仿真首先創(chuàng)建波形矢量文件,然后分別進(jìn)行功能仿真和時(shí)序仿真。功能仿真結(jié)果如圖3.63所示,時(shí)序仿真結(jié)果如圖3.64所示。圖3.63 功能仿真圖3.64 時(shí)序仿真5. 引腳分配,下載驗(yàn)證分配引腳結(jié)果如圖3.65 所示。并下載到實(shí)驗(yàn)板上驗(yàn)證其功能,具體步驟與3.1節(jié)原理圖編譯相同。圖3.65 引腳分配3.4 使用Signal Tap II的實(shí)時(shí)測(cè)試隨著邏輯設(shè)計(jì)越來越復(fù)雜,僅僅依賴軟件的仿真來測(cè)試設(shè)計(jì)的硬件功能已經(jīng)遠(yuǎn)遠(yuǎn)不夠了,而不斷需要重復(fù)進(jìn)行的硬件系統(tǒng)測(cè)試也變得更加的困難。為了解決這些

51、問題,Altera提供了一種將高效的硬件測(cè)試手段和傳統(tǒng)的系統(tǒng)測(cè)試方法相結(jié)合的工具,這就是嵌入式邏輯分析儀(Signal Tap II)。它可以隨設(shè)計(jì)文件一并下載到目標(biāo)芯片中,用以捕捉目標(biāo)芯片內(nèi)部信號(hào)節(jié)點(diǎn)處的信息,而且不影響原硬件系統(tǒng)的正常工作。在實(shí)際監(jiān)測(cè)中,Signal Tap II將測(cè)得的樣本信號(hào)暫存于目標(biāo)器件中的嵌入式RAM中,然后通過器件的JTAG端口將采的信息傳出,送入計(jì)算機(jī)進(jìn)行顯示和分析。嵌入式邏輯分析儀Signal Tap II可以對(duì)設(shè)計(jì)中的所有層次的模塊的信號(hào)節(jié)點(diǎn)進(jìn)行測(cè)試,可以使用多時(shí)鐘驅(qū)動(dòng),而且還能通過設(shè)置以確定前后觸發(fā)捕捉信號(hào)信息的比例。本節(jié)將以上節(jié)設(shè)計(jì)的計(jì)數(shù)器為例介紹Sig

52、nal Tap II的使用方法,流程如下:(1)打開Signal Tap II的編輯窗口單擊【File】|【New】,彈出New對(duì)話框,選擇Other File頁,在該頁中選擇Signal Tap II File,單擊【OK】按鈕,彈出【Signal Tap II】編輯窗,如圖3.66所示。圖3.66 Signal Tap II編輯窗(2)調(diào)入待測(cè)信號(hào)單擊上排的【Instance】欄內(nèi)的auto_signaltap_0,更改此命為cnt4,這是其中一組待測(cè)信號(hào)名。為了調(diào)入待測(cè)信號(hào)名,在下欄的空白處雙擊,彈出Node Finder對(duì)話框,如圖3.67所示。 圖 3.67 Node Finder對(duì)

53、話框單擊【List】按鈕,在左欄出現(xiàn)此工程的所有信號(hào),包括內(nèi)部信號(hào)。選擇需要觀察的信號(hào)名,這里選擇四位計(jì)數(shù)信號(hào)cnt4和七位輸出總線信號(hào)q,如圖3.68所示。圖3.68 選擇需要觀察的信號(hào)名單擊【OK】按鈕,將這些信號(hào)調(diào)入信號(hào)觀察窗,如圖3.69所示。注意不要將觀察的主頻時(shí)鐘信號(hào)clk調(diào)入信號(hào)觀察窗,調(diào)入信號(hào)的數(shù)量應(yīng)根據(jù)實(shí)際需要來決定,不可隨意調(diào)入過多沒有實(shí)際意義的信號(hào)信號(hào),這會(huì)導(dǎo)致 Signal Tap II無謂的占用芯片過多的資源。 圖 3.69 已調(diào)入的待測(cè)信號(hào)(3)設(shè)置Signal Tap II參數(shù)單擊全屏按鈕和窗口左下角的Setup頁,彈出全屏編輯窗,如圖3.70 所示。 圖3.70

54、 Signal Tap II的編輯窗口首先輸入邏輯分析儀的工作時(shí)鐘信號(hào)clock。單擊clock欄左側(cè)的瀏覽按鈕,彈出Node Finder對(duì)話框。選擇工程的主頻時(shí)鐘信號(hào)clk,以其作為邏輯分析儀的采樣時(shí)鐘,接著在Data選項(xiàng)區(qū)的Sample 欄選擇采樣深度為1K位。接著根據(jù)待觀察信號(hào)的要求,在【Buffer acquisition mode】選項(xiàng)區(qū)域的【Circulate】欄設(shè)定采樣深度中起始觸發(fā)的位置,比如選擇前點(diǎn)觸發(fā)(Pre trigger position)。最后選擇觸發(fā)信號(hào)和觸發(fā)方式,這可以根據(jù)具體要求來選定。在Trigger 選項(xiàng)區(qū)域的Trigger欄選擇1;選中打勾小框Trigger,并在【Source】欄選擇觸發(fā)信號(hào),在此選擇cnt4工程中的EN作為觸發(fā)信號(hào);在【Pattern】欄選擇上升沿觸發(fā)方式。即當(dāng)測(cè)得EN的上升沿后,Signal Tap II在clk的驅(qū)動(dòng)下根據(jù)設(shè)置cnt4信號(hào)進(jìn)行連續(xù)或單次采樣。(4)文件存盤點(diǎn)擊保存按鈕,在彈出的對(duì)話框中輸入此Signal Tap II文件名cnt4_top(默認(rèn)名)。單擊【保存】按鈕,將出現(xiàn)一個(gè)提示頁面【Do you want to enable SignalTap

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論