《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第4章_第1頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第4章_第2頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第4章_第3頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第4章_第4頁
《基于FPGA的現(xiàn)代數(shù)字電路設(shè)計》-第4章_第5頁
已閱讀5頁,還剩114頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

4.1模塊編輯及設(shè)計流程4.1.1原理圖輸入文件的建立在這里我們設(shè)計一個非常簡單的二輸入的或門電路,它只包含一個或門、兩個輸入引腳和一個輸出引腳。首先創(chuàng)建一個原理圖形式的輸入文件。步驟如下:1.打開模塊編輯器單擊“File”|“New”命令,彈出“New”對話框,如圖4.1所示。選擇文件類型“BlockDiagram/SchematicFile”選項,打開模塊編輯器,如圖4.2所示。使用該編輯器可以編輯圖標(biāo)模塊,也可以編輯原理圖。下一頁返回4.1模塊編輯及設(shè)計流程

AlteraQuartusⅡ提供了大量的常用的基本單元和宏功能模塊,在模塊編輯器中可以直接調(diào)用它們。在模塊編輯器要插入元件的地方單擊鼠標(biāo)左鍵,會出現(xiàn)小黑點,稱為插入點。然后,單擊鼠標(biāo)左鍵,彈出“Symbol”對話框,如圖4.3所示。注意:在工具欄中單擊圖標(biāo),也可以打開如圖4.3所示的對話框。在“Symbol”對話框左邊的元件庫“Libraries”中包含了AlteraQuartusⅡ提供的元件。它們存放在C:\altera\quartus60\libraries\的子目錄下,分為基本邏輯函數(shù)(primitives)、宏模塊函數(shù)(megafunctions)、其他函數(shù)(others)三個大類。上一頁下一頁返回4.1模塊編輯及設(shè)計流程

2.添加元件符號打開“Symbol”對話框左邊的元件庫“Libraries”,選擇primitives|logic|or2元件,彈出“Symbol”對話框,如圖4.4所示。單擊“OK”按鈕,鼠標(biāo)變?yōu)椤?”和選中的符號,將目標(biāo)元件移動到合適位置單擊左鍵,編輯器窗口就出現(xiàn)了該元件,如圖4.5所示。同理,在元件庫“Libraries”中,選擇primitives|pin|input元件,放兩個輸入引腳到編輯器窗口;選擇primitives|pin|output元件,放一個輸出引腳到編輯器窗口。上一頁下一頁返回4.1模塊編輯及設(shè)計流程

3.連接各元件并給引腳命名放置好元件后,接下來的就要連接各個功能模塊,通過導(dǎo)線將模塊間的對應(yīng)管腳直接連接起來。其具體做法如下:將鼠標(biāo)移到其中一個端口,待鼠標(biāo)變?yōu)椤?”形狀后,一直按住鼠標(biāo)左鍵,將鼠標(biāo)拖到到待連接的另一個端口上,放開左鍵,則一條連線畫好了。如果需要刪除一根線,單擊這根連線并按Del鍵。這里分別將兩個輸入引腳連接到或門的兩個輸入端,將輸出引腳連接到或門的輸出端。連線完成后可以給輸入/輸出引腳命名。在引線端子的PIN_NAME處雙擊鼠標(biāo),彈出“PinProperties”對話框,在“Pinname”欄中填入名字。這里三個引腳分別命名為A、B、C。上一頁下一頁返回4.1模塊編輯及設(shè)計流程

引腳名稱可以使用26個大寫英文字母和26個小寫英文字母,以及10個阿拉伯?dāng)?shù)字,或是一些特殊符號“/”“_”來命名,如AB,/5C,a_b都是合法的引腳名。引腳名稱不能超過32個字符;大小寫表示相同的含義;不能以阿拉伯?dāng)?shù)字開頭;在同一個設(shè)計文件中引腳名稱不能重名??偩€(Bus)在圖形編輯窗口中顯示的是一條粗線,一條總線可代表2~256個節(jié)點的組合,即可以同時傳遞多路信號??偩€的命名必須在名稱后面加上[a…b],表示一條總線內(nèi)所含的節(jié)點編號,其中a和b必須是整數(shù),但誰大誰小并無原則性的規(guī)定。例如,A[3…0]、B[0…15]、C[8…15]都是合法的總線名稱。上一頁下一頁返回4.1模塊編輯及設(shè)計流程

