SOPC開發(fā)流程及QuartusII的使用課件_第1頁
SOPC開發(fā)流程及QuartusII的使用課件_第2頁
SOPC開發(fā)流程及QuartusII的使用課件_第3頁
SOPC開發(fā)流程及QuartusII的使用課件_第4頁
SOPC開發(fā)流程及QuartusII的使用課件_第5頁
已閱讀5頁,還剩247頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章SOPC開發(fā)流程及QuartusII的使用2.1 SOPC開發(fā)流程和開發(fā)工具2.2QuartusII操作基礎(chǔ)2.3SOPC硬件開發(fā)實例2.4 創(chuàng)建NiosII系統(tǒng)模塊2.5 設(shè)計優(yōu)化2.6 編譯2.7 編程下載第二章SOPC開發(fā)流程及QuartusII的使用2.11SOPC開發(fā)流程和開發(fā)工具SOPC設(shè)計包括硬件和軟件兩部分。硬件設(shè)計:主要基于QuartusII和SOPCBuilder。軟件設(shè)計:基于NiosIIIDE。SOPC開發(fā)流程和開發(fā)工具SOPC設(shè)計包括硬件和軟件兩部分。2SOPC開發(fā)流程分析系統(tǒng)需求:在進(jìn)行SOPC開發(fā)之前,首先必須確定系統(tǒng)的需求,如應(yīng)用系統(tǒng)需求的計算性能、需要的帶寬和吞吐量、需求的接口類型以及是否需求多線程的軟件等。建立QuartusII工程:每個開發(fā)過程開始時都應(yīng)建立一個工程,QuartusII是以工程的方式對設(shè)計過程進(jìn)行管理。在工程中建立頂層模塊文件.bdf相當(dāng)于傳統(tǒng)電路設(shè)計中的電路板(PCB)。定義和生成系統(tǒng):在SOPCBuilder中添加需要的功能模塊(NiosII及其標(biāo)準(zhǔn)外設(shè)模塊),完成后生成一個系統(tǒng)模塊。定制指令&定制外設(shè)邏輯:如果需要,用戶可以定制指令和外設(shè)邏輯。(可參考第8章)自定義的功能模塊:當(dāng)設(shè)計中現(xiàn)有模塊不能滿足設(shè)計要求時,可設(shè)計自己的功能模塊。并在頂層模塊中使用;Altera的LPM模塊:在QuartusII軟件中包含了大量的Altera公司提供的LPM功能模塊,相當(dāng)于傳統(tǒng)設(shè)計中除處理器以外的邏輯芯片(如74系列);

集成SOPC生成的系統(tǒng)到QuartusII工程:在頂層模塊中,分別將SOPCBuilder生成的系統(tǒng)模塊、LPM功能模塊以及用戶自定義功能模塊添加到頂層模塊中;連接各功能模塊:將各個功能模塊用連線連起來組成系統(tǒng)功能原理圖。選擇FPGA型號并進(jìn)行管腳分配:為系統(tǒng)功能原理圖選擇芯片載體并為各個輸入輸出信號分配芯片的管腳;進(jìn)行編譯選項設(shè)置:設(shè)置編譯選項,從而讓編譯器按照用戶設(shè)定來進(jìn)行編譯;編譯硬件系統(tǒng)生成配置文件sof:編譯系統(tǒng)生成硬件系統(tǒng)的配置文件*.sof和*.pof。編譯系統(tǒng)是一個非常復(fù)雜的過程,包括優(yōu)化邏輯的組合、綜合邏輯、適配FPGA、布線以及時序分析等步驟。下載配置文件到FPGA器件:將配置文件.sof下載到FPGA.設(shè)置軟件運行硬件環(huán)境屬性:設(shè)置好軟件運行的硬件環(huán)境屬性后,便可進(jìn)行編譯、鏈接和調(diào)試、運行程序。編譯軟件:對用戶程序進(jìn)行編譯,生成可執(zhí)行文件*.elf。ISS運行/調(diào)試:接下來在IDE的指令集仿真器(ISS)上仿真軟件和運行/調(diào)試軟件。在目標(biāo)板上下載可執(zhí)行軟件到NiosII系統(tǒng):將可執(zhí)行文件.elf下載到RAM。在目標(biāo)板上運行/調(diào)試軟件:在目標(biāo)板上反復(fù)調(diào)試軟件。使用IDE編程工具燒寫配置文件和軟件代碼:最后利用IDE的編程工具將配置文件燒寫到FPGA的配置芯片或Flash,將可執(zhí)行文件*.elf編程到Flash中。

SOPC開發(fā)流程分析系統(tǒng)需求:在進(jìn)行SOPC開發(fā)之前,首先3QuartusII操作基礎(chǔ)——QuartusⅡ軟件的安裝QuartusII操作基礎(chǔ)——QuartusⅡ軟件的安裝4——QuartusⅡ軟件的用戶界面啟動QuartusⅡ軟件后默認(rèn)的界面主要由標(biāo)題欄、菜單欄、工具欄、資源管理窗口、編譯狀態(tài)顯示窗口、信息顯示窗口和工程工作區(qū)等部分組成。QuartusII操作基礎(chǔ)——QuartusⅡ軟件的用戶界面啟動Quartus5——QuartusⅡ軟件的用戶界面QuartusII操作基礎(chǔ)標(biāo)題欄中顯示當(dāng)前工程的路徑和工程名。——QuartusⅡ軟件的用戶界面QuartusII操作基6——QuartusⅡ軟件的用戶界面QuartusII操作基礎(chǔ)菜單欄主要由文件(File)、編輯(Edit)、視圖(View)、工程(Project)、資源分配(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和幫助(Help)等下拉菜單組成?!猀uartusⅡ軟件的用戶界面QuartusII操作基7——QuartusⅡ軟件的用戶界面QuartusII操作基礎(chǔ)工具欄中包含了常用命令的快捷圖標(biāo)。——QuartusⅡ軟件的用戶界面QuartusII操作基8——QuartusⅡ軟件的用戶界面QuartusII操作基礎(chǔ)資源管理窗口用于顯示當(dāng)前工程中所有相關(guān)的資源文件?!猀uartusⅡ軟件的用戶界面QuartusII操作基9——QuartusⅡ軟件的用戶界面QuartusII操作基礎(chǔ)工程工作區(qū)當(dāng)QuartusⅡ?qū)崿F(xiàn)不同的功能時,此區(qū)域?qū)⒋蜷_對應(yīng)的操作窗口,顯示不同的內(nèi)容,進(jìn)行不同的操作,如器件設(shè)置、定時約束設(shè)置、編譯報告等均顯示在此窗口中?!猀uartusⅡ軟件的用戶界面QuartusII操作基10——QuartusⅡ軟件的用戶界面QuartusII操作基礎(chǔ)編譯狀態(tài)顯示窗口此窗口主要顯示模塊綜合、布局布線過程及時間?!猀uartusⅡ軟件的用戶界面QuartusII操作基11——QuartusⅡ軟件的用戶界面QuartusII操作基礎(chǔ)信息顯示窗口該窗口主要顯示模塊綜合、布局布線過程中的信息,如編譯中出現(xiàn)的警告、錯誤等,同時給出警告和錯誤的具體原因。——QuartusⅡ軟件的用戶界面QuartusII操作基12——QuartusⅡ的開發(fā)流程按照一般編程邏輯設(shè)計的步驟,利用QuartusⅡ軟件進(jìn)行開發(fā)可以分為以下四個步驟:(1)輸入設(shè)計文件;(2)編譯設(shè)計文件;(3)仿真設(shè)計文件;(4)編程下載設(shè)計文件。

QuartusII操作基礎(chǔ)——QuartusⅡ的開發(fā)流程按照一般編程邏輯設(shè)計的步驟,利13——輸入設(shè)計文件QuartusⅡ軟件的輸入法有:

1)原理圖輸入方式、

2)文本輸入方式(如VHDL、VerilogHDL)

3)AHDL輸入方式、

4)模塊輸入方式以及

