380 likes | 585 Views
Nios2 小系统 —— 实验一 . 搭建 Nios2 小系统. 华中科技大学启明学院电工电子科技创新中心 王贞炎. 实验内容. 实验名称 SOPC Builder 和 Nios2 处理器小系统的搭建 预备 知识 Quartus II 软件使用,单片机 / 微机原理 实验 目的 了解 SOPC 系统的一般结构,学会使用 SOPC Builder 软件搭建 Nios2 处理器小系统 实验 内容及 方法 学习 SOPC 系统和 Nios2 处理器的基础知识,学习 SOPC Builder 的使用 ;
E N D
Nios2小系统——实验一. 搭建Nios2小系统 华中科技大学启明学院电工电子科技创新中心 王贞炎
实验内容 • 实验名称 • SOPC Builder和Nios2处理器小系统的搭建 • 预备知识 • QuartusII软件使用,单片机/微机原理 • 实验目的 • 了解SOPC系统的一般结构,学会使用SOPC Builder软件搭建Nios2处理器小系统 • 实验内容及方法 • 学习SOPC系统和Nios2处理器的基础知识,学习SOPC Builder的使用; • 使用SOPC Builder创建一个Nios2处理器小系统,包含处理器、调试器、存储系统和输入输出接口。
讲解内容 • SOPC和Nios2介绍 • SOPC系统(Nios2处理器系统)设计 • Nios2处理器(含JTAG调试接口) • System ID • JTAG-UART • 易失性存储器 • 非易失性存储器 • PIO • 在Quartus工程中使用Nios2处理器系统
SOPC和Nios2介绍 • SOPC • System On Programmable Chip • 使用Quartus中的SOPC Builder工具设计 • SOPC系统里一般需要包含Nios2核——Nios2处理器系统 • Nios2处理器 • 软核(用户可配置)处理器 • 使用Nios2 SBT(Software Builder Tools)工具开发软件 • 命令行编译、链接、调试工具 • Eclipse for Nios2集成开发环境
Flash CPU CPU I/O I/O I/O I/O I/O I/O SDRAM DSP DSP FPGA FPGA SOPC和Nios2 • SOPC的优点 用可编程逻辑器件代替外部设备
Nios II CPU UART Cache GPIO Debug Avalon Switch Fabric On-Chip ROM Timer SPI On-Chip RAM SDRAM Controller FPGA SOPC和Nios2介绍 • Nios2处理器系统 • Nios2处理器核 • 片上设备(SOPC组件) • PIO、UART、SPI、Timer…… • 片上存储器(SOPC组件) • RAM • 片外存储器控制器(SOPC组件) • SDRAM控制器、DDR SDRAM控制器、CFI控制器、EPCS控制器…… • 片外存储器 • SRAM、SDRAM、DDR SDRAM、NorFlash、EPCS……
UART 0 Timer 0 SPI 0 GPIO 0 DMA 0 MemoryInterface User-Defined SOPC和Nios2介绍 • 典型Nios2系统结构 Instr. On-Chip Debug Core Nios II CPU AddressDecoder Avalon Master/ Slave PortInterfaces Data InterruptController Wait StateGeneration Data inMultiplexer Off-Chip Software Trace Memory Master Arbitration Clock Domain Crossing DynamicBus Sizing Avalon Switch Fabric
SOPC系统设计 • 设计流程
SOPC系统设计 • 设计流程 • 使用Quartus软件建立FPGA工程 • 注意必要的设置,并添加时序约束文件 • 使用SOPC Builder工具设计SOPC系统 • 在FPGA工程中调用SOPC系统 • 在FPGA工程中编写其它逻辑 • 编译工程
SOPC系统设计 • 启动SOPC Builder,为新建的SOPC系统命名
SOPC系统设计 • 更改系统时钟频率,例如:66.666667MHz
SOPC系统设计 • 添加Nios2处理器核 • Core Nios II 页
SOPC系统设计 • 添加Nios2处理器核 • Cache and Memory Interfaces页保持默认 • Advanced Features页保持默认 • MMU and MPU Settings页保持默认
SOPC系统设计 • 添加Nios2处理器核 • JTAG Debug Module 页
SOPC系统设计 • 添加Nios2处理器核 • Custom Instructions 页保持默认
SOPC系统设计 • 添加Nios2处理器核
SOPC系统设计 • 添加System ID(用于软硬件同步)
SOPC系统设计 • 添加System ID(用于软硬件同步)
SOPC系统设计 • 添加JTAG UART(在JTAG调试接口上虚拟的串口)
SOPC系统设计 • 添加SDRAM控制器
SOPC系统设计 • 添加SDRAM控制器
SOPC系统设计 • 添加EPCS控制器
SOPC系统设计 • 添加PIO
SOPC系统设计 • 添加完外设的Nios2系统
SOPC系统设计 • 更改Nios2核的复位地址和异常地址 • 复位地址:启动或复位时处理器取指的初始地址,应设置到非易失性存储器 • 异常地址:系统异常向量表的初始地址,应设置到易失性存储器
SOPC系统设计 • Nios2处理器系统与51单片机的存储空间区别 • 程序运行空间 • 51单片机的程序运行空间位于Flash存储器 • Nios2处理器运行速度快,取指和取数据速度快,一般的Flash不能满足其需求,因此需要像SRAM或SDRAM这样的速度较快的存储器作为程序运行空间 • Nios2处理器的异常向量位于程序运行空间的前端,因此指定异常向量的地址就是指定了程序运行空间 • 程序存储空间 • Nios2处理器采用SRAM或SDRAM作为程序运行空间,但是SRAM和SDRAM都是易失性的,因此还需要像Flash这样的非易失性存储器存储程序。上电复位时,Nios2处理器先将程序从存储空间复制到运行空间,然后再从运行空间中运行 • 地址空间 • 51单片机有诸如sfr、data、idata、xdata、code等存储空间,各存储空间独立编址 • Nios2处理器所有的存储器和外设的控制寄存器全部统一编址到2GB的空间
SOPC系统设计 • 自动分配外设基地址(System - Auto-Assign Base Addresses)
SOPC系统设计 • 生成SOPC系统
使用SOPC系统 • 添加新生成的SOPC模块
使用SOPC系统 • 为SDRAM的时钟添加PLL
使用SOPC系统 • 设置锁相环
使用SOPC系统 • 设置锁相环
使用SOPC系统 • 设置锁相环
使用SOPC系统 • 设置锁相环
使用SOPC系统 • 设置锁相环
使用SOPC系统 • 连接好的系统 • 注意添加引脚 • 注意复位按键和FPGA内部复位信号的连接
使用SOPC系统 • 采用tcl脚本分配引脚(Tools – Tcl Scripts) • 需事先在工程目录中准备好DE0Nano的引脚分配文件
使用SOPC系统 • 编译 • 编译整个工程,查看编译报告(Ctrl + R)