4.保存文件最后如需要保存文件,選擇“File”菜單中的“SaveAs”項或單擊保存按鈕,彈出“SaveAs”對話框,如圖4.8所示。在“文件名”對話框內(nèi)輸入設(shè)計文件名“my_or2”,然后單擊“保存”按鈕,即可保存文件。原理圖和圖表模塊設(shè)計的文件名稱與引腳命名規(guī)則相同,長度必須在32個字符以內(nèi),不包含擴(kuò)展名“*.bdf”。上一頁返回下一頁4.1模塊編輯及設(shè)計流程4.1.2圖表模塊輸入圖表模塊輸入是自頂向下的設(shè)計方法。首先在頂層文件中畫出圖形塊或器件符號,然后在圖形塊上設(shè)置端口和參數(shù)信息,用信號線、總線和管道把各個組件連接起來。下面以3?8譯碼器為例介紹圖表模塊輸入法。打開模塊編輯器,單擊工具欄上的圖表模塊工具,將該模塊拖到右邊的空白處,用鼠標(biāo)在需作圖的地方畫矩形框,在所畫的矩形框范圍就會出現(xiàn)圖表模塊,如圖4.9所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程在圖表模塊上單擊鼠標(biāo)右鍵,彈出如圖4.10(a)所示的菜單,選擇“BlockProperties”選項,彈出“BlockProperties”對話框,如圖4.10(b)所示。“BlockProperties”對話框有四個屬性標(biāo)簽頁。在“General”標(biāo)簽頁中的“Name”欄設(shè)置模塊名稱為“decode3_8”;在“I/Os”標(biāo)簽頁設(shè)置譯碼器的端口信息,在“Name”欄中輸入端口名稱“A”,“Type”欄輸入“INPUT”,設(shè)定為輸入端口。單擊“Add”按鈕,即可將輸入端口A添加到模塊屬性設(shè)置對話框下面的“ExistingBlockI/Os”列表中,如圖4.11(a)所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程4.1.3原理圖設(shè)計流程本節(jié)以上節(jié)建立的二輸入或門輸入文件為頂層文件,通過全部流程,實現(xiàn)設(shè)計。詳細(xì)介紹基于AlteraQuartusⅡ軟件的原理圖設(shè)計方法,具體實現(xiàn)步驟如下:1.建立工程(1)單擊“File”|“NewProjectWizard”選項,彈出工程向?qū)У幕拘畔υ捒颍鐖D4.21所示,在此對話框中,第一欄填入新工程的文件夾名,這里單擊按鈕,彈出“SelectDirectory”對話框,找到上節(jié)建立的輸入文件(my_or2.bdf),單擊“打開”按鈕,在第一欄就出現(xiàn)新工程的文件夾名,第二欄出現(xiàn)工程名,第三欄出現(xiàn)頂層實體名。注意工程名要和頂層實體名相同。上一頁下一頁返回4.1模塊編輯及設(shè)計流程(2)選擇需要加入的文件和庫。單擊圖4.21所示對話框中的“Next”按鈕進(jìn)行下一步操作。此時如果文件夾不存在,系統(tǒng)會自動提示用戶是否創(chuàng)建該文件夾,選擇“Yes”按鈕后會自動創(chuàng)建。已經(jīng)創(chuàng)建就彈出添加文件對話框,如圖4.22所示。如果此設(shè)計中還需要其他設(shè)計文件,可以單擊“Filename”欄右邊的按鈕,選擇要添加的文件,單擊“AddAll”按鈕就將該文件加入到上面的工程中?;蛘咧苯訂螕簟癆ddAll”按鈕加入在該目錄下的所有文件,如果需要用戶自定義的庫,單擊“UserLibraries”按鈕進(jìn)行選擇。選中已加入的文件,單擊“Remove”按鈕可以將其移除。這里不需要添加任何其他文件,直接單擊“Next”按鈕。上一頁下一頁返回4.1模塊編輯及設(shè)計流程(3)選擇目標(biāo)器件。單擊圖4.22所示對話框中的“Next”按鈕后,彈出器件類型設(shè)置對話框,如圖4.23所示。在“Targetdevice”選項中選擇“AutodeviceselectedbytheFitter”選項,系統(tǒng)會自動給所設(shè)計的文件分配目標(biāo)器件。選擇“Specificdeviceselectedin’Availabledevices’list”選項,用戶可以根據(jù)實驗條件指定目標(biāo)器件。在右側(cè)的選項中,可以選擇目標(biāo)器件的封裝類型(Package)、引腳數(shù)量(Pincount)和速度等級(Speedgrade),以便快速查找用戶所需的器件范圍。上一頁下一頁返回4.1模塊編輯及設(shè)計流程(4)選擇第三方EDA工具。單擊圖4.23中的“Next”按鈕,彈出EDA工具設(shè)置對話框,如圖4.24所示。在此選擇使用的第三方EDA工具。本例中不需要第三方EDA工具,直接單擊“Next”按鈕。(5)結(jié)束工程設(shè)置。最后彈出工程信息概要,如圖4.25所示。從對話框中可以看到建立的工程名稱、選擇的器件等信息,如確認(rèn)無誤,單擊“Finish”按鈕,創(chuàng)建新工程。2.編譯工程單擊工具欄上的按鈕,對工程文件進(jìn)行編譯,這時AlteraQuartusⅡ界面不斷變化,編譯完成時的界面如圖4.26所示,這是編譯成功的情況。上一頁下一頁返回4.1模塊編輯及設(shè)計流程該界面顯示了編譯時的各種信息。如果編譯不成功,在信息顯示窗口給出錯誤和警告,可根據(jù)提示錯誤和警告進(jìn)行相應(yīng)的修改后重新編譯,直到?jīng)]有錯誤提示為止。用戶單擊“確定”按鈕,生成的編譯結(jié)果界面如圖4.27所示。3.建立仿真矢量波形文件1)創(chuàng)建文件在工具欄中單擊“File”|“New”命令,彈出“New”對話框,如圖4.28所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程在出現(xiàn)的“New”對話框中選擇“OtherFiles”頁面,在該頁面選擇“VectorWaveformFile”選項,單擊“OK”按鈕,彈出矢量波形文件編輯窗口,如圖4.29所示。2)添加引腳或節(jié)點雙擊圖4.29中“Name”下方空白處,彈出“InsertNodeorBus”對話框,如圖4.30所示。單擊“NodeFinder”按鈕,彈出“NodeFinder”對話框,如圖4.31所示。單擊“Filter”欄的下拉菜單選擇“Pins:all”選項后,單擊“List”按鈕,彈出設(shè)計文件引腳列表窗口,如圖4.32所示。在“NodeFound”欄中列出了設(shè)計文件的列表。上一頁下一頁返回4.1模塊編輯及設(shè)計流程在列表中雙擊需要的引腳,選中的信號將出現(xiàn)在右邊的一側(cè),或者單擊按鈕,也可以如此,如圖4.33所示。單擊“OK”按鈕,返回“InsertNodeorBus”對話框,如圖4.34所示。單擊“OK”按鈕后,選中的輸入/輸出引腳就出現(xiàn)在波形文件編輯窗口的“Name”欄下,引腳添加成功,如圖4.35所示。3)編輯輸入波形并保存波形觀察窗的左邊是輸入引腳,在同行的右邊可以編輯波形。使用時,先選中左邊的輸入引腳名,再在右邊用鼠標(biāo)在輸入波形上拖一條需要改變的黑色區(qū)域,然后單擊左邊工具欄的有關(guān)按鈕,即可進(jìn)行低電平、高電平、任意、高阻態(tài)、反相和總線數(shù)據(jù)等各種設(shè)置。上一頁下一頁返回4.1模塊編輯及設(shè)計流程若是時鐘信號,用鼠標(biāo)單擊時鐘信號的出現(xiàn)時鐘信號設(shè)置對話框,單擊“OK”按鈕即可設(shè)置時鐘信號。這時時鐘信號的波形區(qū)域全部變成黑色,按集成環(huán)境窗左邊上的時鐘按鈕,根據(jù)要求將各輸入信號A、B的波形設(shè)置成如圖4.36所示。單擊可以保存文件,文件取名為“my_or_2.vwf”上一頁下一頁返回4.1模塊編輯及設(shè)計流程4.1.4波形仿真1.功能仿真在AlteraQuartusⅡ的工具欄中選擇“Processing”|“GenerateFunctional”|…選項,生成功能仿真網(wǎng)表,然后選擇“Assignments”|“Setting”選項,彈出設(shè)置仿真類型對話框,單擊“SimulatorSettings”選項,在“simulationmode”中選擇“Functional”命令,如圖4.37所示。然后單擊按鈕進(jìn)行功能仿真,檢查設(shè)計的邏輯錯誤。仿真結(jié)果如圖4.38所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程2.時序仿真選擇AlteraQuartusⅡ的工具欄中“Assignments”|“Setting”|“SimulatorSettings”|“simulationmode”選項,選擇“Timing”命令,然后單擊工具欄的按鈕,開始時序仿真,驗證時序是否符合要求,仿真過程在后臺進(jìn)行,計算機(jī)能夠同時做其他的工作。時序仿真結(jié)果如圖4.39所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程4.1.5引腳分配引腳分配是為了對所設(shè)計的過程進(jìn)行硬件測試,將輸入/輸出引腳信號鎖定在目標(biāo)器件的引腳上。單擊工具欄“Assignments”|“Pins”選項,彈出選擇要分配的分配引腳的對話框,如圖4.40所示。在下方的列表中列出了本設(shè)計的所有輸入/輸出引腳名。在圖4.40中,雙擊輸入端A對應(yīng)的“Location”選項,彈出引腳列表,從中選擇合適的引腳,這時輸入A的引腳分配完畢,同理完成其他所有引腳的指定,結(jié)果如圖4.41所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程4.1.6下載驗證下載驗證是將所做設(shè)計生成的文件通過計算機(jī)下載到實驗電路板上,用來驗證本次設(shè)計是否符合要求的一道流程,其步驟如下:1.編譯分配完引腳后必須經(jīng)過再次編譯,這樣才能存儲引腳鎖定的信息,單擊編譯按鈕執(zhí)行再次編譯。如果編譯出現(xiàn)問題,可以對器件重新設(shè)置。2.配置下載電纜單擊“Tools”|“Programmer”命令,彈出未經(jīng)配置的下載窗口,如圖4.42所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程單擊“HardwareSetup”按鈕,彈出“HardwareSetup”對話框,如圖4.43所示。單擊“AddHardware”按鈕,彈出下載電纜選擇對話框,如圖4.44所示。在“HardwareType”一欄中選擇“ByteBlasterMVorByteBlasterⅡ”選項,單擊“OK”按鈕,完成設(shè)置。如果下載電纜一直保持不變,不需要每次都設(shè)置。3.JTAG模式下載JTAG模式是AlteraQuartusⅡ軟件默認(rèn)的下載模式,其相應(yīng)的下載文件為.sof格式,勾選下載文件右側(cè)的小方框,如圖4.45所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程將下載電纜連接好后,單擊“Start”按鈕,計算機(jī)就開始下載編程文件。下載完后結(jié)果如圖4.46所示。4.ActiveSerial模式ActiveSerial模式的下載文件為“.pof”格式,在“Mode”一欄中選擇“ActiveSerial”選項,彈出提示框,單擊“是”按鈕,然后在“AddFile”里添加選擇文件“or_2.pof”,勾選下載文件右側(cè)的小方框,將下載電纜連接好后,單擊“Start”按鈕,開始下載編程文件。下載完后結(jié)果如圖4.47所示上一頁下一頁返回4.1模塊編輯及設(shè)計流程4.1.7QuartusⅡ的幾個常用功能1.使用RTLViewer分析綜合結(jié)果單擊“Tools”|“NetlistViewers”|“RTLViewer”命令,彈出“RTLViewer”對話框,如圖4.48所示,可以看到綜合后的RTL結(jié)構(gòu)圖,發(fā)現(xiàn)該圖與原理圖相同。2.使用TechnologyMapViewer分析綜合結(jié)果單擊“Tools”|“NetlistViewers”|“TechnologyMapViewer”命令,彈出“TechnologyMapViewer”對話框,如圖4.49所示。上一頁下一頁返回4.1模塊編輯及設(shè)計流程3.創(chuàng)建圖元符號單擊“File”|“Create/Update”|“CreateSymbolFilesforCurrentFile”命令,生成“.bsf”格式的圖元符號文件,如圖4.50所示。從圖4.50中可以看出生成的是只有輸入/輸出的元件。在原理圖編輯窗口單擊按鈕,在彈出的“Symbol”對話框的“Project”欄里出現(xiàn)已經(jīng)生成的元件“or_2”,在以后的原理圖設(shè)計中可以直接調(diào)用。上一頁返回4.2文本編輯及設(shè)計流程4.2.1建立文本文件在工具欄中,單擊“File”|“New”命令或使用快捷鍵Ctrl+N,彈出“New”對話框,如圖4.51所示,按圖4.51所示選擇“VHDLFile”選項。單擊“OK”按鈕,彈出文本文件編輯框,如圖4.52所示,在編輯框內(nèi)可以輸入VHDL程序。在編輯框內(nèi)可以輸入VHDL代碼,輸入代碼后的文本文件編輯框,如圖4.53所示。為了提高代碼輸入的效率,AlteraQuartusⅡ軟件提供了一個輸入模板,在模板上給出了程序的框架,在框架內(nèi),需要填入的自己的代碼。單擊“Edit”|“InsertTemplate”…命令,彈出“InsertTemplate”對話框,如圖4.54所示。下一頁返回4.2文本編輯及設(shè)計流程

