第5讲SOPCBuilder开发工具第5讲SOPCBuilder开发工具5.1简介5.2SOPCBuilder设计流程5.3SOPCBuilder用户界面第5讲SOPCBuilder开发工具5.1SOPC简介5.1.1可编程片上系统(SOPC)技术简介SOPC(SystemOnaProgrammableChip)是指用可编程逻辑技术把整个系统放到一块硅片上。SOPC是一种特殊的嵌入式系统。一方面,它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;另一方面,它是可编程系统,具有灵活的设计方式,可裁减、扩充、升级,并具备软硬件在系统可编程的功能。这项技术将EDA、计算机设计、嵌入式系统、DSP及数字通信系统等技术融为一体。第5讲SOPCBuilder开发工具SOPC结合了SOC和PLD、FPGA各自的优点,一般具备以下基本特征:–·至少包含一个嵌入式处理器内核;–·具有小容量片内高速RAM资源;–·丰富的IPCore资源可供选择;–·足够的片上可编程逻辑资源;–·处理器调试接口和FPGA编程接口;–·可包含部分可编程模拟电路;–·单芯片、低功耗、微封装。第5讲SOPCBuilder开发工具随着EDA技术的发展和大规模可编程器件性能的不断提高,SOPC技术已被广泛应用于许多领域。(1)SOPC在极大提高了许多电子系统性能价格比的同时,还开辟了许多新的应用领域,如高端的数字信号处理、通信系统、软件无线电系统的设计、微处理器及大型计算机处理器的设计等等;(2)由于SOPC具有基于EDA技术标准的设计语言与系统测试手段、规范的设计流程与多层次的仿真功能以及高效率的软硬件开发与实现技术,使得SOPC及其实现技术无可争议地成为现代电子技术最具时代特征的典型代表。第5讲SOPCBuilder开发工具与基于ASIC的SOC相比,SOPC具有更多的特点与吸引力:ApplicationSpecificIntegratedCircuit专用集成电路SystemonChip片上系统开发软件成本低硬件实现风险低产品上市效率高产品设计成本低系统结构可重构及硬件可升级第5讲SOPCBuilder开发工具5.1.2SOPCBuilder简介SOPCBuilder是Altera公司推出的一种可加快在PLD内实现嵌入式处理器相关设计的工具。它是一个革命性的系统级开发工具,旨在提高设计者的效率。设计者可确定所需要的处理器模块和参数,并据此创建一个处理器的完整存储器映射。设计者还可以选择所需的IP外围电路,如存储器控制器、I/O控制器和定时器等模块。第5讲SOPCBuilder开发工具SOPCBuilder可以快速地开发定制新方案,重建已经存在的方案,并为其添加新的功能,提高系统的性能。通过自动集成系统组件,SOPCBuilder允许用户将工作的重点集中到系统级的需求上,而不是从事把一系列的组件装配在一起这种普通的、手工的工作。所有版本的AlteraQuartus Ⅱ的设计软件都已经包含了SOPCBuilder。设计者采用SOPCBuilder,能够在一个工具内定义一个从硬件到软件的完整系统,而花费的时间仅仅是传统SOC设计的几分之一。第5讲SOPCBuilder开发工具SOPCBuilder提供了一个强大的平台,用于组建一个在模块级和组件级定义的系统。SOPCBuilder的组件库包含了从简单的固定逻辑的功能块到复杂的、参数化的、可以动态生成的子系统等一系列的组件。这些组件可以是从Altera或其他合作伙伴处购买来的IP核,其中一些IP核是可以免费下载用来做评估的;用户还可简单地创建他们自己定制的SOPCBuilder组件。SOPCBuilder内建的IP核库是OpenCorePlus版的业界领先的Nios/Nios Ⅱ嵌入式软核处理器。所有的Quartus Ⅱ用户都能够把一个基于Nios/Nios Ⅱ处理器的系统经过生成、仿真和编译进而下载到AlteraFPGA中,进行实时评估和验证。第5讲SOPCBuilder开发工具SOPCBuilder库中已有的组件包括:(1)处理器:包括片内处理器和片外处理器的接口。(2) IP及外设:包括通用的微控制器外设,通信外设,多种接口(存储器接口、桥接口、ASSP、ASIC),数字信号处理(DSP)IP和硬件加速外设。5.1.3SOPCBuilder的功能特点1.具有直观的图形用户界面(GUI)利用图形用户界面,用户可以快速方便地定义和连接复杂的系统。如图5.1所示,用户可从左边的库中添加所需的部件,然后在右边的表中配置它们。第5讲SOPCBuilder开发工具图5.1SOPCBuilder的图形用户界面第5讲SOPCBuilder开发工具2.自动生成和集成软件与硬件SOPCBuilder会生成每个硬件部件以及连接部件的片内总线结构,仲裁和中断逻辑。它也会产生系统可仿真的RTL描述以及为特定硬件配置设计的测试平台,能够把硬件系统综合到单个网表中。另外,SOPCBuilder还能够生成C和汇编头文件,这些头文件定义了存储器映射、中断优先级和每个外设寄存器空间的数据结构。这样的自动生成过程可以帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,SOPCBuilder会自动更新这些头文件。SOPCBuilder也会为系统中现有的每个外设生成定制的C和汇编函数库。例如,如果系统包括一个UART,SOPCBuilder就会访问UART的寄存器并定义一个C结构,生成通过UART发送和接收数据的C和汇编例程。第5讲SOPCBuilder开发工具3.开放性SOPCBuilder开放了硬件和软件接口,允许第三方像Altera一样有效地管理SOPC部件,用户可以根据需要将自己设计的部件添加到SOPCBuilder的列表中。5.1.4SOPCBuilder的优点SOPCBuilder系统设计在利用可编程器件(PLD)的逻辑资源、存储器、DSP块、专用I/O上具备以下优势:第5讲SOPCBuilder开发工具·在逻辑容量、存储器和DSP块以及专用I/O标准上具有灵活性;·上市周期快;·没有非重复性工程(NRE)费用;·不需要制作昂贵的设计工具;·风险低,用户可以以实际的运行频率在硅片上验证他们的设计。第5讲SOPCBuilder开发工具5.2SOPCBuilder设计流程如图5.2所示,SOPCBuilder的设计流程包括两个阶段:配置(框图左边所示)和生成(框图右边所示)。它是利用ClassPTF和SystemPTF这两个文件来配置和生成系统流程的。第5讲SOPCBuilder开发工具SOPCBuilderGUI引导用户完成两部分的配置:部件配置和系统配置。部件配置需要汇总参数,ClassPTF文件标准包括了为这一要求定义GUI的格式。当需要时,SOPCBuilder读取该格式,产生相应的部件向导(ComponentWizard),收集所需的用户数据。然后SOPCBuilder把收集的参数值存放在SystemPTF文件中。系统配置是指把用户提供的有关处理器的配置、外设连接等数据写入SystemPTF中。当这两部分配置都完成后,SOPCBuilder进入到生成阶段,生成设计的输出文件。SOPCBuilder查阅每个ClassPTF文件,允许相关的部件生成程序,它们会正确地输出特定系统配置的硬件和/或软件文件。第5讲SOPCBuilder开发工具简单的部件生成程序可能每次都会输出相同的文件,更多的可配置部件则会根据用户输入生成完全不同的结构。例如,Nios处理器中包括的UART可以配置为软件控制波特率,以更多门换取更大的灵活性。这种配置选项由用户在部件配置阶段进行设置,根据这个设计,UART生成程序产生所需UART的硬件描述。在生成阶段的最后一步,SOPCBuilder创建适合于系统部件的总线结构,把所有的部件连接在一起。第5讲SOPCBuilder开发工具用户定义文件仿真文件Soft-wareFilesHDLFilesSystemPTFFileClassPTFFilesComponentWizardsSOPCBuilderGUIComponentGenerationSystemGenerationSOPC配置SOPC生成输出文件图5.2系统生成流程第5讲SOPCBuilder开发工具5.3SOPCBuilder用户界面5.3.1系统元件页用户在系统元件页中定义所需的系统(如图5.3所示)。在它的模块池中包括了用户可获得的所有元件列表。在模块表中列出的是用户已经添加到系统中的模块。当用户用SOPCBuilder生成系统时,它就生成了一个系统模块,这个模块包含了用户所定义的所有元件和接口以及自动生成的总线(互联)逻辑。第5讲SOPCBuilder开发工具1.模块池在模块池中列出了根据总线类型和逻辑类别来分类的所有可用的库元件。每个元件名前面都有一个带颜色的圆点,不同的颜色代表不同的含义。(1)绿圆点:用户可以添加到用户系统中的元件是完全许可的。(2)黄圆点:元件在系统设计中的应用受到某种形式的限制,主要限制有使用时间有所限制和功能有所减少。(3)白圆点:元件目前还没有安装到用户的系统上,用户可以从网上下载这些元件。第5讲SOPCBuilder开发工具目标器件模块表系统时钟模块池模块池选择器消息栏图5.3系统元件页第5讲SOPCBuilder开发工具用户可以使用模块池选择器来列出可用的元件,安装元件,从网上获取元件以及通过网络升级元件。如果用户有Internet链接,就可以查看来自Altera和AMPPsm最新的可用元件。要查看新元件,可点击Check按钮,最新的可获得的元件就会显示在升级页中;接着点击元件名和Add就可以将元件下载到本地。用右键点击元件就可以看到一个菜单,它包括了元件的详细信息,并且可以链接到相关的文件并升级元件。如果右键点击的已安装的元件是可以获得升级的,在弹出的菜单中就包含一个子菜单(以元件的版本号作标题),点击这个菜单就可以对元件进行升级。第5讲SOPCBuilder开发工具2.模块表模块表中列出的是用户添加到用户所设计的系统中的模块,包括桥、总线接口、CPU、存储器接口、外围设备等。此外,用户可以用模块表来描述以下一些项目:·连接的主、从性;·系统地址映射;·系统中断请求分配;控制共享从元件的优先权。第5讲SOPCBuilder开发工具3.添加元件到模块表在模块池中点击要添加的元件名,然后点击Add,会出现以下两种情况中的一种:(1)对于可用的、已安装上的并有设置向导的元件,会出现一个对话框,让用户设定各种选项,设定完选项后再点击Finish,就可将元件添加到模块表中。如果元件没有选项对话框,它会被自动加到模块表中。(2)对于可用的但没有安装的元件,也会出现一个对话框,通过该对话框可链接到网上下载元件或从厂商处获取元件。安装元件后,用户就可以将它添加到用户所设计的系统中了。第5讲SOPCBuilder开发工具如果点击View菜单并选中ShowMasterConnections选项,则在模块表的左边就会出现主、从元件的互联示意图。任何一个元件都可以有一个或多个主或从的接口。如果主元件和从元件使用同一个总线协议,则任何一个主元件都可以和任何一个从元件相连。如果使用的是不同的总线协议,则用户可以通过使用一个桥元件来把主、从元件连接起来,比如可使用AMBA-AHB-to-Avalon桥。当两个或多个主元件共享同一个从元件时,SOPCBuilder会自动插入一个判优器来控制对从元件的访问。当对一个从元件有多个请求同时发生时,判优器可以决定由哪个主元件来访问这个从元件。要查看仲裁优先权,可在View菜单里选中ShowArbitrationPriorities选项。第5讲SOPCBuilder开发工具4.附加设置系统元件页还包括以下一些附加选项:(1)器件系列(DeviceFamily):由用户从器件列表中选择用户的目标器件。这项设置非常重要,因为SOPCBuilder是利用所选器件系列的结构优势来产生系统