5)第三方EDA工具產(chǎn)生的文件以及混合使用以上幾種設(shè)計輸入方法進(jìn)行設(shè)計原理圖輸入法原理圖輸入法也稱為圖形編輯輸入法,用QuartusⅡ原理圖輸入設(shè)計法進(jìn)行數(shù)字系統(tǒng)設(shè)計時,不需要任何硬件描述語言的知識,在具有數(shù)字邏輯電路基本知識的基礎(chǔ)上,利用QuartusⅡ軟件提供的EDA平臺設(shè)計數(shù)字電路或系統(tǒng)。QuartusII操作基礎(chǔ)——輸入設(shè)計文件QuartusⅡ軟件的輸入法有:Quartu141、原理圖輸入法-建立設(shè)計工程建立設(shè)計工程的方法如圖示:新建工程選項新建工程第一頁QuartusII操作基礎(chǔ)1、原理圖輸入法-建立設(shè)計工程新建工程選項新建工程第一頁151、原理圖輸入法-建立設(shè)計工程建立設(shè)計工程的方法圖示:新建工程第二頁新建工程第三頁QuartusII操作基礎(chǔ)1、原理圖輸入法-建立設(shè)計工程新建工程第二頁新建工程第三頁161、原理圖輸入法-建立設(shè)計工程建立設(shè)計工程的方法圖示:新建工程第四頁

新建工程第五頁QuartusII操作基礎(chǔ)1、原理圖輸入法-建立設(shè)計工程新建工程第四頁新建工程第五172、原理圖輸入法-輸入設(shè)計文件

1)新建工程之后,便可以進(jìn)行電路系統(tǒng)設(shè)計文件的輸入。選擇file菜單中的New命令,彈出如圖所示的新建設(shè)計文件類型選擇窗口。QuartusII操作基礎(chǔ)2)選擇New對話框中的DeviceDesignfiles頁下的BlockDiagram/SchematicFile,點擊OK,打開下圖所示的圖形編輯器對話框,進(jìn)行設(shè)計文件輸入。2、原理圖輸入法-輸入設(shè)計文件QuartusII操作基礎(chǔ)18圖形編輯器對話框2、原理圖輸入法-輸入設(shè)計文件QuartusII操作基礎(chǔ)圖形編輯器對話框2、原理圖輸入法-輸入設(shè)計文件Quartu192、原理圖輸入法-輸入設(shè)計文件3)在圖形編輯窗口中的任何一個位置雙擊鼠標(biāo),或點擊

圖中的“符號工具”

按鈕,或選擇菜單Edit下的InsertSymbol命令,彈出

如右圖所示的元件選擇窗口Symbol

對話框。元件選擇窗口QuartusII操作基礎(chǔ)2、原理圖輸入法-輸入設(shè)計文件元件選擇窗口Quartus202、原理圖輸入法-輸入設(shè)計文件元件選擇窗口QuartusII操作基礎(chǔ)4)用鼠標(biāo)點擊單元庫前面的加號(+),庫中的元件符號以列表的方式顯示出來,選擇所需要的元件符號,該符號顯示在Symbol對話框的右邊,點擊OK按鈕,添加相應(yīng)元件符號在圖像編輯工作區(qū)中,連接原理圖。2、原理圖輸入法-輸入設(shè)計文件元件選擇窗口Quartus212、原理圖輸入法-輸入設(shè)計文件十六進(jìn)制同步計數(shù)器的原理圖如下:

QuartusII操作基礎(chǔ)2、原理圖輸入法-輸入設(shè)計文件QuartusII操作基礎(chǔ)223、原理圖輸入法-優(yōu)缺點:優(yōu)點:1)可以與傳統(tǒng)的數(shù)字電路設(shè)計法接軌,即使用傳統(tǒng)設(shè)計方法得到電路原理圖,然后在QuartusⅡ平臺完成設(shè)計電路的輸入、仿真驗證和綜合,最后下載到目標(biāo)芯片中。

2)它將傳統(tǒng)的電路設(shè)計過程的布局布線、繪制印刷電路板、電路焊接、電路加電測試等過程取消,提高了設(shè)計效率,降低了設(shè)計成本,減輕了設(shè)計者的勞動強度。缺點:

1)原理圖設(shè)計方法沒有實現(xiàn)標(biāo)準(zhǔn)化,不同的EDA軟件中的圖形處理工具對圖形的設(shè)計規(guī)則、存檔格式和圖形編譯方式都不同,因此兼容性差,難以交換和管理。

2)由于兼容性不好,性能優(yōu)秀的電路模塊的移植和再利用非常困難,難以實現(xiàn)用戶所希望的面積、速度以及不同風(fēng)格的綜合優(yōu)化

3)原理圖輸入的設(shè)計方法不能實現(xiàn)真實意義上的自頂向下的設(shè)計方案,無法建立行為模型,從而偏離了電子設(shè)計自動化最本質(zhì)的涵義。QuartusII操作基礎(chǔ)3、原理圖輸入法-優(yōu)缺點:QuartusII操作基礎(chǔ)23——編譯設(shè)計文件QuartusⅡ編譯器的主要任務(wù)是對設(shè)計項目進(jìn)行檢查并完成邏輯綜合,同時將項目最終設(shè)計結(jié)果生成器件的下載文件。編譯開始前,可以先對工程的參數(shù)進(jìn)行設(shè)置。QuartusⅡ軟件中的編譯類型有全編譯和分步編譯兩種。選擇QuartusⅡ主窗口Process菜單下StartCompilation命令,或者在主窗口的工具欄上直接點擊圖標(biāo)

可以進(jìn)行全編譯

全編譯的過程包括分析與綜合(Analysis&Synthesis)、適配(Fitter)、編程(Assembler)、時序分析(ClassicalTimingAnalysis)這4個環(huán)節(jié),而這4個環(huán)節(jié)各自對應(yīng)相應(yīng)的菜單命令,可以單獨分步執(zhí)行,也就是分步編譯。在設(shè)計的調(diào)試和優(yōu)化過程中,可以使用RTL閱讀器觀察設(shè)計電路的綜合結(jié)果。

QuartusII操作基礎(chǔ)——編譯設(shè)計文件QuartusⅡ編譯器的主要任務(wù)是對設(shè)計項目24分步編譯就是使用對應(yīng)命令分步執(zhí)行對應(yīng)的編譯環(huán)節(jié),每完成一個編譯環(huán)節(jié),生成一個對應(yīng)的編譯報告。分步編譯跟全編譯一樣分為四步:

1、分析與綜合(Analysis&Synthesis):設(shè)計文件進(jìn)行分析和檢查輸入文件是否有錯誤,對應(yīng)的菜單命令是QuartusⅡ主窗口Process菜單下Start\StartAnalysis&Synthesis,對應(yīng)的快捷圖標(biāo)是在主窗口的工具欄上的;

2、適配(Fitter):在適配過程中,完成設(shè)計邏輯器件中的布局布線、選擇適當(dāng)?shù)膬?nèi)部互連路徑、引腳分配、邏輯元件分配等,對應(yīng)的菜單命令是QuartusⅡ主窗口Process菜單下Start\StartFitter;(注:兩種編譯方式引腳分配有所區(qū)別)

QuartusII操作基礎(chǔ)分步編譯就是使用對應(yīng)命令分步執(zhí)行對應(yīng)的25

3、編程(Assembler):產(chǎn)生多種形式的器件編程映像文件,通過軟件下載到目標(biāo)器件當(dāng)中去,應(yīng)用的菜單命令是QuartusⅡ主窗口Process菜單下Start\StartAssembler;

4、時序分析(ClassicalTimingAnalyzer)

:計算給定設(shè)計與器件上的延時,完成設(shè)計分析的時序分析和所有邏輯的性能分析,菜單命令是QuartusⅡ主窗口Process菜單下Start\StartClassicalTimingAnalyzer,對應(yīng)的快捷圖標(biāo)是在主窗口的工具欄上的。

編譯完成以后,編譯報告窗口CompilationReport會報告工程文件編譯的相關(guān)信息,如編譯的頂層文件名、目標(biāo)芯片的信號、引腳的數(shù)目等等。全編譯操作簡單,適合簡單的設(shè)計。對于復(fù)雜的設(shè)計,選擇分步編譯可以及時發(fā)現(xiàn)問題,提高設(shè)計糾錯的效率,從而提高設(shè)計效率。QuartusII操作基礎(chǔ)QuartusII操作基礎(chǔ)26