在“Templatesection”下面的窗口中可以選擇需要插入的文本類型。如單擊“ArchitectureBody”選項,在下面的“Preview”窗口中就出現(xiàn)具體的內(nèi)容,單擊“OK”按鈕,“Preview”窗口中的內(nèi)容就會出現(xiàn)在文本文件編輯框中。這樣就可在編輯框中的模板內(nèi)容里刪除不需要的內(nèi)容,添加自己的程序。以此類推,可以刪除其他模板內(nèi)容,以減輕編程中的負(fù)擔(dān)。在文本編輯完成后保存文件。單擊保存文件或選擇“File”“|SaveAs”命令,彈出“SaveAs”對話框。在文件名對話框內(nèi)輸入設(shè)計文件名“add4.vhd”,然后選擇“OK”即可保存文件,這樣文本輸入文件就建立完成。上一頁下一頁返回4.2文本編輯及設(shè)計流程

4.2.2文本設(shè)計流程——建立新工程文本設(shè)計與模塊設(shè)計的流程大致相同,本節(jié)就以上節(jié)的四位加法器為例,詳細(xì)介紹AlteraQuartusⅡ的文本設(shè)計方法,具體實現(xiàn)步驟如下:單擊“File”|“NewProjectWizard”命令,在彈出的對話框中分別填入新工程的文件夾名、工程名、頂層實體名,如圖4.57所示。注意:工程名要和頂層實體名相同。本例中只有一個設(shè)計文件,那么它就是頂層文件,它的工程名就是文件的實體名。單擊“Next”按鈕,彈出添加文件對話框,添加設(shè)計文件,然后單擊“Next”按鈕,進(jìn)入目標(biāo)器件選擇窗口,設(shè)置完器件后,單擊“Next”按鈕,進(jìn)入EDA工具選擇窗口,這里不選擇。單擊“Finish”按鈕,彈出完成工程配置窗口,如圖4.58所示。上一頁下一頁返回4.2文本編輯及設(shè)計流程

