版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、·267·第3章 Altera Quartus II軟件開發(fā)向導基于Altera Quartus II軟件的設計方法有模塊編輯法、文本編輯法、宏模塊編輯法和包含前三種方法的混合編輯法。宏模塊設計法放在第6章講述,本章通過實例簡單介紹使用Quartus II軟件的模塊原理圖編輯法、文本編輯法和包含前兩種方法的混合編輯法。3.1模塊編輯及設計流程Quartus II軟件的模塊編輯器以原理圖的形式和圖標模塊的形式來編輯輸入文件。每個模塊文件包含設計中代表邏輯的框圖和符號。模塊編輯器可以將框圖、原理圖或符號集中起來,用信號線、總線或管道連接起來形成設計,并在此基礎上生成模塊符號文件
2、(.bdf)、AHDL Include文件(.inc)和HDL文件。3.1.1 原理圖輸入文件的建立在這里我們設計非常簡單一個二輸入的或門電路。它只包含一個或門、兩個輸入引腳和一個輸出引腳。首先創(chuàng)建一個原理圖形式的輸入文件。步驟如下:(1)打開模塊編輯器單擊【File】|【New】,彈出新建文件對話框,如圖3.1所示。圖3.1 新建文件對話框選擇文件類型【Block Diagram/Schematic File】,打開模塊編輯器,如圖3.2所示。使用該編輯器可以編輯圖標模塊,也可以編輯原理圖。圖3.2 模塊編輯器Quartus II提供了大量的常用的基本單元和宏功能模塊,在模塊編輯器中可以直接
3、調用它們。在模塊編輯器要插入元件的地方單擊鼠標左鍵,會出現(xiàn)小黑點,稱為插入點。然后鼠標左鍵,彈出【Symbol】對話框,如圖3.3所示?;蛘咴诠ぞ邫谥袉螕魣D標,也可打開該對話框。圖3.3 Symbol對話框在Symbol對話框左邊的元件庫【Libraries】中包含了Quartus II提供的元件。它們存放在alteraquartus60libraries的子目錄下,分為primitives、others、megafunctions三個大類。q 基本邏輯函數(shù)(primitives)基本邏輯函數(shù)存放在alteraquartus60libraries primitives的子目錄下,分別為緩沖邏輯
4、單元(buffer)、基本邏輯單元(logic)、其它單元(other)、引腳單元(pin)和存儲單元(storage)五個子類。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ù)經過嚴格的測試和優(yōu)化,用戶可以根據要求設定其功能參數(shù)以適應不同的應用場合。這些函數(shù)存放在alteraquartus60libraries megafunctions的子目錄下,包含arithmetic、gates、I/O和storage四個子類。arithmetic子類中包含的是算法函數(shù),如累加器、加法器、乘法器和LPM算術函數(shù)等;gates子類中包含的是多路復用器和門函數(shù);I/O子類中包含的是時鐘數(shù)據恢復(CDR)、鎖相環(huán)(PLL)、千兆位收發(fā)器(GXB)、LVDS接收發(fā)送器等;storage子類中包含的是存儲器、移位寄存器模塊和LPM存儲器函數(shù)。q 其他函數(shù)(others
6、)其他函數(shù)包含了MAXPlus 所有的常用的邏輯電路和Opencore_plus函數(shù),這些函數(shù)存放在alteraquartus60libraries others的子目錄下。這些邏輯函數(shù)可以直接應用到原理圖的設計上,可以簡化許多設計工作。在模塊編輯器的左邊是工具欄,熟悉這些工具按鈕的性能,可以大幅度提高設計速度。下面詳細介紹這些按鈕的功能。q 選擇工具:選取、移動、復制對象,是最基本且常用的功能。q 文字工具:文字編輯工具,設定名稱或批注時使用。q 符號工具:用于添加工程中所需要的各種原理圖函數(shù)和符號。q 圖標模塊工具:用于添加一個圖表模塊,用戶可定義輸入和輸出以及一些相關參數(shù),用于自頂向下的
7、設計。q 正交節(jié)點工具:用于畫垂直和水平的連線,同時可定義節(jié)點的名稱。q 正交總線工具:用于畫垂直和水平的總線。q 正交管道工具:用于模塊之間的連線和映射。q 橡皮筋工具:使用此項移動圖形元件時引腳與連線不斷開。q 部分連線工具:使用此項可以實現(xiàn)局部連線。q 放大/縮小工具:用于放大或縮小原理圖。q 全屏工具:用于全屏顯示原理圖編輯窗口。q 查找工具:用于查找節(jié)點,總線和元件等。q 元件翻轉工具 :用于圖形的翻轉,分別為水平翻轉,垂直翻轉和90度的逆時針翻轉。q 畫圖工具、:畫圖工具,分別為矩形、圓形、直線和弧線工具。(2)添加元件符號打開Symbol對話框左邊的元件庫【Libraries】,
8、選擇【primitives】|【logic】|【or2】,彈出Symbol對話框,如圖3.4所示。圖3.4 在Symbol對話框選擇元件單擊【OK】按鈕。鼠標變?yōu)楹瓦x中的符號,將目標元件移動到合適位置單擊左鍵,編輯器窗口就出現(xiàn)了該元件,如圖3.5所示。圖3.5 在編輯器窗口添加或門同理,在【Libraries】中,選擇【primitives】|【pin】|【input】,放兩個輸入引腳到編輯器窗口;選擇【primitives】|【pin】|【output】,放一個輸出引腳到編輯器窗口。如圖3.6所示。圖3.6 在編輯器窗口添加輸入/輸出引腳(3)連接各元件并給引腳命名放置好元件后,接下來的就要
9、連接各個功能模塊,通過導線將模塊間的對應管腳直接連接起來。其具體做法如下:將鼠標移到其中一個端口,待鼠標變?yōu)椤?”形狀后。一直按住鼠標左鍵,將鼠標拖到到待連接的另一個端口上。放開左鍵,則一條連線畫好了。如果需要刪除一根線,單擊這根連線并按Del鍵。這里分別將兩個輸入引腳連接到或門的兩個輸入端,將輸出引腳連接到或門的輸出端。連線完成后可以給輸入/輸出引腳命名。在引線端子的PIN_NAME處雙擊鼠標,彈出Pin Properties對話框,在【Pin name】欄中填入名字。這里三個引腳分別命名為A、B、C。如圖3.7所示。圖3.7 連接元件并命名引腳名稱可以使用26個大寫英文字母和26個小寫英文
10、字母,以及10個阿拉伯數(shù)字,或是一些特殊符號“/”“_”來命名,例如AB, /5C,a_b都是合法的引腳名。引腳名稱不能超過32個字符;大小寫的表示相同的含義;不能以阿拉伯數(shù)字開頭;在同一個設計文件中引腳名稱不能重名??偩€(Bus)在圖形編輯窗口中顯示為的是一條粗線,一條總線可代表2256個節(jié)點的組合,即可以同時傳遞多路信號。總線的命名必須在名稱后面加上 a b,表示一條總線內所含的節(jié)點編號,其中a和b必須是整數(shù),但誰大誰小并無原則性的規(guī)定,例如A3.0、B0.15、C8.15都是合法的總線名稱。(4)保存文件最后如需要保存文件,選擇【File】菜單中的【Save As】項或單擊按鈕,彈出Sa
11、ve As對話框,如下圖3.8所示,在File Name 對話框內輸入設計文件名my_or_2,然后選擇【OK】,即可保存文件。圖3.8 保存文件原理圖和圖表模塊設計的文件名稱與引腳命名規(guī)則相同,長度必須在32個字符以內,不包含擴展名“.bdf”。3.1.2 圖表模塊輸入圖表模塊輸入是自頂向下的設計方法。首先在頂層文件中劃出圖形塊或器件符號,然后在圖形塊上設置端口和參數(shù)信息,用信號線、總線和管道把各個組件連接起來。下面以3-8譯碼器為例介紹圖表模塊輸入法。打開模塊編輯器,單擊工具欄上的圖表模塊工具,將該模塊拖到右邊的空白處,用鼠標在需作圖的地方畫矩形框,在所畫的矩形框范圍就會出現(xiàn)圖表模塊,如圖
12、3.9所示。圖3.9 生成的圖表模塊在圖表模塊上單擊鼠標右鍵,彈出如圖3.10左圖所示的菜單,選擇【Block Properties】選項,彈出模塊屬性設置對話框,如圖3.10右圖所示。 圖3.10 模塊屬性設置對話框模塊屬性設置對話框有四個屬性標簽頁.。在【General】標簽頁中的【Name】欄設置模塊名稱為decode3_8;在【I/Os】標簽頁設置3-8譯碼器的端口信息,在【Name】欄中輸入端口名稱A,【Type】欄輸入INPUT,設定為輸入端口。單擊【Add】按鈕,即可將輸入端口A添加到模塊屬性設置對話框下面的【Existing Block I/Os】列表中,如圖3.11左圖所示。
13、以此類推,添加另外兩個輸入信號B、C,添加三個使能信號G1、G2a、G2b,添加八個輸出信號y0、y1、y2、y3、y4、y5、y6、y7。如圖3.11右圖所示。 圖3.11 添加輸入端口單擊【確定】,就生成了圖標模塊。使用鼠標選中圖標模塊,調整其大小,以便顯示所有的端口。如圖3.12所示。圖3.12 生成的圖標模塊單擊,保存設計的圖標模塊文件,將該文件的后綴名定義為.bdf。以上的設計過程只是規(guī)定了設計的圖標模塊的外部端口,圖標模塊的功能由硬件描述語言或圖形文件實現(xiàn)。Quartus II軟件支持的設計文件格式有:AHDL語言格式、VHDL語言格式、Verilog HDL 語言格式、Schem
14、atic圖形格式。在圖標模塊單擊鼠標右鍵,在彈出的菜單中選擇【Create Design File from Selected Block】選項,彈出創(chuàng)建設計文件對話框,如圖3.13所示。圖 創(chuàng)建設計文件對話框選擇文件設計類型,這里選VHDL,確定是否把將要生成的文件添加到當前工程中。單擊【OK】,就生成了設計文件decode3_8.vhd。如圖所示。圖3.13 生成設計文件decode3_8.vhd單擊【確定】,彈出包含端口聲明的VHDL文本編輯窗口,如圖3.14所示。圖 包含端口聲明的VHDL文本編輯窗口在該窗口中,已經自動生成了包含端口定義的VHDL程序的實體部分,用描述模塊功能的結構體
15、部分是個空白,需要插入相應的語句,完成設計。如果在圖 創(chuàng)建設計文件對話框選擇Schematic,則彈出包含已經定義的輸入輸出端口原理圖編輯窗口,如圖3.15所示。圖3.15 已經定義的輸入輸出端口原理圖編輯窗口在原理圖編輯窗口左邊,是輸入端口;在原理圖編輯窗口右邊,是輸出端口。下面我們要做的工作就是在中間插入元件,以構成自動decode3_8的原理圖。在生成圖標模塊的設計文件之后,如果需要對頂層圖標模塊的端口名或端口數(shù)目進行修改,那么在修改后,在模塊上單擊右鍵,在彈出的菜單中選擇【Update Design File from Selected Block】選項,Quartus II軟件會自動
16、更新底層設計文件。在設計較為復雜的電路時,頂層文件中需要包含多個圖標模塊和多個元件符號,而且需要把它們連接起來。,一般來說,連接元件符號的是信號線或總線,連接圖標模塊的既可以是信號線或總線,也可以是管道。當用管道連接兩個圖標模塊時,如果兩邊端口名稱相同,如圖所示則不必在管道上加標注,兩者能夠智能連接。在連接兩個圖標模塊的管道上單擊右鍵,在彈出的菜單中選擇【Properties】選項,彈出Conduct Properties對話框,如圖3.16所示。選擇【Signal】屬性頁,可在【Connections】列表中看到對應的連接關系。如圖3.17所示。圖3.16 具有相同端口名稱的兩圖標模塊 圖3
17、.17 Conduit Properties對話框當需要連接的兩個圖標模塊端口名稱不同時,或者是圖標模塊和元件符號相連時,使用端口映射的方法將兩個模塊的端口連接起來。以如圖3.18所示的電路為例。圖3.18 圖標模塊和元件符號相連圖3.18中顯示的時一個圖標模塊和一個二輸入的與門,首先用兩條信號線分別從與門的兩個輸入端引向圖標模塊,在圖標模塊會產生一個連接器端點。選中連接的信號線,在彈出的菜單中選擇【Properties】選項,彈出Conduct Properties對話框,對該信號線命名,例如這里為wire01和wire02。選中圖標模塊中需要映射的連接器端點,在連接器端點上單擊右鍵,在彈出
18、的菜單中選擇【Mapper Properties】選項,彈出Mapper Properties 對話框,如圖3.19所示。圖3.19 Mapper Properties 對話框在Mapper Properties 對話框中選擇【Mapping】屬性頁,該屬性頁用于設置模塊I/O端口和連接器上的信號映射。例如,這里在【I/O on block】填入M,在【Signal in node】填入單擊wire01,單擊【Add】按鈕,就將映射關系添加到了下面的【Existing mapping】列表中,表示將圖標模塊的輸出端連接到信號線wire01上,而信號線wire01又連接在與門的一個輸入端上,這樣
19、就實現(xiàn)了圖標模塊和元件符號的相連。依此類推,將其它映射關系也添加進來。完成映射后,在圖表模塊連接器端點處可以看到相關信息,如圖3.20所示。圖3.20 映射后的連接圖如果連接的是兩個圖標模塊,用類似同樣地辦法設置。3.1.3原理圖設計流程本節(jié)以上節(jié)建立的二輸入或門輸入文件為頂層文件,通過全部流程,實現(xiàn)設計。詳細介紹基于Quartus II軟件的原理圖設計方法,具體實現(xiàn)步驟如下。1.建立工程(1)單擊【File】|【New Project Wizard】選項,彈出工程向導的基本信息對話框,如圖3.7所示,在此對話框中,第一欄填入新工程的文件夾名,這里單擊,彈出Select Directory對話
20、框,找到上節(jié)建立的輸入文件(my_or2.bdf),單擊【打開】,在第一欄就出現(xiàn)新工程的文件夾名,第二欄出現(xiàn)工程名,第三欄出現(xiàn)頂層實體名。注意工程名要和頂層實體名相同。圖3.7 工程向導的基本信息(2)選擇需要加入的文件和庫單擊圖3.7所示對話框中的【Next】按鈕進行下一步操作。此時如果文件夾不存在的話,系統(tǒng)會自動提示用戶是否創(chuàng)建該文件夾,選擇【Yes】按鈕后會自動創(chuàng)建。已經創(chuàng)建就彈出添加文件對話框,如圖3.8所示。如果此設計中還需要其他設計文件,可以單擊【File name】欄右邊的,選擇要添加的文件,單擊【Add All】按鈕就將該文件加入到上面的工程中。或者直接單擊【Add All】按
21、鈕加入在該目錄下的所有文件,如果需要用戶自定義的庫,單擊【User Libraries】按鈕進行選擇。選中已加入的文件,單擊【Remove】可以將其移除。這里不需要添加任何其它文件,直接單擊【Next】。圖3.8 添加文件對話框3)選擇目標器件單擊圖3.8所示對話框中的【Next】按鈕后,彈出器件類型設置的對話框,如圖3.9所示。在【Target device】選項中選擇【Auto device selected by the Fitter】選項,系統(tǒng)會自動給所設計的文件分配目標器件。選擇【Specific device selected in Available deviceslist】選項
22、,用戶可以根據實驗條件指定目標器件。在右側的選項中,可以選擇目標器件的封裝類型(Package),引腳數(shù)量(Pin count)和速度等級(Speed grade)以便快速查找用戶所需的器件范圍。圖3.9 器件類型設置(4)選擇第三方EDA工具單擊圖3.9中的【Next】按鈕,彈出EDA工具設置對話框,如圖.10所示。在此選擇使用的第三方EDA工具。本例中不需要第三方EDA工具,直接單擊【Next】按鈕。圖3. 10 EDA工具設置(5)結束工程設置最后彈出新工程確認對話框,如圖3.11所示。從對話框中可以看到建立的工程名稱,選擇的器件等信息,如確認無誤后,單擊【Finish】按鈕,創(chuàng)建新工程
23、。圖3.11 工程信息概要2. 編譯工程單擊工具欄上的按鈕,對工程文件進行編譯,這時Quartus II界面不斷變化,編譯結束后產生的界面如圖3.12所示,這是編譯成功的情況。單擊【確定】,生成的編譯結果界面如圖3.13所示。該界面顯示了編譯時的各種信息。如果編譯不成功,在信息顯示窗口給出錯誤和警告,可根據提示錯誤和警告進行相應的修改后重新編譯,直到沒有錯誤提示為止。圖3.12 編譯完成時界面圖3.13 編譯結果3. 建立仿真矢量波形文件(1)創(chuàng)建文件在工具欄中單擊【File】|【New】,彈出新建對話框,如圖3.14所示。在出現(xiàn)的【New】對話框中選擇【Other Files】頁面,在該頁面
24、選擇【Waveform Editor File】選項,單擊【OK】按鈕,彈出矢量波形文件編輯窗口,如圖3.15所示。圖3.14 建立矢量波形文件 圖3.15 矢量波形編輯窗口(2)添加引腳或節(jié)點雙擊圖3.15中【Name】下方空白處,彈出Insert Node or Bus對話框,如圖3.16所示。圖 3.16 Insert Node or Bus對話框點擊【Node Finder】按鈕,彈出Node Finder對話框,如圖3.17所示。圖3.17 Node Finder對話框單擊【Filter】欄的下拉菜單選擇【Pins:all】選項后,點擊【List】按鈕,彈出設計文件引腳列表窗口,如圖
25、3.18所示。在【Node Found】欄中列出了設計文件的列表。圖3.18 輸入/輸出引腳列表在列表中雙擊需要的引腳,選中的信號將出現(xiàn)在右邊的一側,或者單擊按鈕,也可以如此,如圖3.19所示。圖3.19 選擇輸入/輸出節(jié)點單擊【OK】按鈕。返回insert Node or Bus對話框,如圖3.20所示。圖 3.20 查找節(jié)點后的“ Insert Node or Bus”對話框單擊【OK】按鈕后,選中的輸入/輸出引腳就出現(xiàn)在波形編輯窗口的【Name】欄下,引腳添加成功,如圖3.21所示。圖3.21 添加節(jié)點后的矢量波形編輯窗口(3)編輯輸入波形并保存波形觀察窗的左邊是輸入引腳,在同行的右邊可
26、以編輯波形。使用時,先選中左邊的輸入引腳名,再在右邊用鼠標在輸入波形上拖一條需要改變的黑色區(qū)域,然后單擊左邊工具欄的有關按鈕,即可進行低電平、高電平、任意、高阻態(tài)、反相和總線數(shù)據等各種設置。若是時鐘信號,用鼠標點時鐘信號的,出現(xiàn)時鐘信號設置對話框,按下【OK】即可設置時鐘信號。這時時鐘信號的波形區(qū)域全部變成黑色,按集成環(huán)境窗左邊上的時鐘按鈕,根據要求將各輸入信號A、B的波形設置成如圖3.22所示。然后單擊保存文件,文件取名為my_or_2 .vwf。圖3.22 編輯輸入信號4波形仿真(1)功能仿真在Quartus II的工具欄中選擇【Processing】|【Generate Function
27、al.】,生成功能仿真網表,然后選擇【Assignments】|【Setting】,彈出設置仿真類型對話框,點擊“Simulator Settings”選項,在“simulation mode”中選擇“Functional”命令,如圖3.23所示。圖3.23 設置功能仿真類型后點擊按鈕進行功能仿真,檢查設計的邏輯錯誤。仿真結果如圖3.24所示。圖3.24 功能仿真(2)時序仿真選擇Quartus II的工具欄中【Assignments】|【Setting】|【Simulator Settings】|【simulation mode】選擇“Timing”命令,然后單擊工具欄的按鈕,開始時序仿真,
28、驗證時序是否符合要求,仿真過程在后臺進行,計算機能夠同時作其他的工作。結果如圖3.25所示。圖3.25 時序仿真觀察波形,發(fā)現(xiàn)輸出端C的波形產生了一些延時。5. 引腳分配分配引腳是為了對所設計的過程進行硬件測試,將輸入/輸出引腳信號鎖定在目標器件的引腳上。單擊工具欄【Assignments】|【Pins】選項,彈出選擇要分配的分配引腳的對話框,如圖3.26所示。在下方的列表中列出了本設計的所有輸入輸出引腳名。圖3.26 選擇要分配的分配引腳在圖3.26中,雙擊輸入端A對應的【Location】選項,彈出引腳列表,從中選擇合適的引腳,這時輸入A的引腳分配完畢,同理完成其他所有引腳的指定,結果如圖
29、3.27所示。圖3.27 完成所有引腳的分配6. 下載驗證下載驗證是將所做設計生成的文件通過計算機下載到實驗電路板上,用來驗證本次設計是否符合要求的一道流程,其步驟如下:(1)編譯分配完引腳后必須經過再次編譯,這樣才能存儲引腳鎖定的信息,單擊編譯按鈕執(zhí)行再次編譯。如果編譯出現(xiàn)問題,可以對器件重新設置。 (2)配置下載電纜在【Tools】|【Progammer】命令,彈出未經配置的下載窗口,如圖3.28所示。圖3.28 未經配置的下載窗口單擊【Hardware Setup】按鈕,彈出Hardware Setup對話框,如圖3.29所示。圖3.29 Hardware Setup對話框單擊【Add
30、Hardware】按鈕,彈出下載電纜選擇對話框,如圖3.30所示。在【Hardware Type】一欄中選擇【ByteBlasterMV or ByteBlaster II】,單擊【OK】按鈕,完成設置。如果下載電纜一直保持不變,不需每次都要設置。圖3.30 下載電纜選擇對話框(3)JTAG模式下載JTAG模式是Quartus II軟件默認的下載模式,其相應的下載文件為.sof格式,勾選下載文件右側的小方框,如圖3.31所示.。圖3.31 選擇下載文件將下載電纜連接好后,單擊【Start】按鈕,計算機就開始下載編程文件。下載完后結果如圖3.32所示。圖 3.32 JTAG模式下載完畢(4)Ac
31、tive Serial模式Active Serial模式的下載文件為“.pof”格式,在【Mode】一欄中選擇Active Serial】,彈出提示框,點擊【是】,然后在“Add File”里添加選擇文件“or_2.pof”,勾選下載文件右側的小方框,將下載電纜連接好后,單擊【Start】按鈕,開始下載編程文件。下載完后結果如圖3.33所示。圖3.33 Active Serial模式對于大多數(shù)設計來說,到此就完成了。7. Quartus II的幾個常用功能。(1)使用RTL Viewer分析綜合結果單擊【Tools】|【Netlist Viewers】|【RTL Viewer】,彈出RTL V
32、iewer對話框,如圖3.34所示??梢钥吹骄C合后的RTL結構圖,發(fā)現(xiàn)該圖與原理圖相同。圖3.34 RTL Viewer對話框(2)使用Technology Map Viewer分析綜合結果單擊【Tools】|【Netlist Viewers】|【Technology Map Viewer】,彈出Technology Map Viewer對話框,如圖3.35所示。圖 3.35 Technology Map Viewer對話框(3)創(chuàng)建圖元符號單擊【File】|【Create/Update】|【Create Symbol Files for Current File】,生成“.bsf”格式的圖元
33、符號文件,如圖3.36所示。從圖中可以看出生成的是只有輸入輸出的元件。在原理圖編輯窗口單擊按鈕,在彈出的“Symbol”對話框的“Project”欄里出現(xiàn)已經生成的元件or_2,在以后的原理圖設計中可以直接調用。圖3.36 生成的元件符號3.2 文本編輯及設計流程Quartus II軟件支持的文本編輯是指用AHDL、VHDL 和Verilog語言創(chuàng)建輸入文件。本節(jié)使用VHDL語言設計一個簡單的4位加法器程序,來介紹設計過程。3.2.1 建立文本文件在工具欄中,單擊【File】|【New】,或使用快捷鍵Ctrl+N,彈出新建文件對話框。按圖示選擇【VHDL File】選項,如圖3.37所示文件,
34、圖3.37 建立VHDL文本文件單擊【OK】,彈出文本文件編輯框。如圖3.38所示。在編輯框內可以輸入VHDL程序。 圖3.38 VHDL文本編輯窗口在編輯框內可以輸入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、提供了一個輸入模版,在模板上給出了程序的框架,在框架內,用填入的自己的代碼。單擊【Edit】|【Insert Template】,彈出插入模板對話框,如圖3.40所示。圖3.40 插入模板對話框在【Template section】下面的窗口中可以選擇需要插入的文本類型。如單擊【Architecture Body】,在下面的【Preview】窗口中就出現(xiàn)具體的內容,單擊【OK】,【Preview】窗口中的內容就會出現(xiàn)在的文本文件編輯框中。如圖3.41所示。圖3.41 在文本文件編輯框中插入模板這樣就可在編輯框中的模板內容里,刪除不需要的內容,添加自己的程序。依此類推,可以其它模板內容,以減輕編
37、程中負擔。在文本編輯完成后,就要保存文件。單擊保存文件或選擇 【File】 菜單中的 【Save As】選項. 彈出Save As對話框,如圖3.42所示,在 File Name 對話框內輸入設計文件名add4.vhd,然后選擇【OK】 即可保存文件。這樣文本輸入文件就建立完成。圖3.42 保存文件3.2.2 文本設計流程文本設計與模塊設計的流程大致相同,本節(jié)就以上節(jié)的四位加法器為例,詳細介紹Quartus II的文本設計方法,具體實現(xiàn)步驟如下。1. 建立新工程單擊【File】|【New Project Wizard】,在對彈出的話框中分別填入新工程的文件夾名,工程名,頂層實體名,新工程如圖3
38、.43所示。圖3.43 建立新工程注意:工程名要和頂層實體名相同。本例中只有一個設計文件,那么它就是頂層文件,它的工程名就是文件的實體名。單擊【Next】,彈出添加文件對話框,添加設計文件,然后單擊【Next】,進入目標器件選擇窗口,設置完器件后,單擊【Next】,進入EDA工具選擇窗口,這里不選擇。單擊【Finish】,彈出完成工程配置窗口,如圖3.41所示。圖3.41 完成工程的配置2. 編譯工程點擊工具欄上的按鈕,對文件進行編譯,根據提示錯誤警告進行相應的修改后重新編譯,直到沒有錯誤提示為止,編譯成功后結果如圖3.42所示。圖3.42 編譯工程3. 建立矢量波形文件在工具欄中單擊【Fil
39、e】菜單下的【New】命令,彈出新建對話框,如圖3.43所示。圖 3.43 建立矢量波形文件在出現(xiàn)的New對話框中選擇【Waveform Editor File】選項,單擊【OK】按鈕后波形文件建立成功。如圖3.44所示。圖3.44 矢量波形文件編輯窗口下面添加引腳或節(jié)點。雙擊“Name”下方空白處,在彈出話框中點擊【Node Finder】按鈕,選擇【Filter】欄的“Pins:all”選項后點擊【List】按鈕,雙擊需要的引腳,選中的信號將出現(xiàn)在波形編輯器中,結果如圖3.45所示。圖3.45 選擇輸入/輸出節(jié)點單擊【OK】按鈕。彈出查找節(jié)點后的Insert Node or Bus對話框,
40、如圖3.46所示。圖3.46 查找節(jié)點后的“ Insert Node or Bus”對話框單擊【OK】按鈕后引腳后引腳添加成功,如圖3.47所示。圖3.47 添加節(jié)點后的矢量波形編輯窗口下面編輯輸入信號并保存文件。單擊左邊工具欄的有關按鈕對輸入波形按需要設定,本例波形按圖3.48 設定。圖3.48 編輯輸入信號單擊保存文件,文件取名為“add4 .vwf”,如圖3.49 所示。圖3.49 保存矢量波形文件4. 仿真波形(1)在Quartus II的工具欄中選擇【Processing】|【Generate Functional.】生成功能仿真網表,然后選擇【Assignments】|【Setti
41、ng】,彈出如圖3.50所示對話框。圖3.50 仿真模式選擇單擊【Simulator Settings】選項,在【simulation mode】中選擇【Functional】,點擊按鈕進行功能仿真,檢查設計的邏輯錯誤。仿真結果如圖3.51所示。圖3.51 功能仿真(2)選擇Quartus II的工具欄中【Assignments】|【Setting】,在彈出的對話框中選擇【Simulator Settings】頁面中的【simulation mode】選項,選擇【Timing】,單擊工具欄的按鈕,開始時序仿真,驗證時序是否符合要求。時序仿真結果如圖3.52所示。圖3.52 時序仿真5. 引腳分
42、配及下載驗證對本項目分配引腳,結果如圖3.53 所示。并下載到實驗板上驗證其功能。具體和3.1節(jié)模塊設計步驟相同。在此就不加重復說明了。圖3.53 分配引腳3.3混合設計(自底向上)對于較為簡單的電路可以使用前面兩節(jié)介紹的設計方法。但在實際工程項目中往往涉及許多模塊,而其中的模塊又由許多模塊組成,參加項目的人使用的設計方式可能不同。這就要求設計者掌握混合編輯法以設計復雜的數(shù)字系統(tǒng)。下面以一個計數(shù)顯示電路為例介紹這種設計方法。該電路有一個十進制計數(shù)器和七段譯碼顯示電路組成。3.3.1 建立文件需要建立兩個VHDL的文本文件。cnt4.vhd文件描述十進制計數(shù)器,seg_7.vhd文件描述七段譯碼
43、顯示電路。1. 建立計數(shù)器文件Cnt4.vhd程序的功能是在時鐘的驅動下循環(huán)產生09的二進制數(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;該程序經編譯仿真正確后,建立圖元
45、符號。單擊【File】|【Create/Update】|【Symbol Files for Current File】,生成.bsf格式的圖元文件,以備后面使用。生成的圖元符號如圖3.54所示。圖3.54 生成的10進制計數(shù)器圖元符號2. 建立七段譯碼顯示電路文件SEG_7程序設計的電路的功能是將計數(shù)器輸出的二進制數(shù)轉化為數(shù)碼管的驅動信號。其代碼如下: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 ); -四位二進制碼輸入 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;如上面一樣該程序經編譯仿真正確后,建立圖元符號,以備后面使用。生成的圖元符號如圖3.55所示。圖3.54 生成的10進制計數(shù)器圖元符號3.3.2 設計流程混合設計的流程與前面的設計流程一樣,所不同的只是頂層文件的設計。具體步驟如下:1. 建立新
49、工程創(chuàng)建一個新工程,其頂層文件是一個.bdf格式的文件。這里取工程名為cnt4_top,如圖3.55所示。圖3.58 建立新的工程2. 建立原理圖文件并添加圖元符號 建立名為cnt4_top的原理圖文件,雙擊鼠標后在彈出對話框中的【Project】欄中選擇生成的圖元符號,如圖3.59所示。將兩個圖元符號添加到原理圖編輯器中,并放置三個輸入和一個輸出引腳,如圖3.60所示。圖3.59 選擇生成的圖元符號圖 3.60 擺放所用圖元和引腳連接各個模塊并命名。在圖3.60中完成線路連接,結果如圖3.61所示。保存該圖。圖3.61 完整電路圖3. 編譯工程單擊工具欄的,將所設計的工程項目進行編譯,根據提
50、示,如有錯誤,進行相應的修改并重新編譯,直到沒有錯誤提示編譯成功為止。如圖3.62所示。圖 3.62 編譯工程4. 仿真首先創(chuàng)建波形矢量文件,然后分別進行功能仿真和時序仿真。功能仿真結果如圖3.63所示,時序仿真結果如圖3.64所示。圖3.63 功能仿真圖3.64 時序仿真5. 引腳分配,下載驗證分配引腳結果如圖3.65 所示。并下載到實驗板上驗證其功能,具體步驟與3.1節(jié)原理圖編譯相同。圖3.65 引腳分配3.4 使用Signal Tap II的實時測試隨著邏輯設計越來越復雜,僅僅依賴軟件的仿真來測試設計的硬件功能已經遠遠不夠了,而不斷需要重復進行的硬件系統(tǒng)測試也變得更加的困難。為了解決這些
51、問題,Altera提供了一種將高效的硬件測試手段和傳統(tǒng)的系統(tǒng)測試方法相結合的工具,這就是嵌入式邏輯分析儀(Signal Tap II)。它可以隨設計文件一并下載到目標芯片中,用以捕捉目標芯片內部信號節(jié)點處的信息,而且不影響原硬件系統(tǒng)的正常工作。在實際監(jiān)測中,Signal Tap II將測得的樣本信號暫存于目標器件中的嵌入式RAM中,然后通過器件的JTAG端口將采的信息傳出,送入計算機進行顯示和分析。嵌入式邏輯分析儀Signal Tap II可以對設計中的所有層次的模塊的信號節(jié)點進行測試,可以使用多時鐘驅動,而且還能通過設置以確定前后觸發(fā)捕捉信號信息的比例。本節(jié)將以上節(jié)設計的計數(shù)器為例介紹Sig
52、nal Tap II的使用方法,流程如下:(1)打開Signal Tap II的編輯窗口單擊【File】|【New】,彈出New對話框,選擇Other File頁,在該頁中選擇Signal Tap II File,單擊【OK】按鈕,彈出【Signal Tap II】編輯窗,如圖3.66所示。圖3.66 Signal Tap II編輯窗(2)調入待測信號單擊上排的【Instance】欄內的auto_signaltap_0,更改此命為cnt4,這是其中一組待測信號名。為了調入待測信號名,在下欄的空白處雙擊,彈出Node Finder對話框,如圖3.67所示。 圖 3.67 Node Finder對
53、話框單擊【List】按鈕,在左欄出現(xiàn)此工程的所有信號,包括內部信號。選擇需要觀察的信號名,這里選擇四位計數(shù)信號cnt4和七位輸出總線信號q,如圖3.68所示。圖3.68 選擇需要觀察的信號名單擊【OK】按鈕,將這些信號調入信號觀察窗,如圖3.69所示。注意不要將觀察的主頻時鐘信號clk調入信號觀察窗,調入信號的數(shù)量應根據實際需要來決定,不可隨意調入過多沒有實際意義的信號信號,這會導致 Signal Tap II無謂的占用芯片過多的資源。 圖 3.69 已調入的待測信號(3)設置Signal Tap II參數(shù)單擊全屏按鈕和窗口左下角的Setup頁,彈出全屏編輯窗,如圖3.70 所示。 圖3.70
54、 Signal Tap II的編輯窗口首先輸入邏輯分析儀的工作時鐘信號clock。單擊clock欄左側的瀏覽按鈕,彈出Node Finder對話框。選擇工程的主頻時鐘信號clk,以其作為邏輯分析儀的采樣時鐘,接著在Data選項區(qū)的Sample 欄選擇采樣深度為1K位。接著根據待觀察信號的要求,在【Buffer acquisition mode】選項區(qū)域的【Circulate】欄設定采樣深度中起始觸發(fā)的位置,比如選擇前點觸發(fā)(Pre trigger position)。最后選擇觸發(fā)信號和觸發(fā)方式,這可以根據具體要求來選定。在Trigger 選項區(qū)域的Trigger欄選擇1;選中打勾小框Trigger,并在【Source】欄選擇觸發(fā)信號,在此選擇cnt4工程中的EN作為觸發(fā)信號;在【Pattern】欄選擇上升沿觸發(fā)方式。即當測得EN的上升沿后,Signal Tap II在clk的驅動下根據設置cnt4信號進行連續(xù)或單次采樣。(4)文件存盤點擊保存按鈕,在彈出的對話框中輸入此Signal Tap II文件名cnt4_top(默認名)。單擊【保存】按鈕,將出現(xiàn)一個提示頁面【Do you want to enable SignalTap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人財產抵押借款簡易協(xié)議文本版A版
- 二零二四全新石灰石環(huán)保綜合利用合同3篇
- 2024版特種設備吊裝運輸合同3篇
- 個人房產買賣規(guī)范協(xié)議2024版A版
- 2024年04月中國建設銀行北京市分行度社會招考專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025年農業(yè)科技推廣合同會簽紀要3篇
- 2024版輪胎承包合同協(xié)議書
- 二零二五年度物流并購保密及市場共享協(xié)議2篇
- 專業(yè)節(jié)電器產品銷售協(xié)議規(guī)范2024版A版
- 2024年03月貴州貴州銀行六盤水分行招考筆試歷年參考題庫附帶答案詳解
- GB/T 12914-2008紙和紙板抗張強度的測定
- GB/T 1185-2006光學零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓
- 家庭教養(yǎng)方式問卷(含評分標準)
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設計和原理
- TSG ZF001-2006 安全閥安全技術監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
- 200m3╱h凈化水處理站設計方案
- 個體化健康教育記錄表格模板1
評論
0/150
提交評論