420 likes | 691 Views
FPGA 和 SOPC 应用 ——SOPC 系统. 华中科技大学启明学院电工电子科技创新中心 王贞炎. 内容. SOPC 和 Nios2 介绍 SOPC 系 统( Nios2 处理器系统)设 计 Nios2 处理 器 ( 含 JTAG 调试接 口 ) System ID JTAG-UART 易失性存储器 非易失性存储器 PIO 在 Quartus 工程中使用 Nios2 处理器系统. SOPC 和 Nios2 介绍. SOPC System On Programmable Chip 使用 Quartus 中的 SOPC Builder 工具设计
E N D
FPGA和SOPC应用——SOPC系统 华中科技大学启明学院电工电子科技创新中心 王贞炎
内容 • 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处理器核
SOPC系统设计 • 添加Nios2处理器核
SOPC系统设计 • 添加Nios2处理器核
SOPC系统设计 • 添加Nios2处理器核
SOPC系统设计 • 添加Nios2处理器核
SOPC系统设计 • 添加Nios2处理器核
SOPC系统设计 • 添加Nios2处理器核
SOPC系统设计 • 添加System ID(用于软硬件同步)
SOPC系统设计 • 添加System ID(用于软硬件同步)
SOPC系统设计 • 添加JTAG UART(在JTAG调试接口上虚拟的串口)
SOPC系统设计 • 添加SDRAM控制器
SOPC系统设计 • 添加SDRAM控制器
SOPC系统设计 • 添加CFI控制器
SOPC系统设计 • 添加CFI控制器
SOPC系统设计 • 为CFI控制器添加Tri-state Bridge
SOPC系统设计 • 为CFI控制器添加Tri-state Bridge
SOPC系统设计 • 添加PIO
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系统 • 连接好的系统 • 注意Flash地址的连接——DE0使用的Flash芯片为16位数据,其地址为(16bit)地址,而Nios2系统给出的地址为字节地址 • 注意复位信号的连接
使用SOPC系统 • 采用tcl脚本分配引脚(Tools – TclScripts)
使用SOPC系统 • 编译