4.2.3文本設(shè)計流程——編譯工程單擊工具欄上的按鈕,對文件進(jìn)行編譯,根據(jù)提示錯誤警告進(jìn)行相應(yīng)的修改后重新編譯,直到?jīng)]有錯誤提示為止,編譯成功后,其結(jié)果如圖4.59所示。4.2.4文本設(shè)計流程——建立矢量波形文件在工具欄中單擊“File”|“New”命令,彈出“New”對話框,如圖4.60所示。在出現(xiàn)的“New”對話框中選擇“WaveformEditorFile”選項,單擊“OK”按鈕后波形文件建立成功,如圖4.61所示。上一頁下一頁返回4.2文本編輯及設(shè)計流程

下面添加引腳或節(jié)點。雙擊“Name”下方空白處,在彈出的對話框中單擊“NodeFinder”按鈕,選擇“Filter”欄的“Pins:all”選項后單擊“List”按鈕,雙擊需要的引腳,選中的信號將出現(xiàn)在波形編輯器中,如圖4.62所示。單擊“OK”按鈕,彈出查找節(jié)點后的“InsertNodeorBus”對話框,如圖4.63所示。單擊“OK”按鈕后,引腳添加成功,如圖4.64所示。下面編輯輸入信號并保存文件。單擊左邊工具欄的有關(guān)按鈕對輸入波形按需要設(shè)定,本例波形按圖4.65設(shè)定。單擊保存文件,文件取名為“add4.vwf”,如圖4.66所示。上一頁下一頁返回4.2文本編輯及設(shè)計流程

