差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
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灯按照一定的顺序,交替闪烁。 | ||
- | #### 实验内容 | ||
- | #### 实验原理 | ||
- | #### 程序设计 | ||
- | #### 仿真结果 | ||
- | #### 演示程序文件说明 | ||
- | #### 演示程序使用 |