




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第二章 SOPC開發(fā)流程及Quartus II的使用2.1 SOPC開發(fā)流程和開發(fā)工具2.2 Quartus II操作基礎(chǔ)2.3 SOPC硬件開發(fā)實例2.4 創(chuàng)建Nios II 系統(tǒng)模塊2.5 設(shè)計優(yōu)化2.6 編譯2.7 編程下載SOPC開發(fā)流程和開發(fā)工具SOPC設(shè)計包括硬件和軟件兩部分。 硬件設(shè)計:主要基于Quartus II和 SOPC Builder。 軟件設(shè)計:基于Nios II IDE。SOPC開發(fā)流程開發(fā)流程分析系統(tǒng)需求: 在進(jìn)行SOPC開發(fā)之前,首先必須確定系統(tǒng)的需求,如應(yīng)用系統(tǒng)需求的計算性能、需要的帶寬和吞吐量、需求的接口類型以及是否需求多線程的軟件等。建立Quartus II
2、工程:每個開發(fā)過程開始時都應(yīng)建立一個工程,Quartus II是以工程的方式對設(shè)計過程進(jìn)行管理。在工程中建立頂層模塊文件.bdf相當(dāng)于傳統(tǒng)電路設(shè)計中的電路板(PCB)。定義和生成系統(tǒng):在SOPC Builder中添加需要的功能模塊(Nios II及其標(biāo)準(zhǔn)外設(shè)模塊),完成后生成一個系統(tǒng)模塊。定制指令&定制外設(shè)邏輯:如果需要,用戶可以定制指令和外設(shè)邏輯。(可參考第8章)自定義的功能模塊:當(dāng)設(shè)計中現(xiàn)有模塊不能滿足設(shè)計要求時,可設(shè)計自己的功能模塊。并在頂層模塊中使用;Altera的LPM模塊 :在Quartus II軟件中包含了大量的Altera公司提供的LPM功能模塊,相當(dāng)于傳統(tǒng)設(shè)計中除處理
3、器以外的邏輯芯片(如74系列); 集成SOPC生成的系統(tǒng)到Quartus II工程 :在頂層模塊中,分別將SOPC Builder生成的系統(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、布線以
4、及時序分析等步驟。 下載配置文件到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í)行軟件到Nios II系統(tǒng):將可執(zhí)行文件.elf下載到RAM。在目標(biāo)板上運行/調(diào)試軟件 :在目標(biāo)板上反復(fù)調(diào)試軟件。 使用IDE編程工具 燒寫配置文件和軟件代碼 :最后利用IDE的編程工具將配置文件燒寫到FPGA的配置芯片或Flash,將可執(zhí)行文件*.elf編
5、程到Flash中。 Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)新建工程選項 新建工程第一頁 Quartus II操作基礎(chǔ)新建工程第二頁 新建工程第三頁 Quartus II操作基礎(chǔ)新建工程第四頁 新建工程第五頁 Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)圖形編輯器對話框 Quartus II操作基礎(chǔ)元件選擇窗口 Qua
6、rtus II操作基礎(chǔ)元件選擇窗口 Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ) 。Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)RTL閱讀器窗口的右邊,是過程設(shè)計結(jié)果的主窗口,包括設(shè)計電路的模塊和連線Quartus II操作基礎(chǔ)RTL閱讀器的左邊是層次列表,在每個層次上以樹狀形式列出了設(shè)計電路的所有單元。層次列表的內(nèi)容包括以下幾個方面: (1)實例Instances,能夠被展開成低層次模塊或?qū)嵗?(2)原語Primitives,不能被展開為任何低層次模塊的低
7、層次節(jié)點; (3)引腳Pin,當(dāng)前層次的I/O端口,如果端口是總線,也可以將其展開,觀察到端口中每一個端口的信號; (4)網(wǎng)線Net,是連接節(jié)點的連線,當(dāng)網(wǎng)線是總線時也可以展開,觀察每條網(wǎng)線。Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)(2)在新建話框中選擇 Other Files 標(biāo)簽頁,從中選擇 Vector Waveform File,點擊OK按鈕,則打開一個空的波形編輯器窗口。建立波形文件 波形編輯器窗口:主要分為信號欄、工具欄和波形欄 。Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作
8、基礎(chǔ)Count Value對話框的Counting頁Count Value對話框的Timing頁Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)編程下載設(shè)計文件Quartus II操作基礎(chǔ)編程下載對話框 Quartus II操作基礎(chǔ)編程下載對話框 Quartus II操作基礎(chǔ)編程下載對話框 Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)Quartus II操作基礎(chǔ)MegaWizard Plug-In Manager第一頁 Quartus II操作基礎(chǔ)MegaWizard Plug-In Manager第二頁 MegaWi
9、zard Plug-In Manager第三頁 Quartus II操作基礎(chǔ) MegaWizard Plug-In Manager第四頁 MegaWizard Plug-In Manager第五頁 Quartus II操作基礎(chǔ)MegaWizard Plug-In Manager第六頁 MegaWizard Plug-In Manager第七頁 Quartus II操作基礎(chǔ)SOPC硬件開發(fā)實例例子:設(shè)計一個電子鐘第一步是要進(jìn)行需求分析,根據(jù)這個要求來建立硬件系統(tǒng)。 電子鐘的設(shè)計要求: 在液晶屏上顯示日期、時間; 可以設(shè)置日期、時間;SOPC硬件開發(fā)實例 根據(jù)系統(tǒng)要求,電子鐘的設(shè)計要用到的外圍器件
10、有: LCD:電子鐘顯示屏幕; 按鍵:電子鐘設(shè)置功能鍵; Flash存儲器:存儲軟、硬件程序; SRAM存儲器:程序運行時將其導(dǎo)入SRAM。 根據(jù)所要用到的外設(shè)、要實現(xiàn)的功能以及開發(fā)板的配置,在SOPC Builder中建立系統(tǒng)要添加的模塊包括: Nios II CPU、定時器、按鍵PIO、LCD控制器、AVALON三態(tài)橋、外部RAM接口、外部Flash接口。 使用的開發(fā)環(huán)境如下: WinXP操作系統(tǒng) Nios II 6.0嵌入式處理器 Quartus II 6.0 基于Cyclone II 的SOPC開發(fā)板SOPC硬件開發(fā)實例創(chuàng)建工程創(chuàng)建工程進(jìn)行完需求分析之后,進(jìn)行硬件系統(tǒng)的創(chuàng)建。 首先必須
11、建立一個Quartus II 的工程, 步驟如下: 1. 開始-程序-AlteraQuartus II 6.1Quartus II 6.1(32 bit),啟動Quartus II軟件; SOPC硬件開發(fā)實例2.選擇File菜單New Project Wizard,出現(xiàn)Introduction頁面,該頁面介紹所要完成的具體任務(wù),點擊next。SOPC硬件開發(fā)實例3. 進(jìn)行項目名稱的設(shè)定、工作目錄的選擇。指定工程存放的目錄,工程名和頂層實體名,工程名和頂層實體名要求相同,工程目錄可以隨意設(shè)置,但必須是英文的目錄,工程名和頂層實體名也要求是英文名字,我們的工程名和頂層實體名為clock,選擇Nex
12、t。SOPC硬件開發(fā)實例4.可以為工程添加先期已經(jīng)輸入的設(shè)計文件,指定用戶自定義的元件庫的路徑,這里我們沒有事先輸入好的文件,也沒有自定義的元件庫,點擊Next進(jìn)入下一步。SOPC硬件開發(fā)實例5. 用戶指定目標(biāo)器件,根據(jù)開發(fā)板的所使用的器件來選擇,實際開發(fā)中,通過查看核心板的參考手冊來獲取所使用的器件具體型號,可以使用窗口右邊的Filters來加快器件的選擇,選擇完畢點擊Next。SOPC硬件開發(fā)實例6. 指定在Quartus II 之外的用于,設(shè)計輸入、綜合、仿真、時序分析的第三方EDA工具,Quartus II對第三方工具的支持比較完善。這里我們不做選擇,直接點擊Next。SOPC硬件開發(fā)
13、實例所見新工程的信息,確認(rèn)所創(chuàng)建工程的主要信息,點擊Finish完成工程的建立,在開發(fā)的過程中,還可以通過菜單assignmentSettings來對這些配置進(jìn)行修改。 點擊Finish按鈕,Quartus II自動會打開這個工程,可以看到頂層實體名出現(xiàn)在工程導(dǎo)航窗口中。SOPC硬件開發(fā)實例創(chuàng)建Nios II 系統(tǒng)模塊 創(chuàng)建完成工程之后,需要創(chuàng)建頂層實體。創(chuàng)建完頂層設(shè)計文件之后,使用SOPC Builder創(chuàng)建NIOS II 嵌入式處理器,添加、配置系統(tǒng)的外設(shè)IP,組成Nios II系統(tǒng)模塊。 Nios II 系統(tǒng)模塊設(shè)計完成之后要加入到該頂層實體中,然后進(jìn)行其他片上邏輯的開發(fā)。一、創(chuàng)建頂層實
14、體一、創(chuàng)建頂層實體(1)新建的工程窗口中,選擇FileNew; (2)在Device Design File頁中,選擇Block DiagramSchematic File,即原理圖文件,也可以選擇硬件描述語言的文件形式。單擊OK。 (3)出現(xiàn)一個模塊編輯窗口。創(chuàng)建Nios II 系統(tǒng)模塊創(chuàng)建Nios II 系統(tǒng)模塊(4) 選擇FileSave As,出現(xiàn)Save As對話框,顯示的目錄為之前設(shè)置的工程目錄,文件名為之前設(shè)置的頂層實體名(由于這是工程的第一個文件,系統(tǒng)會默認(rèn)為頂層設(shè)計實體的名字)。確定Add to Current Project選項被選中,點擊Save文件被保存并被加入到工程中
15、。創(chuàng)建Nios II 系統(tǒng)模塊二、創(chuàng)建二、創(chuàng)建Nios II系統(tǒng)模塊系統(tǒng)模塊 創(chuàng)建NIOS II系統(tǒng)模塊需要使用SOPC Builder,它是Quartus II中的一個工具,使用SOPC Builder可以創(chuàng)建一個Nios II 系統(tǒng)模塊,或者創(chuàng)建多主設(shè)備SOPC模塊。一個完整Nios II的系統(tǒng)模塊包括Nios II處理器和相關(guān)的系統(tǒng)外設(shè)。所以創(chuàng)建系統(tǒng)模塊的流程是先創(chuàng)建一個系統(tǒng),然后添加Nios II CPU和外設(shè)IP,然后進(jìn)行相應(yīng)的設(shè)置,最后生成實例,然后將其加入到工程的頂層實體中去。 創(chuàng)建Nios II 系統(tǒng)模塊(一)、創(chuàng)建系統(tǒng) 啟動SOPC Builder,選擇ToolsSOPC B
16、uilder,出現(xiàn)下圖所示的Create New System對話框。鍵入系統(tǒng)的名字,選擇硬件描述語言Verilog或者是VHDL。單擊OK按鈕后,出現(xiàn)SOPCBuider系統(tǒng)模塊設(shè)計窗口。創(chuàng)建Nios II 系統(tǒng)模塊用戶需要設(shè)置系統(tǒng)的時鐘頻率,該頻率用于計算硬件和軟件開發(fā)中的定時,比如時鐘分頻或波特率。這里我們設(shè)成85MHz,還可以選擇是否選用流水線。(二) 、設(shè)置系統(tǒng)主頻和指定目標(biāo)FPGA 在Target欄中的Board部分指定我們這本書使用的核心開發(fā)板Cyclone II (EP2C35)。也可以在Board部分選擇Unspecified,然后在Device Family選擇Cyclon
17、e II。 創(chuàng)建Nios II 系統(tǒng)模塊(三)、加入Nios II CPU和 IP模塊 首先加入Nios II軟核,Nios II 是軟核CPU,共有三種類型的CPU可供選擇:Nios II/e(經(jīng)濟(jì)型)、Nios II/s(標(biāo)準(zhǔn)型)和Nios II/f(快速型)。用戶可以根據(jù)實際的情況進(jìn)行選擇。Nios II是一個用戶可以自行進(jìn)行定制的CPU,用戶可以增加新的外設(shè)、新的指令等。添加Nios II CPU的步驟如下: 1. 在上圖“SOPCBuider系統(tǒng)模塊設(shè)計窗口”Avalon Components 下面選擇Nios II Processor; 2. 點擊 Add,出現(xiàn)Nios II CP
18、U的配置向?qū)В灿腥N類型的CPU可供選擇;創(chuàng)建Nios II 系統(tǒng)模塊 根據(jù)需要選擇相應(yīng)的一種Nios II核,我們選擇標(biāo)準(zhǔn)型的Nios II核,Hardware Multiply選擇none,不選擇Hardware Divide點擊Next,進(jìn)入Caches & Tightly Coupled Memories設(shè)置窗口;創(chuàng)建Nios II 系統(tǒng)模塊 設(shè)置Nios II的Cache和與CPU直接相連的存儲器端口(不通過Avalon總線),選擇Instruction Cache為4Kbytes,不選中Include tightly coupled instruction master
19、port(s) ,點擊Next進(jìn)入Advanced Features設(shè)置頁面。創(chuàng)建Nios II 系統(tǒng)模塊 Advanced Features的設(shè)置頁面是Quartus II 6.1 版本才有的設(shè)置,這里不選擇Include cpu_resetrequest and cpu_resettaken signals點擊Next進(jìn)入JTAG Debug Module設(shè)置。創(chuàng)建Nios II 系統(tǒng)模塊 共有4個調(diào)試級別可供選擇,這里選擇Level1即可,該級別支持軟件的斷點調(diào)試。JTAG調(diào)試模塊要占用較多的邏輯資源,如果整個系統(tǒng)調(diào)試完畢了可以選用No Debugger以減少系統(tǒng)占用資源點擊Next進(jìn)入
20、自定義指令的設(shè)置。 因為本例不用到任何的自定義指令,這里不作任何的設(shè)置,點擊Finish完成CPU模塊的添加。創(chuàng)建Nios II 系統(tǒng)模塊創(chuàng)建Nios II 系統(tǒng)模塊除了Nios II CPU,電子鐘設(shè)計需要添加的IP模塊包括: Timer Button PIO LCD控制器 External RAM Bus External Flash Bus External RAM interface External Flash Interface創(chuàng)建Nios II 系統(tǒng)模塊 1. 添加定時器 定時器和Nios II CPU一樣,用戶可以對其進(jìn) 行定制。添加定時器的步驟如下: (1)在Avalon c
21、omponents下的other庫中選 擇Interval Timer并單擊Add,Avalon_Timer-timer_0的向?qū)Т翱诔霈F(xiàn); (2)配置定時器,點擊Finish,完成定時器的添加。 (3)可以對Timer進(jìn)行重命名,我們這里取缺省的名字。創(chuàng)建Nios II 系統(tǒng)模塊 2. 添加Button PIO (1)在 Avalon components下的other下選擇PIO,單擊Add,出現(xiàn)Avalon PIO-PIO_0的向?qū)В?(2)在Basic Settings頁中,設(shè)置width=4bits,direction為Input Ports Only; 創(chuàng)建Nios II 系統(tǒng)模塊
22、 (3)在Input Options頁中,在Edge Capture Register下選中Synchronously Capture,然后選擇Either Edge;(4)在Interrupt下選中Generate IRQ,然后選擇Edge; (5)點擊Finish,返回到Altera SOPC Builder NIOS2的窗口; (6)右鍵單擊Module Name下的pio_0,從菜單選擇rename,重命名為button_pio.創(chuàng)建Nios II 系統(tǒng)模塊 3. 添加LCD控制器 (1)在“SOPCBuider系統(tǒng)模塊設(shè)計窗口” 的左側(cè)的Avalon components下的disp
23、lay庫中選擇Character LCD(162, Optrex 16027),單擊Add; (2)Module Name下出現(xiàn),lcd_16027_0; (3)將其重命名lcd_display。 4.添加外部RAM接口 (1)Avalon components下的Memory下面選擇Cypress CY7C1380C SSRAM,單擊Add,出現(xiàn)SSRAM (Cypress CY7C1380C)-ext_ssram的向?qū)В?(2)在Timing Parameters下面設(shè)置Read Latency 為2 clocks,在SSRAM下面設(shè)置Memory Size為2Mbytes (3)單擊Fi
24、nish,返回到Altera SOPC Builder NIOS2的窗口; (4)右鍵單擊Module Name下的ssram_0,從菜單選擇rename,重命名為ext-ssram。 5. 添加外部閃存接口 (1)在Avalon components下的Memory下面選擇Flash Memory(Common Flash Interface),單擊Add,出現(xiàn)外部閃存接口向?qū)В?(2)在Attributes頁中,可以在Presets列表中選擇相應(yīng)的閃存的接口,這些閃存的接口都是經(jīng)過測試的,如果列表中沒有,用戶可以自己定義閃存的Size和Data Width;創(chuàng)建Nios II 系統(tǒng)模塊 (
25、3)在timing頁中,可以設(shè)置閃存的讀寫時序要求,可以設(shè)置Setup, Waite, hold時間等參數(shù),通常保留缺省的設(shè)置; (4)如應(yīng)用選擇的閃存接口不在列表中,需要自己定義Size和Data Width,和時序要求; (5)點擊Finish,返回到Altera SOPC Builder NIOS2的窗口,Module Name出現(xiàn)cfi_flash_0,對其重命名為ext_flash。創(chuàng)建Nios II 系統(tǒng)模塊 6. 添加外部RAM總線和外部flash總線(Avalon三態(tài)總線橋) 為了使Nios II 系統(tǒng)能與開發(fā)板上的外部存儲器通信,必須在Avalon總線和外部存儲器之間加入Av
26、alon三態(tài)橋。 步驟如下: (1) 在Bridge下,選擇Avalon Tri-State Bridge,點擊Add,出現(xiàn)Avalon Tri-State Bridge tri_state_bridge_0向?qū)В?(2) Registered選項默認(rèn)為選中; (3)單擊Finish,返回到Altera SOPC Builder NIOS2的窗口;(4) 將其重命名為ext_ssram_bus; (5) 重復(fù)前三個步驟,在添加一個Avalon三態(tài)總線橋,并重命名為ext_flash_bus. 7.添加JTAG UART (1)在Avalon components下的Communication下
27、選擇 JTAG UART,點擊ADD,出現(xiàn)添加向?qū)А?(2)按照缺省設(shè)置,點擊Finish。 (3) 將其重命名為JTAG_UART. 8. Nios II系統(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ù)線和地址線,所以必須
28、為它們分別添加一個三態(tài)橋。創(chuàng)建Nios II 系統(tǒng)模塊創(chuàng)建Nios II 系統(tǒng)模塊三、分配三、分配IP模塊的地址和中斷號模塊的地址和中斷號 在以上添加在以上添加IP的過程中,的過程中,SOPC Builder為各個為各個IP模塊分模塊分配了一個默認(rèn)的基地址,用戶可以改變這些默認(rèn)的分配。如果配了一個默認(rèn)的基地址,用戶可以改變這些默認(rèn)的分配。如果用戶自己分配的地址出現(xiàn)沖突,用戶自己分配的地址出現(xiàn)沖突,SOPC Builder會給出警告,會給出警告,用戶可以按照下面的步驟來進(jìn)行分配和解決地址沖突問題。用戶可以按照下面的步驟來進(jìn)行分配和解決地址沖突問題。 創(chuàng)建Nios II 系統(tǒng)模塊 下面我們給出一種
29、自定義的地址分配實例,將閃存的基地址設(shè)定為0 x00000000,步驟如下: (1)單擊Flash外設(shè)的Base欄,將地址改為0 x0,然后回車,這時SOPC Builder的消息框中出現(xiàn)錯誤的提示信息,這是因為閃存的地址和其它的外設(shè)地址發(fā)生了沖突。 (2)選擇Module菜單中的Lock Base Address操作,一個掛鎖的圖標(biāo)出現(xiàn)在閃存基地址的旁邊。 (3)選擇System菜單中的Auto Assign Base Address操作,來解決外設(shè)的地址分配沖突問題,SOPC Builder調(diào)整其它外設(shè)的地址來避開與閃存地址的沖突,錯誤提示的消息就會消失了。 (4)用戶可以手動修改各個外設(shè)
30、的中斷號,中斷號越低,中斷優(yōu)先級越高,用戶也可以采用自動分配中斷號,選擇System菜單中的Auto Assign IRQs,但SOPC Builder不處理軟件操作,采用自動分配中斷的策略不一定是最優(yōu)的,用戶最好是根據(jù)自己的應(yīng)用來確定外設(shè)的中斷優(yōu)先級,采用手動的分配。創(chuàng)建Nios II 系統(tǒng)模塊 四、配置四、配置NIOS II 系統(tǒng)系統(tǒng) 系統(tǒng)的IP模塊添加完成之后,還需要對系統(tǒng)進(jìn)行配置。點擊Nios II More “cpu_0” Settings 頁,用戶可以進(jìn)行如下的設(shè)置:Reset Address:可以選擇存放Boot Loader的存儲器和設(shè)置Boot Loader在存儲器中的偏移,
31、我們這里選擇ext_flash,偏移選擇默認(rèn);Exception Address:可以選擇存放異常向量表的存放的存儲器和設(shè)置異常向量表在存儲器中的偏移,我們選擇ext_ssram,偏移選擇默認(rèn);Break Location:如果NIOS II 包含有一個JTAG Debug模塊,SOPC Builder會顯示這項內(nèi)容。其Memory Module總是JTAG Debug Module,Offset 固定為0 x20, 地址由JTAG debug module基地址決定。用戶不能修改Break Location的各個域的內(nèi)容。五、生成五、生成NIOS II并加入到工程中并加入到工程中 NIOS
32、II系統(tǒng)是工程的一部分,我們首先是生成它,然后加入到工程中去,然后將整個工程下載到FPGA芯片中去。單擊System Generation,在Option下進(jìn)行如下的設(shè)置: 創(chuàng)建Nios II 系統(tǒng)模塊選中 Simulation,如果安裝了ModelSim軟件,會生成用于仿真的相應(yīng)的文件。單擊exit 退出SOPC Builder。單擊 Generate,SOPC Builder會提示生成系統(tǒng)的進(jìn)程,系統(tǒng)生成完成時會提示”SUCCESS: SYSTEM GENERATION COMPLETED”。選中 HDL,會生成系統(tǒng)模塊的硬件語言文件。 系統(tǒng)生成完成之后,SOPC Builder為這個定制
33、的NIOS II系統(tǒng)模塊創(chuàng)建了一個符號,要把Nios II系統(tǒng)加入到工程中去,遵循如下的步驟: (1)在 Quartus II軟件中,打開頂層實體(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)建Nios II 系統(tǒng)模塊創(chuàng)建Nios II
34、系統(tǒng)模塊六、引腳和嵌入式鎖相環(huán)六、引腳和嵌入式鎖相環(huán) 除了除了NIOS II系統(tǒng)之外,可能還要有其它的硬件邏輯,我系統(tǒng)之外,可能還要有其它的硬件邏輯,我們這里加入一個嵌入式鎖相環(huán),嵌入式鎖相環(huán)有兩個時鐘輸出,們這里加入一個嵌入式鎖相環(huán),嵌入式鎖相環(huán)有兩個時鐘輸出,一個輸出一個輸出SSRAM提供時鐘,另一個時鐘的輸出為提供時鐘,另一個時鐘的輸出為NIOS II CPU提供時鐘,然后添加輸入、輸出、雙向引腳,以實現(xiàn)和提供時鐘,然后添加輸入、輸出、雙向引腳,以實現(xiàn)和FPGA外部的外設(shè)進(jìn)行通信。外部的外設(shè)進(jìn)行通信。 加入嵌入式鎖相環(huán)的步驟如下:加入嵌入式鎖相環(huán)的步驟如下:創(chuàng)建Nios II 系統(tǒng)模塊(
35、1) 點擊ToolsMegaWizard Plug-In Manager,出現(xiàn)MegaWizard Plug-In Manager向?qū)age1窗口,點擊next創(chuàng)建Nios II 系統(tǒng)模塊(2) 在MegaWizard Plug-In Manager Page2 窗口中的IO下面選擇ALTPLL,器件選擇Cyclone II,輸出文件類型選擇VHDL,文件名為ssram_pll,選中Return to this page for another create operation,然后點擊Next,出現(xiàn)MegaWizard Plug-In Manager-ALTPLL Page 3of 10;
36、創(chuàng)建Nios II 系統(tǒng)模塊(3)在窗口中,做如圖選擇,點擊next,進(jìn)入page 4(4)在page 4中不作任何配置,直接點擊next;創(chuàng)建Nios II 系統(tǒng)模塊(5)點擊next創(chuàng)建Nios II 系統(tǒng)模塊(6)在Page 6 窗口中,設(shè)置c0輸出時鐘,首先選中Use this clock選項,設(shè)置時鐘頻率為85MHz,占空比為50%。點擊Next會進(jìn)入c1輸出時鐘的設(shè)置;創(chuàng)建Nios II 系統(tǒng)模塊(7) 嵌入式PLL可提供3個輸出時鐘,我們使用其中的兩個,Page 7 窗口中,在c1時鐘的設(shè)置頁面上,選中Use this clock選項,設(shè)置時鐘頻率為85MHz,點擊Next;創(chuàng)建
37、Nios II 系統(tǒng)模塊創(chuàng)建Nios II 系統(tǒng)模塊(8)在MegaWizard Plug-In Manager-ALTPLL Page 8 of 10窗口中,不選中Use this clock選項,即我們不使用c2時鐘,點擊Next; (9)在MegaWizard Plug-In Manager-ALTPLL Page 9 of 10窗口中,給出了用于仿真必須要產(chǎn)生的文件,點擊Next; (10)在MegaWizard Plug-In Manager-ALTPLL Page 10 of 10窗口中,給出了用戶選擇要產(chǎn)生的文件,不做改變,采用默認(rèn)配置,點擊Finish完成PLL的生成。 在頂層
38、實體的bdf窗口中雙擊鼠標(biāo),出現(xiàn)Symbol添加窗口,在project下面選擇剛才建立的ssram_pll,點擊OK。ssram_pll的輪廓會附著在鼠標(biāo)上,點擊bdf窗口的空白處,將嵌入式鎖相環(huán)加入到了工程中。引腳添加的步驟如下:引腳添加的步驟如下: (1)在頂層實體的bdf窗口的空白處雙擊鼠標(biāo),出現(xiàn)Symbol添加窗口(2)在alteraquartuslibraries下面選擇primitives,再在其下選擇pin,在其中有三種類型的引腳,有bidir,input,output,分別為雙向、輸入和輸出引腳,選擇相應(yīng)類型的引腳,點擊OK。 (3)點擊bdf窗口的空白處,即將引腳加入到了工程
39、中。(4)重復(fù)上面的步驟添加為各個端口添加相應(yīng)類型的引腳。創(chuàng)建Nios II 系統(tǒng)模塊連接引腳和命名引腳連接引腳和命名引腳 第一個加入的引腳的名稱缺省為pin_name,之后加入的引腳名稱依次為pin_name1,pin_name2向上遞增,為了便于理解和記憶,需要對引腳重新命名,使其和其傳輸?shù)男盘柭?lián)系起來。 命名引腳的方法如下: (1) 雙擊引腳的“pin_namen”部分,pin_namen的文字變成高亮,可以對其編輯。 (2) 對其他的引腳重復(fù)以上的操作,修改成具有意義的名字。 (3) 對于總線型的引腳,引腳名稱之后要標(biāo)識出總線的位數(shù),如ddr_a12.0,在引腳名稱之后加上方括號,然后
40、寫上最高位和最低位,用兩個.隔開。 (4)將嵌入式鎖相環(huán)和系統(tǒng)模塊等連接起來,并將引腳連接到相應(yīng)的端口上。創(chuàng)建Nios II 系統(tǒng)模塊連接好的頂層模塊圖設(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)。面積與速度的優(yōu)化面積與速度的優(yōu)化打開我們剛才的工程clock,然后選擇Assignment菜單下的Settings命令,
41、彈出設(shè)置窗口。在對話框的左邊的Category欄下,列出了很多可設(shè)置的對象,包括EDA Tools Settings、Compilation Process Settings、Analysis & Synthesis Settings、Fitter Settings、Timing Settings、Simulation Settings等等,選中要設(shè)置的項目,窗口的右邊顯示供設(shè)置的選項和參數(shù)。在Analysis & Synthesis Settings頁面,用于對設(shè)計在分析與綜合時的優(yōu)化設(shè)置。在該頁面的Optimization Techniques欄中,提供了Speed、Bal
42、anced和Area3種優(yōu)化選擇,其中Balanced是軟件缺省的優(yōu)化選擇。如果對Speed或Area有特殊的要求,則選中相應(yīng)的選項。設(shè)計優(yōu)化時序約束與設(shè)置時序約束與設(shè)置選擇Settings下面的Timing Analysis Settings,然后選擇Classic Timing Analyzer Settings。在此頁面中,可以對設(shè)計的延遲約束、時鐘頻率等做設(shè)置。延遲約束(Delay Requirements)設(shè)置包括tsu(建立時間)、tco(時鐘到輸出的延遲)、tpd(傳輸延遲)和th(保持時間)的設(shè)置。一般來說,用戶要根據(jù)目標(biāo)芯片的特性及PCB板走線的實際情況,給出設(shè)計需要滿足的時
43、鐘頻率、建立時間、保持時間和傳輸延遲時間等參數(shù)。對一些簡單的應(yīng)用,對時序要求不嚴(yán)格 ,可以不做設(shè)置。設(shè)計優(yōu)化Fitter設(shè)置設(shè)置在Ssettings對話框中,用鼠標(biāo)左鍵單擊Category欄目中的Fitter Settings項,出現(xiàn)Fitter Settings設(shè)置頁面。此頁面用于布局布線器的控制。 在這里需要設(shè)置的主要是布局布線的策略(Fitter Effort),有三種模式可供選擇:標(biāo)準(zhǔn)模式(Standard Fit)、快速模式(Fast Fit)和自動模式(Auto Fit)。標(biāo)準(zhǔn)模式需要的時間比較長,但可以實現(xiàn)較高的最高頻率(fmax);快速模式可以節(jié)省50%的編譯時間,但會使最高頻
44、率有所降低;自動模式在達(dá)到設(shè)計要求的條件下,自動平衡最高頻率和編譯時間。編譯Quartus II編譯器由一系列處理模塊組成,包括分析與綜合、適配、匯編和時序分析等環(huán)節(jié)。通過Quartus II編譯器,可以檢查設(shè)計錯誤,綜合邏輯,把設(shè)計配置到FPGA中去,并且為模擬、時序分析及器件配置生成輸出文件。 1. 分析與綜合 在編譯過程中,首先對設(shè)計文件進(jìn)行分析和檢查,如檢查原理圖的信號線有無漏接、信號有無雙重來源、硬件描述語言文件中有無語法錯誤等,如存在錯誤,編譯器會給出出錯信息并標(biāo)出出錯位置,供設(shè)計者修改,如果設(shè)計文件不存在錯誤,接著進(jìn)行綜合,綜合完成的是設(shè)計邏輯到器件資源的映射。 2. 適配 適配
45、完成的是設(shè)計邏輯在器件中的布局和布線、選擇適當(dāng)?shù)膬?nèi)部互聯(lián)路徑、引腳分配、邏輯元件分配等操作??梢栽O(shè)置適配的多個選項,來采取不同的優(yōu)化策略。 編譯3. 匯編 適配完成后,進(jìn)入編程環(huán)節(jié)。在編程過程中,生成器件的編程映像文件,映像文件可以通過電纜下載到目標(biāo)芯片中。4. 時序分析 在適配完成之后,設(shè)計邏輯在器件中的布局和布線、內(nèi)部互聯(lián)路徑已經(jīng)確定,在時序分析中,會計算給定設(shè)計在器件中延時,完成時序分析和邏輯的性能分析。用戶可以預(yù)先設(shè)置Timing requirement,可以針對整個的工程、特定的設(shè)計實體、節(jié)點和引腳指定所需的速度性能。編譯過程中會針對設(shè)置進(jìn)行適配。 編譯一、編譯設(shè)置一、編譯設(shè)置 在編
46、譯前,用戶可以設(shè)置編譯器,可以實現(xiàn)對編譯過程控制的目的。編譯器根據(jù)相應(yīng)的設(shè)置進(jìn)行編譯。合理的設(shè)置可以提高工程編譯的速度,優(yōu)化器件的資源利用等。 單擊Assignments菜單中的Settings,出現(xiàn)下圖的窗口。編譯在Device中,用戶可以設(shè)置和器件有關(guān)的選項,F(xiàn)PGA的芯片通常在建立項目的時候就已經(jīng)選擇好了,所以通常不做修改。注意在編譯之前必須要對未使用的引腳做設(shè)置,將未使用的引腳設(shè)置成As inputs,tri-stated。如果不做此項配置設(shè)計可能無法在開發(fā)板上運行。設(shè)置未使用的引腳按照下面的步驟: (1) 在Settings對話框中的Device頁中,單擊Device and Pin
47、 Options,出現(xiàn)Device and Pin Options對話框,缺省是General頁。編譯(2)單擊Unused Pins標(biāo)簽,在Reserve all unused pins下選擇,As inputs,tri-stated。 (3)在Device and pins options中,其他的設(shè)置可以選用默認(rèn)的設(shè)置,不做修改,點擊確定。編譯 設(shè)計優(yōu)化也是編譯設(shè)置的一部分,但是為了強調(diào)設(shè)計優(yōu)化的重要性,把它們單獨提出來介紹了,除了這些設(shè)置之外,還有下面的一些設(shè)置跟編譯的過程有關(guān): 在EDA Tools中,用戶可以指定在編譯過程中用到的其他第三方的工具軟件,通常不用設(shè)定。 在Compil
48、ation Process Settings中,用戶可以設(shè)置編譯過程的一些選項,如是否使用增量編譯等。 在Timing Analyzer中,用戶可以設(shè)置時序分析報告中顯示的內(nèi)容。 在Assembler中,指定匯編的選項。編譯二、引腳分配二、引腳分配 用戶需要進(jìn)行引腳分配,使得編譯器能把用戶設(shè)計中的信號分配到目標(biāo)器件上的特定引腳上。Quartus II 提供了兩種引腳分配方法: 一種是使用Assignments Editor來分配,方法為選擇Assignments菜單中的pins或者Assignments Editor; 第二種方法是使用TCL腳本一次性分配所有的引腳。編譯采用第一種方法即使用Assignments Editor進(jìn)行引腳分配步驟如下: (1)選擇選擇Assignments菜單中的pins或者Assignments Editor。 (2)在Node Name下輸入引腳名稱,在Location選擇相應(yīng)的引腳。 (3)選擇FileSa
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目部駐地裝修工程合同范本
- 卡車承運合同范本
- 農(nóng)業(yè)路燈采購合同范本
- 分包土方合同范本
- 化工車間采購合同范本
- 動漫聯(lián)名服務(wù)合同范本
- 公對公借貸合同范本
- 冰棍合同范本
- 賣酒銷售合同范例
- 分期付款購車合同范本
- 中藥貼敷療法
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫各版本
- DZ∕T 0054-2014 定向鉆探技術(shù)規(guī)程(正式版)
- 頭療加盟方案
- 間質(zhì)性腎炎課件
- 院感基礎(chǔ)知識培訓(xùn)
- 《建筑工程質(zhì)量與安全管理》教案
- 19J102-1 19G613混凝土小型空心砌塊墻體建筑與結(jié)構(gòu)構(gòu)造
- 建筑垃圾清運及處置 投標(biāo)方案(技術(shù)方案)
- 2024年常州信息職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 《中國陶瓷史》課件-1-中國陶瓷史概述
評論
0/150
提交評論