4.2.5文本設(shè)計流程——仿真波形(1)在AlteraQuartusⅡ的工具欄中選擇“Processing”|“GenerateFunctional”….選項,生成功能仿真網(wǎng)表,然后選擇“Assignments”|“Setting”選項,彈出如圖4.67所示對話框。單擊“SimulatorSettings”選項,在“simulationmode”中選擇“Functional”選項,單擊鈕進(jìn)行功能仿真,檢查設(shè)計的邏輯錯誤。上一頁下一頁返回4.2文本編輯及設(shè)計流程

(2)選擇AlteraQuartusⅡ工具欄中“Assignments”|“Setting”選項,在彈出的對話框中選擇“SimulatorSettings”頁面中的“simulationmode”選項,選擇“Timing”選項,單擊工具欄的按鈕,開始時序仿真,驗證時序是否符合要求。4.2.6文本設(shè)計流程——引腳分配及下載驗證對本項目分配引腳,結(jié)果如圖4.70所示,并可以下載到實驗板上驗證其功能。上一頁返回4.3混合設(shè)計4.3.1建立計數(shù)器文件需要建立兩個VHDL的文本文件。cnt4.vhd文件描述十進(jìn)制計數(shù)器,seg_7.vhd文件描述七段譯碼顯示電路。cnt4.vhd程序的功能是在時鐘的驅(qū)動下循環(huán)產(chǎn)生0~9的二進(jìn)制數(shù),其代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT4IS下一頁返回4.3混合設(shè)計