5、RTL閱讀器:在設(shè)計的調(diào)試和優(yōu)化過程中,可以使用RTL閱讀器觀察設(shè)計電路的綜合結(jié)果,同時也可以觀察源設(shè)計如何被翻譯成邏輯門、原語等。

RTL閱讀器是觀察和確定源設(shè)計是否實現(xiàn)了設(shè)計要求的理想工具。執(zhí)行仿真驗證設(shè)計功能之前使用RTL閱讀器查找設(shè)計中的問題,可以在設(shè)計早期發(fā)現(xiàn)問題,為后期的驗證工作節(jié)省時間。當(dāng)設(shè)計通過編譯后,選擇QuartusⅡ主窗口Tools菜單下NetlistViewers\RTLViewer命令,彈出RTL閱讀器窗口QuartusII操作基礎(chǔ)5、RTL閱讀器:在設(shè)計的調(diào)試和優(yōu)化過程275、RTL閱讀器

RTL閱讀器窗口圖QuartusII操作基礎(chǔ)RTL閱讀器窗口的右邊,是過程設(shè)計結(jié)果的主窗口,包括設(shè)計電路的模塊和連線5、RTL閱讀器QuartusII操作基礎(chǔ)RT285、RTL閱讀器

RTL閱讀器窗口圖QuartusII操作基礎(chǔ)RTL閱讀器的左邊是層次列表,在每個層次上以樹狀形式列出了設(shè)計電路的所有單元。層次列表的內(nèi)容包括以下幾個方面:(1)實例Instances,能夠被展開成低層次模塊或?qū)嵗唬?)原語Primitives,不能被展開為任何低層次模塊的低層次節(jié)點;(3)引腳Pin,當(dāng)前層次的I/O端口,如果端口是總線,也可以將其展開,觀察到端口中每一個端口的信號;(4)網(wǎng)線Net,是連接節(jié)點的連線,當(dāng)網(wǎng)線是總線時也可以展開,觀察每條網(wǎng)線。5、RTL閱讀器QuartusII操作基礎(chǔ)RT295、RTL閱讀器雙擊結(jié)構(gòu)圖中的實例,可以展開此模塊的下一級結(jié)構(gòu)圖

QuartusII操作基礎(chǔ)5、RTL閱讀器QuartusII操作基礎(chǔ)30——仿真設(shè)計文件仿真的目的就是在軟件環(huán)境下,驗證電路的行為和設(shè)想中的是否一致。

FPGA/CPLD中的仿真分為功能仿真和時序仿真。功能仿真著重考察電路在理想環(huán)境下的行為和設(shè)計構(gòu)想的一致性,時序仿真則在電路已經(jīng)映射到特定的工藝環(huán)境后,考察器件在延時情況下對布局布線網(wǎng)表文件進(jìn)行的一種仿真。仿真一般需要建立波形文件、輸入信號節(jié)點、編輯輸入信號、波形文件的保存和運行仿真器等過程。QuartusII操作基礎(chǔ)——仿真設(shè)計文件仿真的目的就是在軟件環(huán)境下,驗證電路的行為311、建立波形文件波形文件用來為設(shè)計產(chǎn)生輸入激勵信號。利用

QuartusII波形編輯器可以創(chuàng)建矢量波形文件(.vwf)創(chuàng)建一個新的矢量波形文件步驟如下:(1)選擇QuartusⅡ主界面

File菜單下的New命令,彈出新建對話框;

QuartusII操作基礎(chǔ)1、建立波形文件QuartusII操作基礎(chǔ)32(2)在新建話框中選擇

OtherFiles標(biāo)簽頁,從中選擇

VectorWaveformFile,點擊OK按鈕,則打開一個空的波形編輯器窗口。(2)在新建話框中選擇OtherFiles標(biāo)簽頁,從中331、建立波形文件

波形編輯器窗口:主要分為信號欄、工具欄和波形欄。QuartusII操作基礎(chǔ)1、建立波形文件QuartusII操作基礎(chǔ)342、輸入信號節(jié)點

(1)在波形編輯方式下,執(zhí)行Edit菜單中的InsertNodeorBus命令,或者在波形編輯器左邊Name列的空白處點擊鼠標(biāo)右鍵,彈出的InsertNodeorBus對話框

QuartusII操作基礎(chǔ)2、輸入信號節(jié)點QuartusII操作基礎(chǔ)352、輸入信號節(jié)點

(2)點擊InsertNodeorBus對話框中的NodeFinder…按鈕,彈出NodeFinder窗口,在此窗口中添加信號節(jié)點。QuartusII操作基礎(chǔ)2、輸入信號節(jié)點QuartusII操作基礎(chǔ)363、編輯輸入信號編輯輸入信號是指在波形編輯器中指定輸入節(jié)點的邏輯電平變化,編輯輸入節(jié)點的波形。在仿真編輯窗口的工具欄中列出了各種功能選擇按鈕,主要用于繪制、編輯波形,給輸入信號賦值。具體功能如下::在波形文件中添加注釋;:修改信號的波形值,把選定區(qū)域的波形更改成原值的相反值;:全屏顯示波形文件;:放大、縮小波形;:在波形文件信號欄中查找信號名,可以快捷找到待觀察信號;:將某個波形替換為另一個波形;:給選定信號賦原值的反值;:輸入任意固定的值;:輸入隨機值:給選定的信號賦值,X表示不定態(tài),0表示賦0,1表示賦1,Z表示高阻態(tài),W表示弱信號,L表示低電平,H表示高電平,DC表示不賦值。QuartusII操作基礎(chǔ)3、編輯輸入信號QuartusII操作基礎(chǔ)373、編輯輸入信號:設(shè)置時鐘信號的波形參數(shù),先選中需要賦值的信號,然后鼠標(biāo)右鍵點擊此圖標(biāo)彈出Clock對話框,在此對話框中可以設(shè)置輸入時鐘信號的起始時間(StartTime)、結(jié)束時間(EndTime)、時鐘脈沖周期(Period),相位偏置(Offset)以及占空比。:給信號賦計數(shù)值,先選中需要賦值的信號,然后鼠標(biāo)右鍵點擊此圖標(biāo)彈出如下圖所示的CountValue對話框,然后賦值。CountValue對話框的Counting頁CountValue對話框的Timing頁QuartusII操作基礎(chǔ)3、編輯輸入信號CountValue對話框的Count384、仿真波形文件

QuartusⅡ軟件中默認(rèn)的是時序仿真,如果進(jìn)行功能仿真則需要先對仿真進(jìn)行設(shè)置,步驟如下:(1)選擇QuartusⅡ主窗口Assignments菜單下的Settings…命令,可以進(jìn)入?yún)?shù)設(shè)置頁面,如下圖所示,然后單擊SimulationSettings,在右邊的對話框中的Simulationmode中選擇“Function”;

QuartusII操作基礎(chǔ)4、仿真波形文件QuartusII操作基礎(chǔ)394、仿真波形文件(2)選擇QuartusⅡ主窗口Processing菜單下的GenerateFunctionalSimulationNetlist命令,生成功能仿真網(wǎng)表文件;(3)選擇QuartusⅡ主窗口Processing菜單下的StartSimulation進(jìn)行功能仿真。功能仿真滿足要求后,還要對設(shè)計進(jìn)行時序仿真,時序仿真可以在編譯后直接進(jìn)行,但是要將上圖中的Simulationmode中設(shè)置為“Timing”,設(shè)置好以后直接選擇StartSimulation命令,執(zhí)行時序仿真。QuartusII操作基礎(chǔ)4、仿真波形文件QuartusII操作基礎(chǔ)40——編程下載設(shè)計文件對設(shè)計進(jìn)行驗證后,即可對目標(biāo)器件進(jìn)行編程和配置,下載設(shè)計文件到硬件中進(jìn)行硬件驗證。

QuartusⅡ編程器Programmer最常用的編程模式是JTAG模式和主動串行編程模式AS。

