sopc复习资料.doc_第1页
sopc复习资料.doc_第2页
sopc复习资料.doc_第3页
sopc复习资料.doc_第4页
sopc复习资料.doc_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IC:是半导体元件产品的统称,包括:集成电路、三极管、特殊电子元件。ASIC:专用IC。是指为特定的用户、某种专门或特别的用途而设计的芯片组。SOC:片上系统。随IC设计与工艺的提高,使原先由许多IC组成的电子系统可集成到一个芯片上,构成SOC。SOPC:可编程的片上系统。是Altera公司提出来的一种灵活、高效的SOC解决方案。也可认为是基于FPGA解决方案的SOC。EDA:电子设计自动化 。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 Quartus II:是Altera公司的第四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能SOPC Builder:是功能强大的基于图形界面的片上系统定义和定制工具。SOPC Builder库中包括处理器和大量的IP核及外设Nios II:是Nios II系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以Nios II IDE下完成,包括编辑、编译和调试程序。集成电路发展过程:可编程片上系统(系统级),集成电路单元库(逻辑级),器件的物理版图设计(器件级)Sopc:System On Programmable Chip,可编程的片上系统。是Altera公司提出来的一种灵活、高效的SOC解决方案。SOPC将处理器、存储器、I/O、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统,现今SOPC可以认为是基于FPGA解决方案的SOC。与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色,构成SOPC的方案也有多种途径。构成SOPC的三种方案1. 基于FPGA嵌入IP硬核的SOPC系统 该方案是指在FPGA中预先植入处理器。最常用的是含有ARM32位知识产权处理器核的器件。为了到达通用性,必须为常规的嵌入式处理器集成诸多通用和专用的接口,但增加了成本和功耗。如果将ARM或其它处理器核以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源,按照系统功能需求来添加接口功能模块,既能实现目标系统功能,又能降低系统的成本和功耗。这样就能使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC系统。 IP硬核直接植入FPGA存在以下不足: IP硬核多来自第三方公司,FPGA厂商无法控制费用,从而导致FPGA器件价格相对偏高。 IP硬核预先植入,使用者无法根据实际需要改变处理器结构。更不能嵌入硬件加速模块(DSP)。 无法根据实际设计需要在同一FPGA中集成多个处理器。 无法根据实际设计需要裁减处理器硬件资源以降低FPGA成本。 只能在特定的FPGA中使用硬核嵌入式处理器。2基于FPGA嵌入IP软核的SOPC系统目前最有代表性的软核处理器分别是Altera公司的Nios II核,以及Xilinx公司的MicroBlaze核。特别是Nios II核,能很好的解决上述五方面的问题。 Altera的Nios II核是用户可随意配置核构建的32位嵌入式处理器IP核,采用Avalon总线结构通信接口;包含由FS2开发的基于JTAG的片内设备内核。 在费用方面,由于Nios II是由Alter公司直接提供而非第三方厂商产品,故用户通常无需支付知识产权费用,Nios II的使用费用仅仅是其瞻仰的FPGA逻辑资源的费用。3. 基于HardCopy技术的SOPC系统HardCopy就是利用原有的FPGA开发工具,将成功实现于FPGA器件上的SOPC系统通过特定的技术直接向ASIC转化,从而克服传统ASIC设计中普遍存在的问题。ASIC(SOC)开发中难于克服的问题包括:开发周期长、产品上市慢、一次性成功率低、有最少投片量要求、设计软件工具繁多且昂贵、开发流程复杂等。利用HardCopy技术设计ASIC,开发软件费用少,SOC级规模的设计周期不超过20周,转化的ASIC与用户设计习惯的掩模层只有两层,且一次性投片的成功率近乎100%,即所谓的FPGA向ASIC的无缝转化。用ASIC实现后的系统性能将必原来在HardCopy FPGA上验证的模型提高近50%,而功耗则降低40%。HardCopy技术是一种全新的SOC级ASIC设计解决方案,即将专用的硅片设计和FPGA至HardCopy自动迁移过程结合在一起的技术,首先利用Quartus II将系统模型成功实现于HardCopy FPGA上,然后帮助设计者把可编程解决方案无缝地迁移到低成本的ASIC上。这样,HardCopy器件就把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子产品上,从而避开了直接设计ASIC的困难。Nios II软核处理器:继Nios之后,2004年6月Altera公司又推出了性能更好的Nios II (32位)嵌入式软核处理器。Nios II 的特点:最大处理性能提高了3倍 CPU内核面积最大可缩小1/2 32位RISC嵌入式处理器具有超过200DMIP的性能,在低成本FPGA中实现成本只有35美分。 由于Nios II是软核形式,其可在多种系统设置组合中进行选择,满足成本和功能要求。 可延长产品生命周期,防止出现处理器逐渐过时的情况。基于Nios II处理器的嵌入式系统开发:使用Altera的Quartus II 软件、SOPC Builder工具以及Nios II IDE,用户可以轻松地完成基于Nios II处理器的嵌入式系统开发。并且利用SOPC Builder软件中的用户逻辑接口向导,用户还可以生成自己的定制外设,并将其集成在Nios II处理器系统中。Nios II 处理器系列包括三种内核(32位软核处理器)Nios II/f (快速)性能最高,但占用的逻辑资源最多Nios II/e (经济)占用的逻辑资源最少,但性能最低。Nios II/s (标准)平衡的性能和尺寸NiosII/s内核比第一代的Nios CPU更快,占用的资源更少。Nios II 嵌入式处理器的特点可配置嵌入式软核处理器的优势1. 提供合理的性能组合2. 提升系统的性能3. 降低系统成本4. 延长产品的生命周期2.Altera支持SOPC的FPGA:Cyclone 系列Cyclone II 系列Stratix 系列Stratix II 系列Cyclone系列:第一代Cyclone FPGA是在2002年12月分推出的。主要用于对成本敏感的设计中。Cyclone II系列:具有很高的性能和极低的功耗,而价格和ASIC相当,能够提Stratix系列:StratixFPGA为满足高带宽系统的需求进行了优化,具有非常高的内核性能、存储能力、架构效率,主要用于高端FPGA市场。供多种功能,为价格敏感的应用提供大批量产品解决方案。SOPC设计包括以Nios II软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、IDE环境的软件设计、软件调试等。SOPC的开发流程通常包括2个方面:基于Quartus II、SOPC Builder的硬件设计、基于NiosII IDE的软件设计。对于比较简单的NiosII系统,一个人便可执行所有设计。对于比较复杂的系统,硬件和软件设计可以分开进行。 SOPC的开发过程中要使用到Quartus II、SOPC Builder以及Nios II IDE三者之间关系如下:SOPC Builder:它是Nios II软核处理器的开发包,用于实现Nios II系统配置、生成以及与Nios II系统相关的监控和软件调试平台的生成;Nios II IDE:用于完成基于Nios II系统的软件开发和调试,并可借助其自带的Flash编程器完成对Flash以及EPCS的编程操作。QuartusII:用于完成Nios II系统的分析综合、硬件优化、适配、配置文件编程下载及硬件系统测试等; SOPC开发流程 硬件开发:用SOPC Builder软件从NiosII处理器内核和NiosII开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件,并定制和配置它们的功能;分配外设地址及中断号;设定复位地址;最后生成系统。用户也可以添加用户自身定制指令逻辑到NiosII内核以加速CPU性能;添加用户自己设计的IP模块。 将生成的Nios II系统集成到之前建立的Quartus II工程; Quartus II工程中可加入Nios II系统以外的逻辑。其可以是自身定制的硬件模块,也可以是从Altera或第3方IP供应商中得到的其它现成的知识产权设计模块。Quartus II软件用来选取具体的Altera FPGA器件型号,然后为Nios II系统上的各I/O口分配管脚。编译Quartus II工程,对HDL文件进行布局布线,从HDL源文件综合生成一个适合目标器件网表,生成FPGA配置文件(.sof); 用下载电缆(如 ByteBlaster II),将配置文件下载到目标板上。硬件校验完成后,可将新的硬件配置文件下载到目标板上的非易失存储器(如EPCS器件)。软件开发 软件开发使用Nios II IDE,它是一个基于Eclipse IDE架构的集成开发环境,它包括:GNU开发工具(标准GCC编译器,连接器,汇编器和makefile工具等);基于GDB的调试器,包括软件仿真和硬件调试;提供用户一个硬件抽象层HAL;提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持;提供帮助用户快速入门的软件模板;提供Flash下载支持(Flash Progrmmer 和QuartusII Programmer)软件开发流程:使用SOPC Builder生成系统后,可以直接使用Nios II IDE开始设计C/C+应用程序代码。Altera提供外设驱动程序和硬件抽象层(HAL),使用户能够快速编写与低级硬件细节无关的Nios II程序;除了应用代码,用户还可以在Nios II IDE 工程中设计和重新使用定制库。 即使在没有软件开发的目标板的情况下,也可以经过编译、连接后通过Nios II指令仿真器(ISS)运行和调试代码。 一旦有一个目标板,用户救可以使用下载电缆下载软件到目标板进行调试/运行简单SOPC实例开发任务及步骤:建立一个基于Nios II处理器的系统来控制一个LED灯闪烁步骤:分析系统需求。启动QuartusII软件和新建实例设计工程。启动新的SOPC Builder系统。在SOPC Builder中定义并生成系统。集成SOPC Builder系统到QuartusII工程。选择芯片型号并进行管脚分配。设置编译选项并编译硬件系统。下载硬件设计到目标FPGA。使用NiosII IDE开发用户程序。调试用户程序。运行程序。Nios II是一种软核(Soft-Core)处理器。所谓软核,是指未被固化在硅片上,使用时需要借助EDA软件对其进行配置并下载到可编程芯片(比如FPGA)中的IP核。软核最大的特点就是可由用户按需要进行配置。数据处理主要由算术逻辑单元完成,在现有的Nios II内核中暂时没有协处理器。用户逻辑接口用来连接用户定制的逻辑电路与Nios II内核。Nios II采用哈佛结构,数据总线和指令总线分开。为了调试方便,Nios II处理器集成了一个JTAG调试模块。为了提高系统的整体性能,Nios II内核不仅可以集成数据Cache和指令Cache,还带有紧耦合存储器TCM接口。TCM可以使Nios II处理器既能提高性能,又能获得可预测的实时响应。Nios II把外部硬件的中断事件交由中断控制器管理,内核异常事件交由异常控制器管理。Nios II的寄存器文件包括32个通用寄存器和6个控制寄存器,Nios II结构允许将来添加浮点寄存器,Nios II的控制寄存器共有6个,它们的读/写访问只能在超级用户态(Supervisor Model)由专用的控制寄存器读/写指令(rdctl和wrctl)实现。Nios II处理器支持两个复位信号:reset和cpu_resetrequestreset:是一个强制处理器核立即进入复位状态的全局硬件复位信号。cpu_resetrequest:是一个可以让CPU复位但不影响Nios II系统其它外设的局部复位信号。CPU复位后,Nios II处理器将执行下列操作:清除状态寄存器status,使之为0x0指令Cache与程序存储器的关联被置为无效处理器从固态程序存储器(比如Flash)中的reset地址处取得第一条指令从复位地址处开始执行程序。Nios II处理器有3种运行模式:用户模式(User Mode);超级用户模式(Supervisor Mode) ;调试模式(Debug Mode) 。通常系统程序代码运行在超级用户模式。调试模式拥有最大的访问权限,可以无限制地访问所有的功能模块。Nios II的异常处理包括软件异常和硬件中断。软件异常包括软件陷阱异常未定义指令异常其它异常 Nios II的异常处理1:把status寄存器内容复制到estatus寄存器中,保存当前处理器状态2:清除status寄存器的U位为0,强制处理器进入超级用户状态;3:清除status寄存器的PIE位为0,禁止所有的硬件中断;4:把异常返回地址写入ea寄存器(r29);5:跳转到异常处理地址。 Nios II地址是32位的,允许对4GB地址空间进行访问,但现有的Nios II内核都将地址限制在31位,即2GB地址空间。处理器的数据总线为32位宽度。指令集提供字节,半字(16bit)或字(32位)的读写指令。Nios II结构采用小端模式,对于保存在存储器中的大于8位的数据,最高有效位在高地址。 Nios II结构支持以下寻址方式有:寄存器寻址:所有的操作数都是寄存器,结果保存在寄存器中,移位寻址:寄存器和带符号的16位立即数相加的结果作为地址,立即数寻址:操作数是指令中的常量,寄存器间接寻址:使用了移位寻址,只是移位值是常量0绝对寻址:范围有限制的绝对寻址使用带有寄存器r0(它的值始终是0x00)的移位寻址来实现。高速缓存访问:Nios II结构和指令集可以管理数据高速缓存和指令高速缓存。高速缓存管理使用高速缓存指令在软件中实现。指令集可对高速缓存实现初始化、刷新及旁路数据高速缓存的指令操作。有些Nios II处理器内核支持一种称作31位高速缓存旁路的机制,它根据地址的最高有效位的值来旁路高速缓存。处理器实现的地址空间为2GB,地址的高位控制数据存储器访问的缓存操作。并行输入/输出内核(PIO内核)简介:每个Avalon接口的PIO内核可提供32个I/O端口且端口数可设置,用户可以添加一个或多个PIO内核。CPU通过I/O寄存器控制I/O端口的行为。I/O口可以配置为输入、输出和三态,还可以用来检测电平事件和边沿事件。IO内核提供简单的I/O访问用户逻辑或外部设备,例如控制LED,读取开关量,控制显示设备,配置并且与片外设备通信。 SDRAM控制器内核概述:SDRAM控制器内核提供一个连接片外SDRAM芯片的Avalon接口,并可以同时连接多个SDRAM芯片。SDRAM控制器内核具有不同数据宽度(8、16、32或64位)、不同内存容量和多片选择等设置SDRAM控制器不支持禁能的时钟模式。SDRAM控制器使cke引脚永久地有效。PPL(片内锁相环):通常用于调整SDRAM控制器内核与SDRAM芯片之间的相位差。Avalon三态桥:SDRAM控制器可与现有三态桥共用引脚,这用能减少I/O引脚使用,但将降低性能。fMAX(最高时钟频率):目标FPGA的系列和整个硬件设计都会影响硬件设计可实现的最高时钟频率。 CFI控制器内核综述:对于Nios II处理器,Altera为CFI控制器提供硬件抽象层(HAL)驱动程序。驱动程序提供了遵循CFI接口规范的Flash存储器的通用访问函数。因此,用户不需要写任何代码就可以访问遵循CFI接口规范的Flash器件。EPCS控制器内核综述:Altera EPCS 串行配置器件(EPCS1和EPCS4),它可用于存储程序代码、非易失性程序数据和FPGA配置数据。带Avalon接口的EPCS设备控制器内核(“EPCS控制器”)允许NiosII系统访问Altera EPCS串行配置器件。Altera提供集成到NiosII硬件抽象层(HAL)系统库的驱动程序,允许用户使用HAL应用程序接口(API)来读取和编写EPCS器件。EPCS控制器可用于:在EPCS器件中存储程序代码存储非易失性数据。管理FPGA配置数据。定时器内核综述:定时器是挂载在Avanlon总线上的32位定时器,特性如下:两种计数模式:单次减1和连续减1计数模式定时器到达0时产生中断请求(IRQ);可选择设定为看门狗定时器,计算到达0时复位系统;可选择输出周期性脉冲,在定时器计算到达0时输出脉冲;可由软件启动、停止或复位定时器;可由软件使能或屏蔽定时器中断。 定时器内核综述:定时器可进行的基本操作如下所述:Avalon主控制器通过对控制寄存器执行不同的写操作来控制:启动和停止定时器使能/禁能IRQ指定单次减1计数或连续减1计数模式处理器读状态寄存器获取当前定时器的运行信息。处理器可通过写数据到periodl和periodh寄存器来设定定时器周期。内部计数器计数减到0,立即从周期寄存器开始重新装载。处理器可以通过写snapl或snaph获取计数器的当前值。当计数器计数到达0时:如果IRQ被使能,则产生一个IRQ(可选的)脉冲发生器输出有效持续一个时钟周期(可选的)看门狗输出复位系统UART内核综述:UART内核(通用异步接收器/发送器内核)执行RS-232协议时序,并提供可调整的波特率。用户可配置奇偶校验位、停止位和数据位,以及可选的RTS/CTS流控制信号。内核提供一个简单的Avalon从控制器接口,该接口允许Avalon主控制器(例如NiosII处理器)通过读写寄存器与UART内核进行通讯RS-232接口:发送逻辑接收逻辑波特率生成 JTAG_UART内核综述:JTAG UART内核通过Avalon从控制器接口连接到Avalon总线。JTAG UART内核包含2个32位寄存器(数据和控制),它们可通过Avalon从控制器端口进行存取。Avalon主控制器访问寄存器来控制内核并在JTAG连接上传输数据。JTAG UART内核提供高电平有效的中断输出,该输出在读FIFO几乎为满或写FIFO几乎为空时申请一个中断。有读写FIFO也是JTAG UART内核与UART内核的不同点之一。FIFO可以改善JTAG连接的带宽。FIFO深度可由用户设置。 DMA内核综述带:Avalon接口的直接存储器存取控制器(DMA控制器)替代Avalon主控制器执行储存器对储存器或者储存器与IO设备间的批量数据传输。当DMA控制器执行数据传输任务时,主控制器可自由执行其它并行的任务。FPGA配置是对FPGA的内容进行编程的过程。每次上电后都需要进行配置是基于SRAM工艺FPGA的一个特点,也可以说是一个缺点。FPGA配置过程如下:配置RAM中的配置数据:用于控制FPGA内部可编程的内部逻辑、内部寄存器和I/O寄存器初始化,I/O驱动器使能等。之后FPGA进入用户模式。FPGA配置方式:根据FPGA在配置电路中的角色,可以将配置方式分为三类:1. FPGA主动串行(AS)方式 2. JTAG方式 3. FPGA被动(Passive)方式2. 被动方式可分为下列几种方式: 被动串行方式(PS) 快速被动并行(FPP)方式被动并行异步(PPA)方式被动并行同步(PPS)方式 被动串行异步(PSA)方式FPGA配置过程FPGA的配置包括3各阶段:复位、配置和初始化。Cyclone 以及Cyclone IIFPGA使用SRAM单元来存储配置数据。FPGA中的SRAM是易失性的,每次上电之前,配置数据(或压缩的配置数据)必须重新下载到FPGA中。下面的2个条件均可使FPGA产生一次配置请求:1.给FPGA重新上电;2.FPGA的nConfig引脚上产生一个低电平到高电平的上升沿。Cyclone及Cyclone II FPGA的配置方式包括:FPGA主动串行(AS)配置方式; FPGA被动(Passive)配置方式 ;JTAG配置方式 。主动串行配置方式(AS)是将配置数据事先存储在串行配置器件EPCS中,然后在系统上电时Cyclone及Cyclone II FPGA通过串行接口读取配置数据(如果是压缩数据,还会进行解压缩处理)对内部的SRAM单元进行配置。因为上述配置过程中FPGA控制配置接口,因此通常称为主动配置方式。Altera FPGA的配置芯片可以分为3类:增强型配置器件:EPC16、EPC8、EPC4;主动串行配置器件:EPCS64、EPCS16、EPCS4和EPCS1;普通配置器件:EPC2、EPC1、EPC1441。目标板Flash编程设计包含下列内容:每个在电路板上连接到FPGA的Flash芯片上的参考标号;Flash芯片在Flash编程设计中的基地址 ;一个针对用户板,经过裁剪的Flash编程设计;一个用户板的Flash编程设计的配置文件(.sof ) 。HAL与异常处理当异常发生后,处理器会依次完成以下工作:把status寄存器内容复制到estatus寄存器中,保存当前处理器状态,如果是硬件中断,estatus寄存器中的EPIE位置1;清除status寄存器的U位为0,强制处理器进入超级用户状态;清除status寄存器的PIE位为0,禁止所有的硬件中断;把异常返回地址写入ea寄存器(r29);跳转到异常处理地址。提高处理性能的措施(1)从软件上改善处理性能把无关紧要的以及影响中断执行性能的事情放在中断服务程序之外处理,尽量使中断服务程序精简;把传送大量数据之类的事情交给DMA来完成;如果使用DMA传输大量数据,可以加大缓冲区以减少中断次数,从而提高中断性能。DMA传输大量数据应用中,采用双缓冲区;在允许的情况下,一直保持中断使能。使用快速的存储空间来存储关键代码;使用中断嵌套将应用程序工程和系统库工程都设置为高的编译优化等级。1)从硬件上改善处理性能:添加或加大快速存储器来存储关键代码或作为数据缓存。添加DMA控制器,这要与软件改善中的第3.4步同时执行。使用性能更好的Nios II处理器,如Nios II/f。根据系统实际的中断优先级来合理分配SOPC Builder系统中的中断号,注意IRQ0为最高优先级。处理器外围设备的分类字符型设备:以字符为单位进行传输的设备。比如字符终端、串口、鼠标等等。块设备:以数据块为单位进行传输的设备,比如CF卡网络设备:是支持网络通信的设备。以包的形式传送。驱动程序与设备交互的方法轮询和中断轮询方法:是指软件周期性查询硬件事件的发生。其驱动程序设计起来比较简单;缺点是,当有多个设备需要轮询时,由此带来的轮询开销是比较大的,而实时性会降低。中断方式:是指外部事件发生后,打断正在处理的事件,进而去检查事件发生的原因,最后做出相应的处理。可以提高CPU的利用率并可以保证系统具有较高的实时性能。在实时系统以及有多个外设的系统中,通常采用中断方式与外设进行交互。调用设备驱动的方式:应用程序直接调用;应用程序通过操作系统调用;应用程序通过操作系统的扩展调驱动程序的开发步骤:创建一个设备头文件,用于描述设备的寄存器和其访问方法;定义并实现设备驱动的功能;在main()中单独测试设备驱动的功能;把设备驱动集成到HAL中。定制基于Avalon的用户外设一个典型元件定制的步骤如下:1规划元件的硬件功能。2如将采用微控制器来控制该元件,则规划访问该硬件的应用程序接口(API)。3在硬件和软件要求的基础上,定义一个恰当的Avalon接口。4使用Verilog或VHDL来描述硬件逻辑。5单独验证元件的硬件功能。6写用于描述寄存器的C头文件来为软件定义硬件寄

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论