PORT(CLK:INSTD_LOGIC;EN:INSTD_LOGIC;RST:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCNT4;ARCHITECTUREARTOFCNT4ISSIGNALCNT:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,EN,RST)上一頁下一頁返回4.3混合設(shè)計BEGINIFRST='1'THENCNT<="0000";ELSIFCLK'EVENTANDCLK='1'THENIFEN='1'THENIFCNT<9THENCNT<=CNT+1;ELSECNT<="0000";ENDIF;ENDIF;ENDIF;上一頁下一頁返回4.3混合設(shè)計

ENDPROCESS;Q<=CNT;ENDART;該程序經(jīng)編譯仿真正確后,建立圖元符號。單擊“File”|“Create”/“Update”|“SymbolFilesforCurrentFile”命令,生成“.bsf”格式的圖元文件,以備后面使用。生成的十進(jìn)制計數(shù)器圖元符號如圖4.71所示。上一頁下一頁返回4.3混合設(shè)計

4.3.2建立七段譯碼顯示電路文件SEG_7程序設(shè)計的電路的功能是將計數(shù)器輸出的二進(jìn)制數(shù)轉(zhuǎn)化為數(shù)碼管的驅(qū)動信號。其代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSEG_7ISPORT(SEG:INSTD_LOGIC_VECTOR(3DOWNTO0);//四位二進(jìn)制碼輸入上一頁下一頁返回4.3混合設(shè)計

Q3:OUTSTD_LOGIC_VECTOR(6DOWNTO0));//輸出LED七段碼ENDSEG_7;ARCHITECTUREARTOFSEG_7ISBEGINPROCESS(SEG)BEGINCASESEGIS上一頁下一頁返回4.3混合設(shè)計

WHEN"0000"=>Q3<="0000001";--0WHEN"0001"=>Q3<="1001111";--1WHEN"0010"=>Q3<="0010010";--2WHEN"0011"=>Q3<="0000110";--3WHEN"0100"=>Q3<="1001100";--4WHEN"0101"=>Q3<="0100100";--5WHEN"0110"=>Q3<="0100000";--6WHEN"0111"=>Q3<="0001111";--7上一頁下一頁返回4.3混合設(shè)計

WHEN"1000"=>Q3<="0000000";--8WHEN"1001"=>Q3<="0000100";--9WHENOTHERS=>Q3<="1111111";ENDCASE;ENDPROCESS;ENDART;如上面一樣,該程序經(jīng)編譯仿真正確后,建立圖元符號,以備后面使用。生成的十進(jìn)制計數(shù)器圖元符號如圖4.72所示。上一頁下一頁返回4.3混合設(shè)計

