nios II--實驗1——hello_world硬件部分


hello_world

硬件開發

新建原理圖

1、打開Quartus II 11.0,新建一個工程,File -> New Project Wizard…,忽略Introduction,之間單擊 Next> 進入下一步。分別設置工程工作目錄、工程名稱。這里需要注意的是工程工作目錄中請使用英文,不要含有空格等,否則在后面使用Nios II IDE的時候會出現問題。設置好后如圖1所示。然后進行下一步。

2、添加已經存在的文件,這里沒有需要添加的文件,直接單擊 Next> 進入下一步。進行器件設置。板子使用的是 Cyclone IV家族的 EP4CE6E22C8芯片,選擇好后直接進入下一步。進行EDA工具設置,由於工程中不進行仿真等,故不進行設置,如果需要進行ModelSim仿真,則在Simulation行中,選擇Tool Name 為ModelSim-Altera(這里根據所安裝的ModelSim版本進行選擇),Format(s)選擇為Verilog HDL(這里也是根據所掌握的硬件描述語言進行選擇)。點擊 Next> ,進入了Summary(摘要)頁面,然后單擊 Finish 完成即可。

3、新建 Block Diagram/Schematic File (方塊圖/原理圖文件)。單擊 File -> New..,選擇Design Files中的Block Diagram/Schematic File,單擊OK即可。

QSys調用模塊

  1. 啟動Qsys 工具,進行IP模塊的調用。單擊 Tools -> Qsys  ,進入Qsys設置界面。系統已經默認添加了時鍾模塊,名稱為 clk_0 ,這里選中 clk_0,右擊,選擇Rename,將其名稱更改為clk。以下再添加任何模塊,都要進行類似的名稱更改,更改名稱的方法類似,就不在重復敘述了。

  2. 添加軟核處理器的各部分模塊。總共需要添加

Nios II Processor、

On_ChipMemory(RAM or ROM)、

JTAG UART、

System ID Peripheral這4個模塊。首先熟悉一下 Qsys 的界面。左面Component Library,是系統提供的元件庫,里面有一些構成處理器的常用模塊。右面是已經添加到系統的模塊,也就是說,Nios II 軟核處理器是可以定制的,根據具體需要來。在Component Library中搜索Nios II Processor,雙擊即可進行配置。首先需要選擇的是Nios II 核心的類型。Nios II 軟核的核心共分成三種,為e型、s型以及f型。e型核占用的資源最少,功能也最簡單,速度最慢。s型核占用資源其次,功能和速度較前者都有所提升,f型核的功能最多,速度最快,相應的占用資源也最多,選擇的時候根據需求和芯片資源來決定,這里選擇s核。然后單擊 Finish,結束當前配置。

 

 

  1. 下面添加片內存儲器,在元件庫中搜索 On Chip Memory。雙擊進行設置。主要設置Size中的Data width和Total memoy size。Data width設置的是數據位寬,這里設置成16位。Total memoy size設置的是片內資源的大小,需要根據芯片資源進行合理設置,這里設置為10240 bytes。單擊 Finish,結束當前配置。

  1. 添加Jtag下載調試接口。在元件庫中搜索 jtag uart。雙擊進行設置。由於系統沒有特殊要求,因此這里選擇默認配置即可。單擊 Finish 結束當前配置。

  2. 添加系統ID模塊。系統ID是系統與其他系統區別的唯一標識。在元件庫中搜索 system id peripheral,雙擊進行設置。這里隨便進行設置,如設置為123。單擊 Finish,結束當前配置。

  1. 連線,即將右面 Connections欄目中的相關線通過設置節點進行連接。首先所有模塊的clk連接起來。

    然后片內存儲器On-Chip Memory的s1和處理器nios2的data_master和instruction_master相連。

    JTAG調試模塊jtag_uart的avalon_jtag_slave和處理器nios2的data_master相連。

    系統ID模塊sysid_qsys的control_slave和處理器nios2的data_master相連。

  2. 設置復位信號。

  1. 處理器nios2的中斷和jtag_uart的中斷相連接。

     

  2. 進行軟核的相關設置。首先雙擊nios2,進入處理器設置模塊。在Core Nios II欄目下,將Reset vector memory 和 Exception vector memory 設置為onchip_memory.s1。

  3. 單擊 System -> Assign Base Addresses,這時候會發現下部Messages窗口中原先的錯誤全部沒有了,變為0 Errors,0 Warnings。如果不是這個結果,返回去按步驟檢查。

  4. 單擊 File -> Save,進行保存,這里保存文件名為hello_world。
  5. 最后,選擇Generation選項卡,設置Create simulation model為None,然后單擊下面的Generate,進行生成。時間較長,大家耐心等待。

  6. 完成后單擊close即可,然后關閉Qsys回到Quartus II界面。

原理圖添加IP模塊

  1. 添加niosII核

    雙擊Block1.bdf的空白處,打開Symbol對話框。選擇project

  2. 添加PLL

    單擊右下角的MegaWizard Plug-In Manager…,進入宏模塊調用界面。

    選擇Creat a new custom megafunction variation,單擊 Next> 進入下一步,在What name do you want for the output file下面的地址后面添加輸出文件的名稱PLL。然后在右側搜索框中搜索ALTPLL,選中即可,這一步主要為系統添加時鍾模塊,然后單擊 Next>進入下一步。

    彈出ALTPLL設置對話框,這里在 General欄目的What is the frequency of the inclk0 input?地方,將時鍾更改為50MHz。

    接着按照以下流程進行設置:

    接着一直默認設置,一直next到一下窗口,點擊Finish。

    這時會彈出一個Quartus II IP Files對話框,單擊Yes完成即可,不需要進行任何操作。然后單擊Symbol對話框中的OK即可,然后將模塊放在Block1.bdf中即可。

  3. 連接、添加引腳

    雙擊打開Symbol對話框,在Name中and2,添加與門。

    點擊選擇要添加引腳的模塊,右擊,選擇generate pins for symbol ports。

    對引腳進行重命名,如下所示:

  4. 單擊 Project -> Add/Remove Files in Project…,單擊File name后面的瀏覽按鈕,選擇.qsys文件,單擊Add將其添加進來,然后單擊OK。

  5. 配置引腳

    首先,進行編譯,然后采用腳本文件進行配置,toolsàtcl scripts;

  6. 設置工程參數

    設置AS配置器件EPCS4

    設置雙用引腳;

  7. 綜合 ,由於時間較長,請耐心等待。

大西瓜FPGA-->https://daxiguafpga.taobao.com

博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!

每日推送不同科技解讀,原創深耕解讀當下科技,敬請關注微信公眾號“科乎”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM