差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
book_excise_nios [2021/08/23 16:59] zili |
book_excise_nios [2021/08/24 14:35] (当前版本) zili |
||
---|---|---|---|
行 2: | 行 2: | ||
### 1. 实验内容 | ### 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. 实验步骤 |
+ | #### 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模块}} |
- | ### 3. 程序设计 | + | <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 编译运行程序}} |
- | ### 4. 仿真结果 | + | <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> |
- | ### 5. 演示程序文件说明 | + | **图21-8 CPU配置图** |
- | + | </WRAP> | |
- | + | ||
\\ | \\ | ||
\\ | \\ | ||
- | ### 6. 演示程序使用 | + | ### 3. 实验结果 |
- | + | 实验板上LEDG7-0灯按照一定的顺序,交替闪烁。 | |