4.3.3設(shè)計流程混合設(shè)計的流程與前面的設(shè)計流程一樣,所不同的只是頂層文件的設(shè)計。具體步驟如下:1.建立新工程創(chuàng)建一個新工程,其頂層文件是一個“.bdf”格式的文件。這里取工程名為“cnt4_top”。2.建立原理圖文件并添加圖元符號建立名為“cnt4_top”的原理圖文件,雙擊鼠標(biāo)后在彈出對話框中的“Project”欄中選擇生成的圖元符號。上一頁下一頁返回4.3混合設(shè)計

將兩個圖元符號添加到原理圖編輯器中,并放置三個輸入和一個輸出引腳。連接各個模塊并命名,完成各個線路的連接,結(jié)果如圖4.76所示,并且保存該圖。3.編譯工程單擊工具欄的按鈕,將所設(shè)計的工程項目進(jìn)行編譯,根據(jù)提示,如有錯誤,進(jìn)行相應(yīng)的修改并重新編譯,直到?jīng)]有錯誤提示編譯成功為止,如圖4.77所示。上一頁下一頁返回4.3混合設(shè)計

4.仿真首先創(chuàng)建波形矢量文件,然后分別進(jìn)行功能仿真和時序仿真。功能仿真結(jié)果如圖4.78所示。時序仿真結(jié)果如圖4.79所示。5.引腳分配分配引腳結(jié)果,如圖4.80所示,并下載到實驗板上驗證其功能,具體步驟與4.1節(jié)原理圖編譯相同。上一頁返回4.4使用SignalTapⅡ的實時測試隨著邏輯設(shè)計越來越復(fù)雜,僅僅依賴軟件的仿真來測試設(shè)計的硬件功能已經(jīng)遠(yuǎn)遠(yuǎn)不夠,而不斷需要重復(fù)進(jìn)行的硬件系統(tǒng)測試也變得更加困難。為了解決這些問題,Altera提供了一種將高效的硬件測試手段和傳統(tǒng)的系統(tǒng)測試方法相結(jié)合的工具,這就是嵌入式邏輯分析儀(SignalTapⅡ)。它可以隨設(shè)計文件一并下載到目標(biāo)芯片中,用以捕捉目標(biāo)芯片內(nèi)部信號節(jié)點處的信息,而且不影響原硬件系統(tǒng)的正常工作。在實際監(jiān)測中,SignalTapⅡ?qū)y得的樣本信號暫存于目標(biāo)器件的嵌入式RAM中,然后通過器件的JTAG端口將采得的信息傳出,送入計算機(jī)進(jìn)行顯示和分析。下一頁返回4.4使用SignalTapⅡ的實時測試

嵌入式邏輯分析儀SignalTapⅡ可以對設(shè)計中所有層次的模塊的信號節(jié)點進(jìn)行測試,可以使用多時鐘驅(qū)動,而且還能通過設(shè)置以確定前后觸發(fā)捕捉信號信息的比例。本節(jié)以一個掃描電路為例介紹SignalTapⅡ的使用方法,流程如下:4.4.1打開SignalTapⅡ的編輯窗口將電腦和開發(fā)板連接起來,電源開啟,保證能實現(xiàn)下載功能。用QuartusⅡ軟件打開掃描電路的工程文件。掃描電路所用的代碼如下:上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

如下上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

如下上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

endendmodule4.4.2文件存盤在SignalTapⅡ界面中單擊“File”|“Save”命令,彈出如圖4.90所示對話框,單擊“保存”按鈕,將出現(xiàn)一個提示頁面“DoyouwanttoenableSignalTapⅡ…”。單擊“是”按鈕,表示同意再次編譯SignalTapⅡ文件與工程ledwater捆綁在一起綜合/適配,以便一同被下載到FPGA芯片中去完成實時測試任務(wù)。單擊“否”按鈕,則必須自己去設(shè)置。上一頁下一頁返回4.4使用SignalTapⅡ的實時測試4.4.3文件存盤在SignalTapⅡ界面中單擊“File”|“Save”命令,彈出如圖4.90所示對話框,單擊“保存”按鈕,將出現(xiàn)一個提示頁面“DoyouwanttoenableSignalTapⅡ…”,如圖4.91所示。單擊“是”按鈕,表示同意再次編譯SignalTapⅡ文件與工程ledwater捆綁在一起綜合/適配,以便一同被下載到FPGA芯片中去完成實時測試任務(wù)。單擊“否”按鈕,則必須自己去設(shè)置。上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

4.4.4編譯回到QuartusⅡ界面,單擊“Assignment”菜單選中“Settings”選項,單擊“SignalTap148基于FPGA的現(xiàn)代數(shù)字電路設(shè)計ⅡLogicAnalyzer”選項,出現(xiàn)“SignalTapⅡLogicAnalyzer”對話框,這說明測試文件已經(jīng)添加到工程中了。應(yīng)該特別注意的是當(dāng)利用SignalTapⅡ?qū)⑿酒械男盘柸繙y試結(jié)束后,在構(gòu)成產(chǎn)品前,必須將SignalTapⅡ從芯片中除去,方法是在圖4.92所示窗口中關(guān)閉“EnableSignalTapⅡLogicAnalyzer”選項,重新編譯一次。上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

關(guān)閉上面界面,然后單擊“編譯”按鈕,啟動全程編譯。接著打開實驗開發(fā)系統(tǒng)的電源,連接JTAG口,設(shè)定通信模式。單擊右上角的“Setup”按鈕,選擇硬件通信模:ByteBlasterMV或ByteBlasterⅡ。再單擊下方的“Device”欄的“ScanChain”按鈕,對實驗板進(jìn)行掃描。如果在欄中出現(xiàn)板上FPGA的型號名,表示系統(tǒng)JTAG通信情況正常,可以進(jìn)行下載。上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

4.4.4啟動SignalTapⅡ進(jìn)行采樣分析編譯結(jié)束后打開SignalTapⅡ的觀察窗口,選擇菜單欄“Tools”“|SignalTapⅡAnalyzer”命令,打開SignalTapⅡ的觀察窗口。在SignalTap窗口,選擇“Processing”|“RunAnalysis”或者單擊圖標(biāo)。接著,單擊SignalTapⅡ窗口中的“Data”標(biāo)簽頁。這時,我們應(yīng)該看到如圖4.94所示的界面。注意到這時SignalTapⅡInstanceManager面板中狀態(tài)“Status”中顯示“Waitingfortrigger”,這是因為觸發(fā)條件沒有滿足。上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

4.4.5SignalTapⅡ的其他設(shè)置和控制方法以上實例僅設(shè)置了單一嵌入式測試模塊,其采樣時鐘是clk。事實上可以設(shè)置多個嵌入式測試模塊,可以使用此功能為器件中的每一個時鐘域建立單獨且唯一的邏輯分析測試模塊,并在多個測試模塊中應(yīng)用不同的時鐘和不同的設(shè)置。Instance管理器允許在多個測試模塊上建立并執(zhí)行SignalTapⅡ邏輯分析,可以使用它在SignalTapⅡ文件中建立、刪除和重命名測試模塊。Instance管理器顯示當(dāng)前SignalTapⅡ在文件中的所有測試模塊、每個相關(guān)測試模塊的當(dāng)前狀態(tài)以及相關(guān)實例中使用的邏輯元素和存儲器的消耗量。上一頁下一頁返回4.4使用SignalTapⅡ的實時測試

測試模塊管理器協(xié)助檢查每個邏輯分析儀在器件上要求的資源使用量。可以選擇多個邏輯分析儀來同時啟動多個邏輯分析儀,此外,SignalTapⅡ采樣觸發(fā)器采用邏輯級別或邏輯邊緣方面的邏輯事件模式,支持多級觸發(fā)、多個觸發(fā)位置、多個段以及外部觸發(fā)事件。SignalTapⅡ的觸發(fā)信號也可單獨設(shè)置或編輯,其觸發(fā)控制邏輯也可根據(jù)實際需要由用戶自行編輯。上一頁返回下一頁4.4使用SignalTapⅡ的實時測試

4.4.6SignalTapⅡ的其他設(shè)置和控制方法以上實例僅設(shè)置了單一嵌入式測試模塊,其采樣時鐘是clk。事實上可以設(shè)置多個嵌入式測試模塊,可以使用此功能為器件中的每一個時鐘域建立單獨且唯一的邏輯分析測試模塊,并在多個測試模塊中應(yīng)用不同的時鐘和不同的設(shè)置。Instance管理器允許在多個測試模塊上建立并執(zhí)行SignalTapⅡ邏輯分析,可以使用它在SignalTapⅡ文件中建立、刪除和重命名測試模塊。Instance管理器顯示當(dāng)前SignalTapⅡ在文件中的所有測試模塊、每個相關(guān)測試模塊的當(dāng)前狀態(tài)以

溫馨提示

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

最新文檔

評論

0/150

提交評論