差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
book_excise_nios [2020/11/01 14:03]
gongyu 创建
book_excise_nios [2021/08/24 14:35] (当前版本)
zili
行 1: 行 1:
-### NIOS II系统入门实验+## NIOS II系统入门实验 
 + 
 +### 1. 实验内容 
 +通过本实验熟悉SOPC Builder和NIOS IDE的开发环境及开发流程,了解NIOS II的基本结构,能够利用SOPC Builder和NIOS IDE实现简单的NIOS II系统和应用程序。 
 + 
 +本实验要求利用SOPC Builder创建一个简单的NIOS II系统,这个简单的NIOSII 系统括NIOS核、片内SRAM及PIO口;利用NIOS II IDE创建一个简单应用程序,能够点亮核心板上的LED等。 
 + 
 +\\ 
 +\\ 
 +### 2. 实验步骤 
 +#### 2.1 NiosⅡ硬件设置 
 +1. 工程建立:首先在Quartus II中新建一个名为nios的工程,点击{{ ::​图标.png |}}图标。出现SOPC Builder对话框。在System Name对话框里设置Nios系统名nios_cpu。HDL语言选择Verilog,如图21-1所示。 
 +{{ ::​图21-1.png |图21-1 SOPC Builder对话框}} 
 +<WRAP centeralign>​ 
 +**图21-1 SOPC Builder对话框** 
 +</​WRAP>​ 
 + 
 +2. SOPC组建添加:将Avalon Components中的选项中组建添加到自己的工程中,具体方法是将相关的组建拖进右边的对话框中,如图21 2所示。主要有Nios II Processor, Memory中的onchip_memory和Other里面的PIO。这里还需要会组建进行设置:​ 
 + 
 +a) 双击Nios II Processor,选择Nios Ⅱ/​e型,点击Finish。\\ 
 +b) 双击On-Chip Memory(RAM or ROM),Memory Type中选择RAM,Size中Memory Width选择32bits,Total Memory Size中选择48Kbytes,其余选项默认,点击Finish。\\ 
 +c) 双击PIO(Parall I/​O),选项默认,点击Finish。\\ 
 +右键单击pio_0选择Rename,改名为LED_PIO。\\ 
 +d) 点击System下拉菜单的Auto-Assign Base Addresses,已完成Nios Ⅱ中各个模块的基地址分配,以上步骤完成。 
 + 
 +{{ ::​图21-2.png |图21-2 nios系统配置}} 
 +<WRAP centeralign>​ 
 +**图21-2 nios系统配置** 
 +</​WRAP>​ 
 + 
 +e) 点击System Generation,点击Generation,启动SOPC Builder生成你所选择的模块的HDL代码。 
 + 
 +3. 返回QUARTUS Ⅱ,新建nios.bdf文件,添加刚建的nios_cpu,并添加相应输入输出引脚,并为输入输出引脚分配相应的FPGA管脚,完成如图21 3,保存。编译通过BLASTER下载到FPGA内。 
 +{{ ::​图21-3.png |图21-3 生成nios模块}} 
 +<WRAP centeralign>​ 
 +**图21-3 生成nios模块** 
 +</​WRAP>​ 
 + 
 +启动nios II IDE后,会让你输入workspace,​选择刚才新建的NIOS工程所在的目录,假设存在E:​\nios中,点击OK进入。如果在这里没有选,也可以在进入IDE后选择File→Switch workspace中选择。无论何种方式,最好在进入之后选择File→Switch workspace看目录选择是否正确(图21-4)。 
 + 
 +{{ ::​图21-4.png |图21-4 切换工作目录}} 
 +<WRAP centeralign>​ 
 +**图21-4 切换工作目录** 
 +</​WRAP>​ 
 + 
 +4. 进入Nios II IDE,新建NiosⅡ C/C++ Application。点击下一步,在Name中输入项目的名字hello_led,在Select Project Template中选择Hello LED,在SOPC Builder System中选择NIOS所在的目录下的.ptf文件,其余默认,点击Finish,如图21-5所示。 
 +{{ ::​图21-5.png |图21-5 建立Hello Led程序}} 
 +<WRAP centeralign>​ 
 +**图21-5 建立Hello Led程序** 
 +</​WRAP>​ 
 + 
 +5. 在QUARTUS Ⅱ将Nios下载硬核到FPGA,然后进入Nios II IDE,在NiosⅡ C/C++ Projects里找到新建的hello_led,点击右键选择【Run As】→【NiosⅡ Hardware】(图21-6),此时可以看到LED灯在闪烁。 
 +{{ ::​图21-6.png |图21-6 ​ 编译运行程序}} 
 +<WRAP centeralign>​ 
 +**图21-6 ​ 编译运行程序** 
 +</​WRAP>​ 
 + 
 +注意:在这里我们使用的是Nios II中的软件模板,程序中对PIO口的定义是LED_PIO,​如图 21-7所示。 
 + 
 +{{ ::​图21-7.png |图21-7 Hello led源代码}} 
 +<WRAP centeralign>​ 
 +**图21-7 Hello led源代码** 
 +</​WRAP>​ 
 + 
 +所以在SOPC组建中PIO的名字一定要与之对应。 如图21-8所示。 
 + 
 +{{ ::​图21-8.png |图21-8 CPU配置图}} 
 +<WRAP centeralign>​ 
 +**图21-8 CPU配置图** 
 +</​WRAP>​ 
 + 
 +\\ 
 +\\ 
 +### 3. 实验结果 
 +实验板上LEDG7-0灯按照一定的顺序,交替闪烁。
  
-#### 实验内容 
-#### 实验原理 
-#### 程序设计 
-#### 仿真结果 
-#### 演示程序文件说明 
-#### 演示程序使用