JTAG模式主要用在調(diào)試階段,主動串行編程模式用于板級調(diào)試無誤后將用戶程序固化在串行配置芯片EPCS中。

QuartusII操作基礎(chǔ)——編程下載設(shè)計文件對設(shè)計進(jìn)行驗證后,即可對目標(biāo)器件進(jìn)行編程41編程下載對話框1、JTAG編程下載模式QuartusII操作基礎(chǔ)1)、選擇QuartusⅡ主窗口的Tools菜單下的Programmer命令或點擊圖標(biāo),進(jìn)入器件編程和配置對話框。如果此對話框中的HardwareSetup后為“NoHardware”,則需要選擇編程的硬件。點擊HardwareSetup,進(jìn)入HardwareSetup對話框,在此添加硬件設(shè)備。此方式的操作步驟主要分為3步:編程下載對話框1、JTAG編程下載模式QuartusII42編程下載對話框1、JTAG編程下載模式QuartusII操作基礎(chǔ)2)、配置編程硬件后,選擇下載模式,在Mode中指定的編程模式為JTAG模式;編程下載對話框1、JTAG編程下載模式QuartusII43編程下載對話框1、JTAG編程下載模式QuartusII操作基礎(chǔ)3)、確定編程模式后,單擊添加相應(yīng)的counter.sof編程文件,選中counter.sof文件后的Program/Configure選項,然后點擊圖標(biāo)下載設(shè)計文件到器件中,Process進(jìn)度條中顯示編程進(jìn)度,編程下載完成后就可以進(jìn)行目標(biāo)芯片的硬件驗證了。編程下載對話框1、JTAG編程下載模式QuartusII44AS主動串行編程式的操作步驟如下:(1)選擇QuartusⅡ主窗口Assignments菜單Device命令,進(jìn)入Settings對話框的Device頁面進(jìn)行設(shè)置,如右圖。2、AS主動串行編程模式QuartusII操作基礎(chǔ)AS主動串行編程式的2、AS主動串行編QuartusII操452、AS主動串行編程模式(2)選擇QuartusⅡ主窗口的Tools菜單下的Programmer命令或點擊圖標(biāo),進(jìn)入器件編程和配置對話框,添加硬件,選擇編程模式為ActiveSerialProgram;(3)單擊添加相應(yīng)的counter.pof編程文件,選中文件后的Program/Configure、Verify和BlankCheck項,單擊圖標(biāo)下載設(shè)計文件到器件中,Process進(jìn)度條中顯示編程進(jìn)度。下載完成后程序固化在EPCS中,開發(fā)板上電后EPCS將自動完成對目標(biāo)芯片的配置,無須再從計算機上下載程序。

QuartusII操作基礎(chǔ)2、AS主動串行編程模式QuartusII操作基礎(chǔ)46——QuartusⅡ中宏功能模塊的調(diào)用方法使用QuartusⅡ軟件的MegaWizardPlug-InManager中的宏功能模塊可以幫助用戶調(diào)用QuartusⅡ內(nèi)部已有的IP(知識產(chǎn)權(quán))核來完成一些復(fù)雜系統(tǒng)的設(shè)計,并可以方便的對調(diào)用的IP核的參數(shù)進(jìn)行修改。下面以一個調(diào)用lpm_counter宏功能模塊來實現(xiàn)一個十六進(jìn)制的加法同步計數(shù)器為例,簡單介紹宏功能模塊的使用。設(shè)計開始前新建立一個名為counter16的工程,在工程中新建一個新的bdf文件,選擇QuartusⅡ主窗口的Tools菜單下的MegaWizardPlug-InManager命令,進(jìn)入MegaWizardPlug-InManager對話框第一頁,然后依此進(jìn)行參數(shù)的設(shè)定,具體的流程如圖所示:QuartusII操作基礎(chǔ)——QuartusⅡ中宏功能模塊的調(diào)用方法QuartusI47MegaWizardPlug-InManager第一頁QuartusII操作基礎(chǔ)MegaWizardPlug-InManager第一頁48MegaWizardPlug-InManager第二頁MegaWizardPlug-InManager第三頁QuartusII操作基礎(chǔ)MegaWizardPlug-InManager第二頁49MegaWizardPlug-InManager第四頁MegaWizardPlug-InManager第五頁QuartusII操作基礎(chǔ)MegaWizardPlug-InManager第四頁50MegaWizardPlug-InManager第六頁MegaWizardPlug-InManager第七頁QuartusII操作基礎(chǔ)MegaWizardPlug-InManager第六頁51SOPC硬件開發(fā)實例例子:設(shè)計一個電子鐘第一步是要進(jìn)行需求分析,根據(jù)這個要求來建立硬件系統(tǒng)。電子鐘的設(shè)計要求:在液晶屏上顯示日期、時間;可以設(shè)置日期、時間;SOPC硬件開發(fā)實例例子:設(shè)計一個電子鐘52SOPC硬件開發(fā)實例根據(jù)系統(tǒng)要求,電子鐘的設(shè)計要用到的外圍器件有:LCD:電子鐘顯示屏幕;按鍵:電子鐘設(shè)置功能鍵;Flash存儲器:存儲軟、硬件程序;SRAM存儲器:程序運行時將其導(dǎo)入SRAM。根據(jù)所要用到的外設(shè)、要實現(xiàn)的功能以及開發(fā)板的配置,在SOPCBuilder中建立系統(tǒng)要添加的模塊包括:NiosIICPU、定時器、按鍵PIO、LCD控制器、AVALON三態(tài)橋、外部RAM接口、外部Flash接口。使用的開發(fā)環(huán)境如下:WinXP操作系統(tǒng)NiosII6.0嵌入式處理器QuartusII6.0基于CycloneII的SOPC開發(fā)板SOPC硬件開發(fā)實例根據(jù)系統(tǒng)要求,電子鐘的設(shè)53SOPC硬件開發(fā)實例創(chuàng)建工程進(jìn)行完需求分析之后,進(jìn)行硬件系統(tǒng)的創(chuàng)建。首先必須建立一個QuartusII的工程,步驟如下:1.開始->程序->AlteraQuartusII6.1QuartusII6.1(32bit),啟動QuartusII軟件;SOPC硬件開發(fā)實例創(chuàng)建工程54SOPC硬件開發(fā)實例2.選擇File菜單NewProjectWizard,出現(xiàn)Introduction頁面,該頁面介紹所要完成的具體任務(wù),點擊next。SOPC硬件開發(fā)實例2.選擇File菜單NewProje55SOPC硬件開發(fā)實例3.進(jìn)行項目名稱的設(shè)定、工作目錄的選擇。指定工程存放的目錄,工程名和頂層實體名,工程名和頂層實體名要求相同,工程目錄可以隨意設(shè)置,但必須是英文的目錄,工程名和頂層實體名也要求是英文名字,我們的工程名和頂層實體名為clock,選擇Next。SOPC硬件開發(fā)實例3.進(jìn)行項目名稱的設(shè)定、工作目錄的選擇56SOPC硬件開發(fā)實例4.可以為工程添加先期已經(jīng)輸入的設(shè)計文件,指定用戶自定義的元件庫的路徑,這里我們沒有事先輸入好的文件,也沒有自定義的元件庫,點擊Next進(jìn)入下一步。SOPC硬件開發(fā)實例4.可以為工程添加先期已經(jīng)輸入的設(shè)計文件57SOPC硬件開發(fā)實例5.用戶指定目標(biāo)器件,根據(jù)開發(fā)板的所使用的器件來選擇,實際開發(fā)中,通過查看核心板的參考手冊來獲取所使用的器件具體型號,可以使用窗口右邊的Filters來加快器件的選擇,選擇完畢點擊Next。SOPC硬件開發(fā)實例5.用戶指定目標(biāo)器件,根據(jù)開發(fā)板的所使58SOPC硬件開發(fā)實例6.指定在QuartusII之外的用于,設(shè)計輸入、綜合、仿真、時序分析的第三方EDA工具,QuartusII對第三方工具的支持比較完善。這里我們不做選擇,直接點擊Next。SOPC硬件開發(fā)實例6.指定在QuartusII之外的59SOPC硬件開發(fā)實例所見新工程的信息,確認(rèn)所創(chuàng)建工程的主要信息,點擊Finish完成工程的建立,在開發(fā)的過程中,還可以通過菜單assignmentSettings來對這些配置進(jìn)行修改。點擊Finish按鈕,QuartusII自動會打開這個工程,可以看到頂層實體名出現(xiàn)在工程導(dǎo)航窗口中。SOPC硬件開發(fā)實例所見新工程的信息,確認(rèn)所創(chuàng)建工程的主要信60SOPC硬件開發(fā)實例SOPC硬件開發(fā)實例61創(chuàng)建NiosII系統(tǒng)模塊創(chuàng)建完成工程之后,需要創(chuàng)建頂層實體。創(chuàng)建完頂層設(shè)計文件之后,使用SOPCBuilder創(chuàng)建NIOSII嵌入式處理器,添加、配置系統(tǒng)的外設(shè)IP,組成NiosII系統(tǒng)模塊。NiosII系統(tǒng)模塊設(shè)計完成之后要加入到該頂層實體中,然后進(jìn)行其他片上邏輯的開發(fā)。一、創(chuàng)建頂層實體(1)新建的工程窗口中,選擇FileNew;(2)在DeviceDesignFile頁中,選擇BlockDiagram/SchematicFile,即原理圖文件,也可以選擇硬件描述語言的文件形式。單擊OK。(3)出現(xiàn)一個模塊編輯窗口。創(chuàng)建NiosII系統(tǒng)模塊創(chuàng)建完成工程之后62創(chuàng)建NiosII系統(tǒng)模塊創(chuàng)建NiosII系統(tǒng)模塊63創(chuàng)建NiosII系統(tǒng)模塊(4)選擇FileSaveAs,出現(xiàn)SaveAs對話框,顯示的目錄為之前設(shè)置的工程目錄,文件名為之前設(shè)置的頂層實體名(由于這是工程的第一個文件,系統(tǒng)會默認(rèn)為頂層設(shè)計實體的名字)。確定AddtoCurrentProject選項被選中,點擊Save文件被保存并被加入到工程中。創(chuàng)建NiosII系統(tǒng)模塊(4)選擇FileSave64創(chuàng)建NiosII系統(tǒng)模塊二、創(chuàng)建NiosII系統(tǒng)模塊創(chuàng)建NIOSII系統(tǒng)模塊需要使用SOPCBuilder,它是QuartusII中的一個工具,使用SOPCBuilder可以創(chuàng)建一個NiosII系統(tǒng)模塊,或者創(chuàng)建多主設(shè)備SOPC模塊。一個完整NiosII的系統(tǒng)模塊包括NiosII處理器和相關(guān)的系統(tǒng)外設(shè)。所以創(chuàng)建系統(tǒng)模塊的流程是先創(chuàng)建一個系統(tǒng),然后添加NiosIICPU和外設(shè)IP,然后進(jìn)行相應(yīng)的設(shè)置,最后生成實例,然后將其加入到工程的頂層實體中去。創(chuàng)建NiosII系統(tǒng)模塊二、創(chuàng)建NiosII系統(tǒng)模塊65創(chuàng)建NiosII系統(tǒng)模塊(一)、創(chuàng)建系統(tǒng)啟動SOPCBuilder,選擇ToolsSOPCBuilder,出現(xiàn)下圖所示的CreateNewSystem對話框。鍵入系統(tǒng)的名字,選擇硬件描述語言Verilog或者是VHDL。單擊OK按鈕后,出現(xiàn)SOPCBuider系統(tǒng)模塊設(shè)計窗口。創(chuàng)建NiosII系統(tǒng)模塊(一)、創(chuàng)建系統(tǒng)單擊OK按鈕后66創(chuàng)建NiosII系統(tǒng)模塊用戶需要設(shè)置系統(tǒng)的時鐘頻率,該頻率用于計算硬件和軟件開發(fā)中的定時,比如時鐘分頻或波特率。這里我們設(shè)成85MHz,還可以選擇是否選用流水線。(二)、設(shè)置系統(tǒng)主頻和指定目標(biāo)FPGA

在Target欄中的Board部分指定我們這本書使用的核心開發(fā)板——CycloneII(EP2C35)。也可以在Board部分選擇Unspecified,然后在DeviceFamily選擇CycloneII。創(chuàng)建NiosII系統(tǒng)模塊用戶需要設(shè)置系統(tǒng)的時鐘頻率,該頻67創(chuàng)建NiosII系統(tǒng)模塊(三)、加入NiosIICPU和IP模塊

首先加入NiosII軟核,NiosII是軟核CPU,共有三種類型的CPU可供選擇:NiosII/e(經(jīng)濟型)、NiosII/s(標(biāo)準(zhǔn)型)和NiosII/f(快速型)。用戶可以根據(jù)實際的情況進(jìn)行選擇。NiosII是一個用戶可以自行進(jìn)行定制的CPU,用戶可以增加新的外設(shè)、新的指令等。添加NiosIICPU的步驟如下:1.在上圖“SOPCBuider系統(tǒng)模塊設(shè)計窗口”AvalonComponents下面選擇NiosIIProcessor;2.點擊Add,出現(xiàn)NiosIICPU的配置向?qū)?,共有三種類型的CPU可供選擇;創(chuàng)建NiosII系統(tǒng)模塊(三)、加入NiosIICP68創(chuàng)建NiosII系統(tǒng)模塊根據(jù)需要選擇相應(yīng)的一種NiosII核,我們選擇標(biāo)準(zhǔn)型的NiosII核,HardwareMultiply選擇none,不選擇HardwareDivide點擊Next,進(jìn)入Caches&TightlyCoupledMemories設(shè)置窗口;創(chuàng)建NiosII系統(tǒng)模塊根據(jù)需要選擇相應(yīng)69創(chuàng)建NiosII系統(tǒng)模塊設(shè)置NiosII的Cache和與CPU直接相連的存儲器端口(不通過Avalon總線),選擇InstructionCache為4Kbytes,不選中Includetightlycoupledinstructionmasterport(s),點擊Next進(jìn)入AdvancedFeatures設(shè)置頁面。創(chuàng)建NiosII系統(tǒng)模塊設(shè)置NiosI70創(chuàng)建NiosII系統(tǒng)模塊

AdvancedFeatures的設(shè)置頁面是QuartusII6.1版本才有的設(shè)置,這里不選擇Includecpu_resetrequestandcpu_resettakensignals點擊Next進(jìn)入JTAGDebugModule設(shè)置。創(chuàng)建NiosII系統(tǒng)模塊Advance71創(chuàng)建NiosII系統(tǒng)模塊共有4個調(diào)試級別可供選擇,這里選擇Level1即可,該級別支持軟件的斷點調(diào)試。JTAG調(diào)試模塊要占用較多的邏輯資源,如果整個系統(tǒng)調(diào)試完畢了可以選用NoDebugger以減少系統(tǒng)占用資源點擊Next進(jìn)入自定義指令的設(shè)置。因為本例不用到任何的自定義指令,這里不作任何的設(shè)置,點擊Finish完成CPU模塊的添加。創(chuàng)建NiosII系統(tǒng)模塊共有4個調(diào)試級別72創(chuàng)建NiosII系統(tǒng)模塊創(chuàng)建NiosII系統(tǒng)模塊73創(chuàng)建NiosII系統(tǒng)模塊除了NiosIICPU,電子鐘設(shè)計需要添加的IP模塊包括:TimerButtonPIOLCD控制器ExternalRAMBusExternalFlashBusExternalRAMinterfaceExternalFlashInterface創(chuàng)建NiosII系統(tǒng)模塊除了NiosIICPU,電子74創(chuàng)建NiosII系統(tǒng)模塊

1.添加定時器定時器和NiosIICPU一樣,用戶可以對其進(jìn)行定制。添加定時器的步驟如下:(1)在Avaloncomponents下的other庫中選擇IntervalTimer并單擊Add,Avalon_Timer-timer_0的向?qū)Т翱诔霈F(xiàn);(2)配置定時器,點擊Finish,完成定時器的添加。(3)可以對Timer進(jìn)行重命名,我們這里取缺省的名字。創(chuàng)建NiosII系統(tǒng)模塊1.添加定時75創(chuàng)建NiosII系統(tǒng)模塊

