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調用模塊
-
啟動Qsys 工具,進行IP模塊的調用。單擊 Tools -> Qsys
,進入Qsys設置界面。系統已經默認添加了時鍾模塊,名稱為 clk_0 ,這里選中 clk_0,右擊,選擇Rename,將其名稱更改為clk。以下再添加任何模塊,都要進行類似的名稱更改,更改名稱的方法類似,就不在重復敘述了。
-
添加軟核處理器的各部分模塊。總共需要添加
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,結束當前配置。
-
下面添加片內存儲器,在元件庫中搜索 On Chip Memory。雙擊進行設置。主要設置Size中的Data width和Total memoy size。Data width設置的是數據位寬,這里設置成16位。Total memoy size設置的是片內資源的大小,需要根據芯片資源進行合理設置,這里設置為10240 bytes。單擊 Finish,結束當前配置。
-
添加Jtag下載調試接口。在元件庫中搜索 jtag uart。雙擊進行設置。由於系統沒有特殊要求,因此這里選擇默認配置即可。單擊 Finish 結束當前配置。
-
添加系統ID模塊。系統ID是系統與其他系統區別的唯一標識。在元件庫中搜索 system id peripheral,雙擊進行設置。這里隨便進行設置,如設置為123。單擊 Finish,結束當前配置。
-
連線,即將右面 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相連。
-
設置復位信號。
-
處理器nios2的中斷和jtag_uart的中斷相連接。
-
進行軟核的相關設置。首先雙擊nios2,進入處理器設置模塊。在Core Nios II欄目下,將Reset vector memory 和 Exception vector memory 設置為onchip_memory.s1。
-
單擊 System -> Assign Base Addresses,這時候會發現下部Messages窗口中原先的錯誤全部沒有了,變為0 Errors,0 Warnings。如果不是這個結果,返回去按步驟檢查。
-
單擊 File -> Save,進行保存,這里保存文件名為hello_world。
-
最后,選擇Generation選項卡,設置Create simulation model為None,然后單擊下面的Generate,進行生成。時間較長,大家耐心等待。
- 完成后單擊close即可,然后關閉Qsys回到Quartus II界面。
原理圖添加IP模塊
-
添加niosII核
雙擊Block1.bdf的空白處,打開Symbol對話框。選擇project
-
添加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中即可。
-
連接、添加引腳
雙擊打開Symbol對話框,在Name中and2,添加與門。
點擊選擇要添加引腳的模塊,右擊,選擇generate pins for symbol ports。
對引腳進行重命名,如下所示:
-
單擊 Project -> Add/Remove Files in Project…,單擊File name后面的瀏覽按鈕,選擇.qsys文件,單擊Add將其添加進來,然后單擊OK。
-
配置引腳
首先,進行編譯
,然后采用腳本文件進行配置,toolsàtcl scripts;
-
設置工程參數
設置AS配置器件EPCS4
設置雙用引腳;
-
綜合
,由於時間較長,請耐心等待。
大西瓜FPGA-->https://daxiguafpga.taobao.com
博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!
每日推送不同科技解讀,原創深耕解讀當下科技,敬請關注微信公眾號“科乎”。