2.添加ButtonPIO(1)在Avaloncomponents下的other下選擇PIO,單擊Add,出現(xiàn)AvalonPIO-PIO_0的向?qū)?;?)在BasicSettings頁中,設(shè)置width=4bits,direction為InputPortsOnly;創(chuàng)建NiosII系統(tǒng)模塊2.添加Bu76創(chuàng)建NiosII系統(tǒng)模塊(3)在InputOptions頁中,在EdgeCaptureRegister下選中SynchronouslyCapture,然后選擇EitherEdge;(4)在Interrupt下選中GenerateIRQ,然后選擇Edge;(5)點擊Finish,返回到AlteraSOPCBuilderNIOS2的窗口;(6)右鍵單擊ModuleName下的pio_0,從菜單選擇rename,重命名為button_pio.創(chuàng)建NiosII系統(tǒng)模塊(3)在InputOpti77創(chuàng)建NiosII系統(tǒng)模塊

3.添加LCD控制器(1)在“SOPCBuider系統(tǒng)模塊設(shè)計窗口”的左側(cè)的Avaloncomponents下的display庫中選擇CharacterLCD(162,Optrex16027),單擊Add;(2)ModuleName下出現(xiàn),lcd_16027_0;(3)將其重命名lcd_display。創(chuàng)建NiosII系統(tǒng)模塊3.添加LC78

4.添加外部RAM接口(1)Avaloncomponents下的Memory下面選擇CypressCY7C1380CSSRAM,單擊Add,出現(xiàn)SSRAM(CypressCY7C1380C)-ext_ssram的向?qū)?;?)在TimingParameters下面設(shè)置ReadLatency為2clocks,在SSRAM下面設(shè)置MemorySize為2Mbytes(3)單擊Finish,返回到AlteraSOPCBuilderNIOS2的窗口;(4)右鍵單擊ModuleName下的ssram_0,從菜單選擇rename,重命名為ext-ssram。4.添加外部RAM接口79

5.添加外部閃存接口(1)在Avaloncomponents下的Memory下面選擇FlashMemory(CommonFlashInterface),單擊Add,出現(xiàn)外部閃存接口向?qū)?;?)在Attributes頁中,可以在Presets列表中選擇相應(yīng)的閃存的接口,這些閃存的接口都是經(jīng)過測試的,如果列表中沒有,用戶可以自己定義閃存的Size和DataWidth;創(chuàng)建NiosII系統(tǒng)模塊5.添加外部閃存接口創(chuàng)建NiosII系統(tǒng)模塊80

(3)在timing頁中,可以設(shè)置閃存的讀寫時序要求,可以設(shè)置Setup,Waite,hold時間等參數(shù),通常保留缺省的設(shè)置;(4)如應(yīng)用選擇的閃存接口不在列表中,需要自己定義Size和DataWidth,和時序要求;(5)點擊Finish,返回到AlteraSOPCBuilderNIOS2的窗口,ModuleName出現(xiàn)cfi_flash_0,對其重命名為ext_flash。創(chuàng)建NiosII系統(tǒng)模塊(3)在timing頁中,可以設(shè)置閃存的讀寫時序要求,可81

6.添加外部RAM總線和外部flash總線(Avalon三態(tài)總線橋)為了使NiosII系統(tǒng)能與開發(fā)板上的外部存儲器通信,必須在Avalon總線和外部存儲器之間加入Avalon三態(tài)橋。步驟如下:(1)在Bridge下,選擇AvalonTri-StateBridge,點擊Add,出現(xiàn)AvalonTri-StateBridge–tri_state_bridge_0向?qū)В?2)Registered選項默認(rèn)為選中;(3)單擊Finish,返回到AlteraSOPCBuilderNIOS2的窗口;(4)將其重命名為ext_ssram_bus;(5)重復(fù)前三個步驟,在添加一個Avalon三態(tài)總線橋,并重命名為ext_flash_bus.6.添加外部RAM總線和外部flash總線(Avalo82

7.添加JTAGUART(1)在Avaloncomponents下的Communication下選擇JTAGUART,點擊ADD,出現(xiàn)添加向?qū)А#?)按照缺省設(shè)置,點擊Finish。(3)將其重命名為JTAG_UART.8.NiosII系統(tǒng)的連接主要是外部RAM接口要和RAM的三態(tài)橋連接,外部的Flash接口要和flash的三態(tài)橋連接。所有添加的IP連接都是系統(tǒng)自動完成的,除了上面提到的三態(tài)橋和外部存儲器的接口的連接之外,其它的連接用戶不用修改,但對于三態(tài)橋和外部存儲器接口的連接,系統(tǒng)的自動連接可能和用戶的開發(fā)板不匹配,用戶需要進(jìn)行手動的更改。針對我們所用的開發(fā)板的情況進(jìn)行的設(shè)置,因為本書用到的開發(fā)板外部的SRAM和外部的Flash沒有使用共用的數(shù)據(jù)線和地址線,所以必須為它們分別添加一個三態(tài)橋。創(chuàng)建NiosII系統(tǒng)模塊7.添加JTAGUART創(chuàng)建NiosII系統(tǒng)模塊83創(chuàng)建NiosII系統(tǒng)模塊創(chuàng)建NiosII系統(tǒng)模塊84三、分配IP模塊的地址和中斷號在以上添加IP的過程中,SOPCBuilder為各個IP模塊分配了一個默認(rèn)的基地址,用戶可以改變這些默認(rèn)的分配。如果用戶自己分配的地址出現(xiàn)沖突,SOPCBuilder會給出警告,用戶可以按照下面的步驟來進(jìn)行分配和解決地址沖突問題。創(chuàng)建NiosII系統(tǒng)模塊三、分配IP模塊的地址和中斷號創(chuàng)建NiosII系統(tǒng)模塊85下面我們給出一種自定義的地址分配實例,將閃存的基地址設(shè)定為0x00000000,步驟如下:(1)單擊Flash外設(shè)的Base欄,將地址改為0x0,然后回車,這時SOPCBuilder的消息框中出現(xiàn)錯誤的提示信息,這是因為閃存的地址和其它的外設(shè)地址發(fā)生了沖突。(2)選擇Module菜單中的LockBaseAddress操作,一個掛鎖的圖標(biāo)出現(xiàn)在閃存基地址的旁邊。(3)選擇System菜單中的AutoAssignBaseAddress操作,來解決外設(shè)的地址分配沖突問題,SOPCBuilder調(diào)整其它外設(shè)的地址來避開與閃存地址的沖突,錯誤提示的消息就會消失了。(4)用戶可以手動修改各個外設(shè)的中斷號,中斷號越低,中斷優(yōu)先級越高,用戶也可以采用自動分配中斷號,選擇System菜單中的AutoAssignIRQs,但SOPCBuilder不處理軟件操作,采用自動分配中斷的策略不一定是最優(yōu)的,用戶最好是根據(jù)自己的應(yīng)用來確定外設(shè)的中斷優(yōu)先級,采用手動的分配。創(chuàng)建NiosII系統(tǒng)模塊下面我們給出一種自定義的地址分配實例,將閃存86四、配置NIOSII系統(tǒng)系統(tǒng)的IP模塊添加完成之后,還需要對系統(tǒng)進(jìn)行配置。點擊NiosIIMore“cpu_0”Settings頁,用戶可以進(jìn)行如下的設(shè)置:ResetAddress:可以選擇存放BootLoader的存儲器和設(shè)置BootLoader在存儲器中的偏移,我們這里選擇ext_flash,偏移選擇默認(rèn);ExceptionAddress:可以選擇存放異常向量表的存放的存儲器和設(shè)置異常向量表在存儲器中的偏移,我們選擇ext_ssram,偏移選擇默認(rèn);BreakLocation:如果NIOSII包含有一個JTAGDebug模塊,SOPCBuilder會顯示這項內(nèi)容。其MemoryModule總是JTAGDebugModule,Offset固定為0x20,地址由JTAGdebugmodule基地址決定。用戶不能修改BreakLocation的各個域的內(nèi)容。四、配置NIOSII系統(tǒng)系統(tǒng)的IP模87五、生成NIOSII并加入到工程中

NIOSII系統(tǒng)是工程的一部分,我們首先是生成它,然后加入到工程中去,然后將整個工程下載到FPGA芯片中去。單擊SystemGeneration,在Option下進(jìn)行如下的設(shè)置:創(chuàng)建NiosII系統(tǒng)模塊五、生成NIOSII并加入到工程中創(chuàng)建NiosII系統(tǒng)88選中Simulation,如果安裝了ModelSim軟件,會生成用于仿真的相應(yīng)的文件。單擊exit退出SOPCBuilder。單擊Generate,SOPCBuilder會提示生成系統(tǒng)的進(jìn)程,系統(tǒng)生成完成時會提示”SUCCESS:SYSTEMGENERATIONCOMPLETED”。選中HDL,會生成系統(tǒng)模塊的硬件語言文件。選中Simulation,如果安裝了ModelSim軟件,89系統(tǒng)生成完成之后,SOPCBuilder為這個定制的NIOSII系統(tǒng)模塊創(chuàng)建了一個符號,要把NiosII系統(tǒng)加入到工程中去,遵循如下的步驟:(1)在QuartusII軟件中,打開頂層實體(BDF格式),在BDF窗口中任意處雙擊,出現(xiàn)Symbol對話框;(2)在Symbol對話框中單擊Project來展開工程目錄,其下出現(xiàn)NIOS2(本例采用的系統(tǒng)名),選中它,右側(cè)出現(xiàn)了系統(tǒng)的符號表示;(3)單擊OK,Symbol對話框關(guān)閉,NIOS2的符號輪廓被附著在鼠標(biāo)的指針上。(4)BDF窗口中任意空白處單擊一下,NIOS2的符號出現(xiàn)在BDF窗口中,這樣我們創(chuàng)建的系統(tǒng)已經(jīng)被加入到工程中了。創(chuàng)建NiosII系統(tǒng)模塊系統(tǒng)生成完成之后,SOPCBuilder為90創(chuàng)建NiosII系統(tǒng)模塊創(chuàng)建NiosII系統(tǒng)模塊91六、引腳和嵌入式鎖相環(huán)除了NIOSII系統(tǒng)之外,可能還要有其它的硬件邏輯,我們這里加入一個嵌入式鎖相環(huán),嵌入式鎖相環(huán)有兩個時鐘輸出,一個輸出SSRAM提供時鐘,另一個時鐘的輸出為NIOSIICPU提供時鐘,然后添加輸入、輸出、雙向引腳,以實現(xiàn)和FPGA外部的外設(shè)進(jìn)行通信。加入嵌入式鎖相環(huán)的步驟如下:創(chuàng)建NiosII系統(tǒng)模塊六、引腳和嵌入式鎖相環(huán)創(chuàng)建NiosII系統(tǒng)模塊92(1)點擊ToolsMegaWizardPlug-InManager,出現(xiàn)MegaWizardPlug-InManager向?qū)age1窗口,點擊next創(chuàng)建NiosII系統(tǒng)模塊(1)點擊ToolsMegaWizardPlug-In93(2)在MegaWizardPlug-InManagerPage2窗口中的IO下面選擇ALTPLL,器件選擇CycloneII,輸出文件類型選擇VHDL,文件名為ssram_pll,選中Returntothispageforanothercreateoperation,然后點擊Next,出現(xiàn)MegaWizardPlug-InManager-ALTPLL[Page3of10];創(chuàng)建NiosII系統(tǒng)模塊(2)在MegaWizardPlug-InManage94(3)在窗口中,做如圖選擇,點擊next,進(jìn)入page4(4)在page4中不作任何配置,直接點擊next;創(chuàng)建NiosII系統(tǒng)模塊(3)在窗口中,做如圖選擇,點擊next,創(chuàng)建NiosII95(5)點擊next創(chuàng)建NiosII系統(tǒng)模塊(5)點擊next創(chuàng)建NiosII系統(tǒng)模塊96(6)在Page6窗口中,設(shè)置c0輸出時鐘,首先選中Usethisclock選項,設(shè)置時鐘頻率為85MHz,占空比為50%。點擊Next會進(jìn)入c1輸出時鐘的設(shè)置;創(chuàng)建NiosII系統(tǒng)模塊(6)在Page6窗口中,設(shè)置c0輸出時鐘,首先選中Us97(7)嵌入式PLL可提供3個輸出時鐘,我們使用其中的兩個,Page7窗口中,在c1時鐘的設(shè)置頁面上,選中Usethisclock選項,設(shè)置時鐘頻率為85MHz,點擊Next;創(chuàng)建NiosII系統(tǒng)模塊(7)嵌入式PLL可提供3個輸出時鐘,我們使用其中的兩個,98創(chuàng)建NiosII系統(tǒng)模塊(8)在MegaWizardPlug-InManager-ALTPLL[Page8of10]窗口中,不選中Usethisclock選項,即我們不使用c2時鐘,點擊Next;(9)在MegaWizardPlug-InManager-ALTPLL[Page9of10]窗口中,給出了用于仿真必須要產(chǎn)生的文件,點擊Next;(10)在MegaWizardPlug-InManager-ALTPLL[Page10of10]窗口中,給出了用戶選擇要產(chǎn)生的文件,不做改變,采用默認(rèn)配置,點擊Finish完成PLL的生成。

在頂層實體的bdf窗口中雙擊鼠標(biāo),出現(xiàn)Symbol添加窗口,在project下面選擇剛才建立的ssram_pll,點擊OK。ssram_pll的輪廓會附著在鼠標(biāo)上,點擊bdf窗口的空白處,將嵌入式鎖相環(huán)加入到了工程中。創(chuàng)建NiosII系統(tǒng)模塊(8)在MegaWizardP99引腳添加的步驟如下:

(1)在頂層實體的bdf窗口的空白處雙擊鼠標(biāo),出現(xiàn)Symbol添加窗口(2)在altera/quartus/libraries下面選擇primitives,再在其下選擇pin,在其中有三種類型的引腳,有bidir,input,output,分別為雙向、輸入和輸出引腳,選擇相應(yīng)類型的引腳,點擊OK。(3)點擊bdf窗口的空白處,即將引腳加入到了工程中。(4)重復(fù)上面的步驟添加為各個端口添加相應(yīng)類型的引腳。引腳添加的步驟如下:(2)在altera/quartus/100創(chuàng)建NiosII系統(tǒng)模塊連接引腳和命名引腳

第一個加入的引腳的名稱缺省為pin_name,之后加入的引腳名稱依次為pin_name1,pin_name2向上遞增,為了便于理解和記憶,需要對引腳重新命名,使其和其傳輸?shù)男盘柭?lián)系起來。

命名引腳的方法如下:(1)雙擊引腳的“pin_namen”部分,pin_namen的文字變成高亮,可以對其編輯。(2)對其他的引腳重復(fù)以上的操作,修改成具有意義的名字。(3)對于總線型的引腳,引腳名稱之后要標(biāo)識出總線的位數(shù),如ddr_a[12..0],在引腳名稱之后加上方括號,然后寫上最高位和最低位,用兩個..隔開。(4)將嵌入式鎖相環(huán)和系統(tǒng)模塊等連接起來,并將引腳連接到相應(yīng)的端口上。創(chuàng)建NiosII系統(tǒng)模塊連接引腳和命名引腳101創(chuàng)建NiosII系統(tǒng)模塊連接好的頂層模塊圖創(chuàng)建NiosII系統(tǒng)模塊連接好的頂層模塊圖102設(shè)計優(yōu)化設(shè)計優(yōu)化主要包括節(jié)省占用FPGA的面積和提高設(shè)計系統(tǒng)運行速度兩個方面。這里的“面積”是指一個設(shè)計所消耗的FPGA的邏輯資源的數(shù)量,一般以設(shè)計占用的等價邏輯門數(shù)來衡量。“速度”是指設(shè)計的系統(tǒng)在目標(biāo)芯片上穩(wěn)定運行時能夠達(dá)到的最高頻率,它與設(shè)計的時鐘周期、時鐘建立時間、時鐘保持時間、時鐘到輸出端口的延遲時間等諸多因素有關(guān)。設(shè)計優(yōu)化設(shè)計優(yōu)化主要包括節(jié)省占用FPGA的面103面積與速度的優(yōu)化打開我們剛才的工程——clock,然后選擇Assignment菜單下的Settings命令,彈出設(shè)置窗口。在對話框的左邊的Category欄下,列出了很多可設(shè)置的對象,包括EDAToolsSettings、CompilationProcessSettings、Analysis&SynthesisSettings、FitterSettings、TimingSettings、SimulationSettings等等,選中要設(shè)置的項目,窗口的右邊顯示供設(shè)置的選項和參數(shù)。在Analysis&SynthesisSettings頁面,用于對設(shè)計在分析與綜合時的優(yōu)化設(shè)置。在該頁面的OptimizationTechniques欄中,提供了Speed、Balanced和Area3種優(yōu)化選擇,其中Balanced是軟件缺省的優(yōu)化選擇。如果對Speed或Area有特殊的要求,則選中相應(yīng)的選項。面積與速度的優(yōu)化在對話框的左邊的Category欄下,列出了104設(shè)計優(yōu)化時序約束與設(shè)置選擇Settings下面的TimingAnalysisSettings,然后選擇ClassicTimingAnalyzerSettings。在此頁面中,可以對設(shè)計的延遲約束、時鐘頻率等做設(shè)置。延遲約束(DelayRequirements)設(shè)置包括tsu(建立時間)、tco(時鐘到輸出的延遲)、tpd(傳輸延遲)和th(保持時間)的設(shè)置。一般來說,用戶要根據(jù)目標(biāo)芯片的特性及PCB板走線的實際情況,給出設(shè)計需要滿足的時鐘頻率、建立時間、保持時間和傳輸延遲時間等參數(shù)。對一些簡單的應(yīng)用,對時序要求不嚴(yán)格,可以不做設(shè)置。設(shè)計優(yōu)化時序約束與設(shè)置在此頁面中,可以對設(shè)計的延遲約束、時鐘105設(shè)計優(yōu)化Fitter設(shè)置在Ssettings對話框中,用鼠標(biāo)左鍵單擊Category欄目中的FitterSettings項,出現(xiàn)FitterSettings設(shè)置頁面。此頁面用于布局布線器的控制。

在這里需要設(shè)置的主要是布局布線的策略(FitterEffort),有三種模式可供選擇:標(biāo)準(zhǔn)模式(StandardFit)、快速模式(FastFit)和自動模式(AutoFit)。標(biāo)準(zhǔn)模式需要的時間比較長,但可以實現(xiàn)較高的最高頻率(fmax);快速模式可以節(jié)省50%的編譯時間,但會使最高頻率有所降低;自動模式在達(dá)到設(shè)計要求的條件下,自動平衡最高頻率和編譯時間。設(shè)計優(yōu)化Fitter設(shè)置在這里需要設(shè)置的主要是布局布線的策略106編譯QuartusII編譯器由一系列處理模塊組成,包括分析與綜合、適配、匯編和時序分析等環(huán)節(jié)。通過QuartusII編譯器,可以檢查設(shè)計錯誤,綜合邏輯,把設(shè)計配置到FPGA中去,并且為模擬、時序分析及器件配置生成輸出文件。1.分析與綜合在編譯過程中,首先對設(shè)計文件進(jìn)行分析和檢查,如檢查原理圖的信號線有無漏接、信號有無雙重來源、硬件描述語言文件中有無語法錯誤等,如存在錯誤,編譯器會給出出錯信息并標(biāo)出出錯位置,供設(shè)計者修改,如果設(shè)計文件不存在錯誤,接著進(jìn)行綜合,綜合完成的是設(shè)計邏輯到器件資源的映射。2.適配適配完成的是設(shè)計邏輯在器件中的布局和布線、選擇適當(dāng)?shù)膬?nèi)部互聯(lián)路徑、引腳分配、邏輯元件分配等操作??梢栽O(shè)置適配的多個選項,來采取不同的優(yōu)化策略。

編譯QuartusII編譯器由一系列處理模塊組成,包括分析107編譯3.匯編適配完成后,進(jìn)入編程環(huán)節(jié)。在編程過程中,生成器件的編程映像文件,映像文件可以通過電纜下載到目標(biāo)芯片中。4.時序分析在適配完成之后,設(shè)計邏輯在器件中的布局和布線、內(nèi)部互聯(lián)路徑已經(jīng)確定,在時序分析中,會計算給定設(shè)計在器件中延時,完成時序分析和邏輯的性能分析。用戶可以預(yù)先設(shè)置Timingrequirement,可以針對整個的工程、特定的設(shè)計實體、節(jié)點和引腳指定所需的速度性能。編譯過程中會針對設(shè)置進(jìn)行適配。編譯3.匯編108編譯一、編譯設(shè)置

在編譯前,用戶可以設(shè)置編譯器,可以實現(xiàn)對編譯過程控制的目的。編譯器根據(jù)相應(yīng)的設(shè)置進(jìn)行編譯。合理的設(shè)置可以提高工程編譯的速度,優(yōu)化器件的資源利用等。單擊Assignments菜單中的Settings,出現(xiàn)下圖的窗口。編譯一、編譯設(shè)置109編譯在Device中,用戶可以設(shè)置和器件有關(guān)的選項,F(xiàn)PGA的芯片通常在建立項目的時候就已經(jīng)選擇好了,所以通常不做修改。注意在編譯之前必須要對未使用的引腳做設(shè)置,將未使用的引腳設(shè)置成Asinputs,tri-stated。如果不做此項配置設(shè)計可能無法在開發(fā)板上運行。設(shè)置未使用的引腳按照下面的步驟:(1)在Settings對話框中的Device頁中,單擊DeviceandPinOptions,出現(xiàn)DeviceandPinOptions對話框,缺省是General頁。編譯在Device中,用戶可以設(shè)置和器件有關(guān)的選項,F(xiàn)PGA110編譯(2)單擊UnusedPins標(biāo)簽,在Reserveallunusedpins下選擇,Asinputs,tri-stated。(3)在Deviceandpinsoptions中,其他的設(shè)置可以選用默認(rèn)的設(shè)置,不做修改,點擊確定。編譯(2)單擊UnusedPins標(biāo)簽,在Reserve111編譯設(shè)計優(yōu)化也是編譯設(shè)置的一部分,但是為了強調(diào)設(shè)計優(yōu)化的重要性,把它們單獨提出來介紹了,除了這些設(shè)置之外,還有下面的一些設(shè)置跟編譯的過程有關(guān):在EDATools中,用戶可以指定在編譯過程中用到的其他第三方的工具軟件,通常不用設(shè)定。在CompilationProcessSettings中,用戶可以設(shè)置編譯過程的一些選項,如是否使用增量編譯等。在TimingAnalyzer中,用戶可以設(shè)置時序分析報告中顯示的內(nèi)容。在Assembler中,指定匯編的選項。編譯設(shè)計優(yōu)化也是編譯設(shè)置的一部分,但是為了強112編譯二、引腳分配用戶需要進(jìn)行引腳分配,使得編譯器能把用戶設(shè)計中的信號分配到目標(biāo)器件上的特定引腳上。QuartusII提供了兩種引腳分配方法:一種是使用AssignmentsEditor來分配,方法為選擇Assignments菜單中的pins或者AssignmentsEditor;第二種方法是使用TCL腳本一次性分配所有的引腳。編譯二、引腳分配113編譯采用第一種方法即使用AssignmentsEditor進(jìn)行引腳分配步驟如下:(1)選擇選擇Assignments菜單中的pins或者AssignmentsEditor。(2)在NodeName下輸入引腳名稱,在Location選擇相應(yīng)的引腳。(3)選擇FileSave保存分配。這種分配方法效率較低,且容易出錯。推薦使用TCL腳本文件的方法來進(jìn)行引腳分配。編譯采用第一種方法即使用AssignmentsEditor114編譯用TCL腳本文件

溫馨提示

  • 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

提交評論