《基于FPGA的嵌入式系统设计》课件第4章_第1页
《基于FPGA的嵌入式系统设计》课件第4章_第2页
《基于FPGA的嵌入式系统设计》课件第4章_第3页
《基于FPGA的嵌入式系统设计》课件第4章_第4页
《基于FPGA的嵌入式系统设计》课件第4章_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

第4章Qsys系统开发工具4.1Qsys简介4.2Qsys设计流程4.3Qsys用户界面4.4Qsys用户自定制元件

4.1Qsys简介

Qsys系统集成工具自动生成互联逻辑,连接知识产权(IP)功能和子系统,从而显著节省了系统开发时间,减轻了FPGA设计工作量。Qsys是新一代SoPCBuilder工具,在片上网络NoC(NetworkonaChip)新技术的支持下,与SoPCBuilder相比,提高了系统集成性能,增强了设计重用功能,可更迅速地进行系统集成验证。

4.1.1SoPC技术简介

SoPC(SystemonaProgrammableChip)是用可编程逻辑技术把整个系统放到一块硅片上。SoPC是一种特殊的嵌入式系统:一方面它是片上系统(SystemonaChip,SoC),即由单个芯片完成整个系统的主要逻辑功能;另一方面,它是可编程系统,具有灵活的设计方式,可裁减、扩充、升级,并具备软硬件在系统可编程的功能。这项技术将EDA技术、计算机设计、嵌入式系统、工业自动控制系统、DSP及数字通信系统等技术融为一体。

SoPC结合了SoC和PLD、FPGA各自的优点,一般具备以下基本特征:

(1)至少包含一个嵌入式处理器内核;

(2)有小容量片内高速RAM资源;

(3)有丰富的IPCore资源可供选择;

(4)有足够的片上可编程逻辑资源;

(5)有处理器调试接口和FPGA编程接口;

(6)可包含部分可编程模拟电路;

(7)单芯片,低功耗,微封装。

首先,SoPC在极大地提高了许多电子系统性能价格比的同时,还开辟了许多新的应用领域,如高端的数字信号处理、通信、软件无线电系统的设计以及微处理器和大型计算机处理器的设计等;同时,由于SoPC具有基于EDA技术标准的设计语言与系统测试手段、规范的设计流程与多层次的仿真功能,以及高效率的软硬件开发与实现技术,使得SoPC及其实现技术无可争议地成为现代电子技术最具时代特征的典型代表。与基于ASIC的SoC相比,SoPC具有更多的特点与吸引力:开发软件成本低,硬件实现风险低,产品上市效率高,系统结构可重构及硬件可升级,而且具有设计者易学易用、复杂系统集成设计成本低等优势。

4.1.2Qsys与SoPC开发

Qsys是Altera公司在QuartusⅡ11.0以上版本发布的新功能,它是SoPCBuilder的新一代产品。在QuartusⅡ11.0及以后的软件版本中,SoPCBuilder工具逐渐被Qsys所取代。Qsys在SoPC开发中的作用是在SoPCBuilder的基础之上实现新的系统开发与性能互联。

与SoPCBuilder相同,Qsys是一种可加快在PLD内实现嵌入式处理器相关设计的工具,它的功能与PC应用程序中的“引导模板”类似,旨在提高设计者的效率。设计者可确定所需要的处理器模块和参数,并据此创建一个处理器的完整存储器映射,同时还可以选择所需的IP外围电路,如存储器控制器、I/O控制器和定时器模块等。

Qsys可以快速地开发定制新方案,重建已经存在的方案,并为其添加新的功能,提高系统的性能。通过自动集成系统组件,它允许用户将工作的重点集中到系统级的需求上,而不是把一系列组件装配在一起这种普通的、手工的工作上面。在AlteraQuartusⅡ11.0及以后的软件版本中,都已经包含了Qsys(QuartusⅡ13.0以上版本完全用Qsys替代SoPCBuilder)。设计者采用Qsys系统集成工具,能够在一个工具内定义一个从硬件到软件的完整系统,而花费的时间仅仅是传统SoC设计的几分之一。

Qsys提供了一个强大的平台,用于组建一个在模块级和组件级定义的系统。它的组件库包含了从简单的固定逻辑的功能块到复杂的、参数化的、可以动态生成的子系统等一系列组件。这些组件可以是从Altera或其他合作伙伴购买来的IP核,其中一些是可以免费下载用来做评估的。用户还可简单地创建他们自己定制的组件。Qsys内建的IP核库是OpenCorePlus版的业界领先的Nios/NiosⅡ嵌入式软核处理器。所有的QuartusⅡ用户能够把一个基于Nios/NiosⅡ处理器的系统经过生成、仿真和编译,进而下载到AlteraFPGA中,进行实时评估和验证。

Qsys库中已有的组件包括:

(1)处理器。

①片内处理器;

②片外处理器的接口。

(2)IP&外设。

①通用的微控制器外设;

②通信外设;

③多种接口(存储器接口、桥接口、ASSP、ASIC);

④数字信号处理(DSP)IP;

⑤硬件加速外设。

4.1.3Qsys的功能特点

1.具有直观的图形用户界面(GUI)

用户可以快速方便地定义和连接复杂的系统。如图4.1所示,用户可从左边的库中添加所需的部件,然后在右边的表中配置它们。图4.1Qsys的图形用户界面

2.自动生成和集成软件和硬件

Qsys会自动生成互联逻辑(地址/数据总线连接、总线宽度匹配逻辑、地址解码逻辑以及仲裁逻辑等)。它也会产生系统可仿真的RTL描述,以及为特定硬件配置设计的测试平台,能够把硬件系统综合到单个网表中。另外,Qsys还能够生成C和汇编头文件,这些头文件定义了存储器映射、中断优先级和每个外设寄存器空间的数据结构。这样的自动生成过程帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,Qsys会自动更新这些头文件。Qsys也会为系统中现有的每个外设生成定制的C和汇编函数库。

3.开放性

Qsys开放了硬件和软件接口,允许第三方像Altera一样有效地管理SoPC部件,用户可以根据需要将自己设计的部件添加到Qsys的列表中。

4.1.4Qsys的优点

Qsys系统集成工具自动生成互联逻辑,连接知识产权(IP)功能和子系统,从而显著节省了时间,减轻了FPGA设计的工作量。Qsys是下一代SoPCBuilder工具,在FPGA优化芯片网络(NoC)新技术的支持下,与SoPCBuilder相比,提高了性能,增强了设计重用功能,缩短了FPGA设计过程,更迅速地进行验证,主要体现在以下几点:

1.加速开发

(1)使用方便的GUI界面,支持IP功能和子系统的快速集成。

(2)自动生成互联逻辑(地址/数据总线连接、总线宽度匹配逻辑、地址解码逻辑以及仲裁逻辑等)。

(3)Altera及其IP合作伙伴提供的即插即用Qsys兼容IP。

(4)支持包括Avalon和ARMAMBAAXI接口的不同工业标准接口的混合。

(5)系统HDL自动生成。

(6)分层设计流程,实现了灵活的设计,支持基于团队的设计,提高了设计重用能力。

(7)将SoPCBuilder设计移植到Qsys的移植流程。

2.更快的时序收敛

(1)与SoPCBuilder系统互联架构相比,基于NoC体系结构的高性能Qsys互联以及自动流水线将性能提高了两倍。

(2)控制功能强大的自动流水线,满足fMAX和延时系统要求。

3.更快地完成验证

(1)利用自动测试台生成功能并使用验证IP套装可迅速开始仿真。

(2)通过系统控制台进行发送读写系统级操作,从而加快电路板开发。

4.2Qsys设计流程

Qsys的设计理念是提高设计抽象级,从而使机器自动生成底层代码,包括从开始的门级电路到寄存器传输级(RTL),从SoPCBuilder所提出的IP级到Qsys提出的系统级模式。针对设计级别的提高,Qsys采用了片上网络架构。在这种架构上IP可以直接互联,这样标准化之后,软件便可以自动为标准内核及胶合逻辑提供标准化互联,而设计者只需修改自己的定制逻辑即可。由于采用了标准化IP接口,因此对于设计复用而言接口不必重新设计,Altera的Avalon总线的IP可以与ARMAMBA总线通过Qsys混合。

Qsys的系统设计流程如图4.2所示。具体描述为:导入RTL设计,Qsys进行自动封装并改进IP库,之后就可以成为独立IP来复用了。图4.2Osys系统设计流程

2.更快的时序收敛

(1)与SoPCBuilder系统互联架构相比,基于NoC体系结构的高性能Qsys互联以及自动流水线将性能提高了两倍。

(2)控制功能强大的自动流水线,满足fMAX和延时系统要求。

3.更快地完成验证

(1)利用自动测试台生成功能并使用验证IP套装可迅速开始仿真。

(2)通过系统控制台进行发送读写系统级操作,从而加快电路板开发。

4.3Qsys用户界面

打开QuartusⅡ的一个项目,选择QuartusⅡ的工具栏(tool菜单)中的Qsys选项,就启动了Qsys。Qsys的用户界面包括:系统元件页(SystemContentsPage)、系统从属页(SystemDependencyPage)和系统选项页(SystemOptionsPage)。随EDA软件版本的不同,Qsys界面会稍有不同。

4.3.1系统元件页

用户在系统元件页中来定义所需的系统(如图4.3所示)。在Osys的元件库(ComponentLibrary)中包括了Osys集成的所有元件列表。在SystemContents标签页中列出的是用户已经添加到系统中的模块。当用户用Qsys生成系统时,它就生成了一个系统模块,这个模块就包含了用户所定义的所有元件和接口。另外,该模块还包括了自动生成的总线(互联)逻辑。图4.3系统元件页

1.模块池

在模块池中列出了根据总线类型和逻辑类别来分类的所有可用的库元件。每个元件名前面都有一个带颜色的圆点,不同的颜色代表不同的含义。

(1)绿圆点:用户添加到用户系统中的元件是完全许可的。

(2)黄圆点:元件在系统设计中的应用受到某种形式的限制,主要是使用时间和功能有所减少。

(3)白圆点:元件目前还没有安装到用户的系统上,用户可以从网上下载这些元件。

用户可以使用模块池选择器来列出可用的元件、安装元件、网上获取元件以及通过网络升级元件。

用右键点击元件就可以看到一个菜单,它包括了元件的详细信息,并且可以链接到相关的文件和升级元件。如果用右键点击的已安装的元件是可以获得升级的,则在弹出的菜单中包含了一个子菜单(以元件的版本号做标题),点击这个菜单就可以对元件进行升级。模块池下方的New按钮用于创建新的组件,Add按钮则用于将选择的组件添加到系统中。

2.模块表

模块表中列出的是用户添加到用户所设计的系统中的模块,包括桥、总线接口、CPU、存储器接口、外围设备等。此外,用户可以用模块表来描述以下项目:

(1)连接的主、从性;

(2)系统地址映射;

(3)系统中断请求分配;

(4)控制共享从元件的优先权。

3.添加元件到模块表

(1)在模块池中点击要添加的元件名。

(2)点击Add,之后会出现以下两种情况之一。

①对于可用的、已安装上的并有附加设置的元件,会出现一个对话框,让用户设定各种选项。设定完选项后点击Finish,就可将元件添加到模块表中。如果元件没有选项对话框,则它会被自动加到模块表中。

②对于可用的、但没有安装的元件,会出现一个对话框,它可链接到网上下载元件或是从厂商索取。安装了元件后,用户就可以将它添加到用户所设计的系统中了。

4.3.2系统从属页

当用户向所设计的系统中添加元件,比如一个NiosⅡ嵌入式处理器时,在Qsys中就会出现一个附加页。这个附加页可以让用户设置一些附加的参数或是与系统中其他元件的相连关系。比如,用户可以定义CPU和存储器元件之间的相连关系来指明哪一个用作程序存储器,哪一个用作数据存储器。对于用到系统从属页的元件,Qsys会对用户添加到用户系统中的这个元件的每种情况都生成一个单独的系统从属页。

另外,处理器元件可能会有相关的软件组件,并且会在系统从属页中显示出来。从实用程序库(UtilityLibraries)到实时操作系统都有软件组件的例子,Altera在开发工具包中还提供了多种软件组件。

4.3.3系统选项页

系统选项页是指在创建和生成Qsys系统中所用到的选项设置,与Qsys主界面中的八个选项卡相对应,它们分别是SystemContents、AddressMap、ClockSettings、ProjectSettings、InstanceParameters、SystemInspector、HDLExample和Generation。

1.SystemContents选项

SystemContents是显示用户自定义的系统构成的选项,详细给出了系统构成的各组件名称、连接情况、描述、基址、时钟和中断优先级分配等情况,如图4.4所示。图4.4SystemContents选项

2.AddressMap选项

AddressMap选项用于用户设置系统在内存映射中的地址,从而确保与其他部分的映射一致。如果该选项中有红色标记,则表示地址出现重叠错误,可双击地址进行修改。图4.5所示为修改后正确的地址映射。图4.5AddressMap选项

3.ClockSettings选项

ClockSettings是时钟设置选项。如图4.6所示,在该选项下可以进行系统可用时钟类型及频率的设置。需要注意的是,实际上CPU时钟频率的设置是有限制的,不同的器件其最大时钟频率也是不一样的,具体详见Altera的官网文档《NiosⅡPerformanceBenchmarks》。图4.6ClockSettings选项

4.ProjectSettings选项

ProjectSettings选项用来设置一些系统参数,包括器件系列(Devicefamily)的选择、Clockcrossingadaptertype(跨时钟域适应器类型)设置、Limitinterconnectpipelinestagesto(限制互联总线层次)设置和GenerationId(生成ID)设置等,如图4.7所示。图4.7ProjectSettings选项

(1)器件系列(Devicefamily)的选择是由用户从器件列表中选择用户的目标器件。这项设置非常重要,因为Qsys是利用所选器件系列的结构优势来产生系统的逻辑的。

(2)Clockcrossingadaptertype选项在SoPCBuilder中是没有的,在Qsys系统中如果要处理跨时钟域的数据传输,则在系统生成时会自动加入一个Clockcrossingadaptor,无需手动加入(Clockcrossingadaptor在component列表中也有)。其中在选项下拉菜单中有三个选择项:Handshake、FIFO和Auto。

①Handshake:采用简单的握手协议处理跨时钟域数据传输,在这种模式下耗用的资源比较少,适用于数据吞吐量比较少的情况。

②FIFO:采用了双时钟的FIFO做同步处理,这种模式下可以处理吞吐量比较大的数据传输,但是总体延时是Handshake的两倍,适用于吞吐量比较大的存储器映射的数据传输。

③Auto:在这种模式下同时采用Hankshake和FIFO方式的连接,在突发连接中使用FIFO方式,其他情况下使用Handshake方式。

(3)Limitinterconnectpipelinestageto选项在SoPCBuilder中也是没有的。这也是Qsys的改进之一,在Qsys中对用户开放了一部分总线信息。关于Interconnect的具体资料,可以查阅官方资料。需要注意的是,这个互联只针对Avalon-MM接口,而Avalon-ST接口的信息早已公布。

(4)GenerationId(生成ID)的设置是指在Qsys系统生成之前赋给时间标签一个唯一的整数值,用于检查软件的兼容性。

5.InstanceParameters选项

InstanceParameters选项(见图4.8)用来给该Qsys系统定义参数。当该系统作为另一个Qsys系统的子系统时,可以用该实例参数来修饰该Qsys系统,而高一级的Qsys系统可以指定具体实例参数的数值。图4.8InstanceParameters选项

InstanceScript定义了该实例参数指定的值将如何影响到Qsys设计中的各子组件。它允许用户在此查询在设计中定义和设置的实例参数的数值。

点击PreviewInstance按钮,Qsys会给出指定了参数和实例脚本的当前Qsys系统的预览,同时还显示该实例的参数编辑器。

6.SystemInspector选项

SystemInspector选项(见图4.9)与ProjectSettings选项相对应,用于将ProjectSettings选项设置好的相关信息在此显示出来。图4.9SystemInspector选项

7.HDLExample选项

HDLExample选项用于采用Verilog或VHDL语言给出系统的顶级HDL定义,同时给出系统组件的VHDL声明。如果该Qsys系统不是QuartusⅡ工程中的顶层模块,则可以将HDLExample复制或粘贴到实例化本Qsys系统的顶层HDL文件中。该选项界面如图4.10所示。图4.10HDLExample选项

8.Generation选项

Generation选项是用来生成用户系统的。如图4.11所示,它包含一些选项,用户可以通过设置(比如仿真控制、系统综合和输出路径等)来控制生成过程。图4.11Generation选项

(1)仿真控制设置包括创建仿真模型、创建Qsys系统测试脚本以及创建仿真模型测试脚本的有关选择。

(2)系统综合设置包括是否创建Qsys生成系统的HDL文件以及是否生成原理图文件。

(3)输出路径设置则用于指定生成系统相关文件及仿真、综合后相关文件的输出路径。

以上相关选项设置后,用户就可以点击Generate按钮来生成所设计的系统。点击Generate按钮后,Qsys会创建以下项目:

(1)SDK(针对Nios系统);

(2)系统中每一个元件的HDL文件;

(3)一个对于顶层系统模块的符号文件(.bsf);

(4)ModelSim文件;

(5)一个Tcl脚本文件,它建立了所有QuartusⅡ编辑所需的文件。

4.3.4Qsys菜单命令

表4.1所示为Qsys中常用的菜单命令。

4.4Qsys用户自定制元件

随着基于FPGA的SoPC/Qsys技术已经成为SoC设计的趋势,Altera公司QuartusⅡ软件集成的Qsys(低版本为SoPCBuilder)可以方便地调用集成外设元件构建SoPC/Qsys系统,如NiosⅡProcessor、JTAGUART、SDRAM等,这些在Qsys的组件库中都具有集成的组件可以直接调用。而在有些情况下,如果组件库中不存在用户所需添加的外设组件(非通用外设元件),则需要用户在Qsys(或SoPCBuilder)中自定制外设组件。

在Qsys或SoPCBuilder中添加外设一般有两种方法:

(1)如果外设仅需要通过软核处理器的I/O接口进行控制,则可以根据外设所需I/O功能在Qsys中添加PIO将外设简单地接入总线。这种方法在硬件接入上很直观,但需要根据外设的控制时序来编写相关的时序控制程序,对时序的要求比较严格。

(2)当所需添加外设要完成一些具体的功能,如添加以太网控制器W5300控制组件时,需要用硬件描述语言描述定制元件接口,通过Qsys中的自定制元件功能定制所需组件时序上的转换逻辑,通过所描述的元件接口将外设直接接入系统总线(Avalon总线),并编写相关的软件对其进行操作。

本节主要介绍第二种外设自定义方法。为了理解Qsys外设的自定义元件方法,我们先以DDS(DirectDigitalFrequencySynthesizer,直接数字频率综合器)波形发生器为例,通过自定制元件的方法将波形发生器模块的接口信号挂接到Avalon总线上,通过Avalon总线的读写时序来控制波形产生的频率,如图4.12所示。另外,我们给出以太网控制器W5300的自定制元件描述及Avalon总线的时序设置来进一步理解实际芯片接口信号挂接到Avalon总线上的方法。图4.12Qsys中添加自定制元件

4.4.1Qsys组件构成

Qsys组件由以下部分组成:

(1)组件类型信息,如组件名称、版本和作者;

(2)组件硬件的硬件描述语言(HDL)描述;

(3)组件接口硬件的描述,如I/O信号的类型;

(4)配置组件运行的参数说明;

(5)配置Qsys中组件的实例参数编辑器。

设计者可以使用组件所要求的任意数量的接口和接口类型的任意组合来设计自定制组件。例如,一个组件除了对控制器提供存储器映射的从端口以外,还可以对高吞吐量数据提供Avalon-ST源端口。

Qsys自定义组件可以使用的组件接口包括:

(1)Memory-Mapped(MM):用于存储器映射通信的Avalon-MM或AXI主端口和从端口。

(2)AvalonStreaming(Avalon-ST):用于Avalon-ST源和发送数据流的接收器之间的点到点的连接。

(3)Interrupts:用于生成中断的中断发送器和执行中断的中断接收器之间的点到点的连接。

(4)Clocks:用于时钟源和时钟接收器之间的点到点的连接。

(5)Resets:用于复位源和复位接收器之间的点到点的连接。

(6)AvalonTri-StateConduit(Avalon-TC):用于连接到PCB上的三态器件的Qsys系统中的三态总线控制器。

(7)Conduits:用于通道接口之间的点到点的连接。设计者可以使用该接口来定义不符合任何其他接口种类的信号。

4.4.2Qsys组件编辑器

Qsys组件编辑器是Qsys的一个重要组成部分,用户可以通过该编辑器创建并且封装用于Qsys的自定制组件,也可以对创建好的自定制组件进行编辑。如图4.13所示,在创建好的组件上点击右键,选择Edit命令就可以编辑自定制组件。图4.13在Qsys中编辑创建好的自定制组件

使用Qsys组件编辑器GUI界面,用户可以完成以下任务:

(1)指定组件的识别信息,如组件名称、版本、作者等。

(2)指定描述组件接口及硬件功能的硬件描述语言(HDL)文件,以及定义综合和仿真的组件约束文件。

(3)定义参数和接口信号,并创建组件的HDL模板。

(4)关联并定义组件接口的信号类型。

(5)设置接口参数,并指定其特性。

(6)指定接口之间的关系。

如果自定制组件不是基于已经编辑好的HDL文件,则需要首先在组件编辑器窗口的Parameters、Signals和Interfaces标签中输入参数、信号和接口,然后返回Files标签,点击CreateSynthesisFilefromSignals按钮来创建顶层HDL文件模板。当点击组件编辑器窗口底部的Finish按钮时,Qsys使用组件编辑器标签上提供的详细信息创建组件_hw.tcl文件(使用Qsys组件的Tcl脚本语言编写的文本文件,包含组件设计文件的名称和位置信息)。

保存自定义组件后,自定义的组件即出现在Qsys组件库中。

4.4.3自定义组件实例1—DDS信号产生模块

该实例利用FPGA内部软核处理器对DDS信号产生模块进行控制,实现正弦波及扫频信号输出,还可以将DDS信号产生模块输出的波形数据读入软核处理器NiosⅡ。其中,DDS信号产生模块是EDA实验教学中经常介绍的实验项目。该实例为了将DDS信号产生模块作为软核处理器NiosⅡ的外设进行控制,在原DDS信号产生模块的基础上增加了如图4.14左边虚线框所示的控制信号及相关模块,包括32位写数

据总线DDS_oDATA[31:0]、32位读数据总线DDS_DATA[31:0]、地址总线DDS_ADD[3:0]、写信号DDS_WR_N、读信号DDS_RD_N、复位信号DDS_RST_N,以及频率控制字寄存器、控制寄存器、数据寄存器和地址译码器。频率控制字寄存器模块的地址为EN0(0x00),控制寄存器地址为EN1(0x01),数据寄存器地址为EN2(0x02)。通过Qsys自定制组件接口逻辑将这些控制信号挂接到Avalon总线上,即可通过Altera软核处理器NiosⅡ对DDS信号产生模块进行控制。

使用硬件描述语言所实现的Qsys自定制组件接口描述文件,主要实现Avalon总线与自定制组件接口控制信号的连接。本实例中要连接到Avalon总线上的外设接口信号如图4.14左侧所示,因此接口描述文件中所包括的接口信号定义如图4.15所示。图4.14DDS信号产生模块(DDS_Module)接口控制图4.15Qsys自定制组件接口描述文件接口信号

1.自定制元件的VerilogHDL接口描述文件

通过该接口描述文件即可把需要控制外设(这里是DDS信号产生模块)的接口信号(包括数据总线、地址总线和控制信号)挂接到Avalon总线的从端口上,如图4.15所示。

注意:以上接口描述文件需要在EDA软件中编译通过才能进行下一步操作。

2.使用Qsys元件编辑器创建自定制元件

在QuartusⅡEDA软件(建议11.0以上版本)中打开需要使用自定制元件的工程文件,并按照4.3节的操作启动Qsys界面。通过双击Qsys界面左边Library组件库中Project下的NewComponent打开Qsys组件编辑器(或选择菜单File->NewComponent),如图4.16所示。点击组件编辑器(ComponentEditor)中每个标签页左上角的About三角,则出现对应标签页所需要和显示的信息,如图4.16中ComponentType标签页中AboutComponentType所示。图4.16打开Qsys组件编辑器界面

1)ComponentType标签页

如图4.16所示,ComponentType标签页可以指定关于自定制组件的以下信息:

(1)Name:指定_hw.tcl文件名中使用的名称(如输入DDS_controller)。对于不是基于已经编辑好的HDL文件的自定制组件,也指定顶层模块名称。

(2)Displayname(可选):识别参数编辑器GUI中的组件(如输入DDS_controller),也出现在组件库中的Project下和Qsys界面的SystemContents标签上。

(3)Version:指定组件的版本编号(如1.0)。

(4)Group(可选):代表组件库中组件列表中组件的类别(如输入User_IP)。用户可以从组件列表中选择一个现有的组,或通过在Group对话框中输入一个名称定义新组。使用斜线在Group对话框中分离选项以便定义一个子类别。例如,输入MemoriesandMemoryControllers/On-Chip,则组件出现在组件库中的On-Chip组下,它是MemoriesandMemoryControllers组的子类别。如果将Qsys设计保存到工程目录中,则组件出现在组件库的Project下定制的组中。另外,如果将设计保存到QuartusⅡ安装目录中,则组件出现在Library下定制的组中。

(5)Description(可选):组件描述(如输入DDS_controller)。

(6)Createdby(可选):指定组件的作者。

(7)Icon(可选):可以输入图标文件(.gif、.jpg或.pgn格式)的相对路径,它代表组件并在组件的参数编辑器中显示为标头。默认图像是AlteraMegaCore功能图标。

(8)Documentation(可选):可以添加链接到组件的文件中,右键点击组件库中的组件,选择Details时该选项会出现。

①要指定一个Internet链接,其路径以http://开始,如:/datasheets/my_memory_controller.html。

②要指定文件系统中的文件,对于Window,其路径以file:////开始,如:file:////company_server/datasheets/my_memory_controller.pdf。

③对于Linux,其路径以file:///开始。

2)Files标签页

组件编辑器的Files标签页可以指定综合和仿真的硬件描述语言文件。对于已经编辑好的HDL文件的自定制组件,在Files标签页中可以直接指定HDL文件;对于没有编辑好的HDL文件的自定制组件,可以使用Files标签页来创建顶层HDL模板文件。

(1)对于已经编辑好的HDL文件(本例),点击Files标签页中SynthesisFiles下的“+”按钮,添加应该包含的自定制组件HDL接口描述文件及其他支持文件。如图4.17所示,添加DDS_controller.v文件,并指示为顶层文件。

一个组件必须将HDL文件指定为包含顶层模块的顶层文件。SynthesisFiles列表也可包含时序约束文件,或需要在QuartusⅡ中综合和编译的其他文件。组件的综合文件在Qsys系统生成过程中被复制到生成输出目录中。

(2)对于还没有编写好的HDL文件,可以使用组件编辑器来定义组件,对组件创建一个包含信号和参数的简单的顶层综合文件,然后可以编辑该HDL文件来添加自定制组件行为的接口描述及相关逻辑。开始时需要首先在Parameters、Signals和Interfaces标签页指定组件的信息,然后点击Files标签页SynthesisFiles下的CreateSynthesisFilefromSignals按钮(如图4.17中灰色按钮所示),组件编辑器按照指定的参数和信号来创建一个HDL文件模板。图4.17Qsys组件编辑器Files标签页

Files标签页其他功能介绍如下:

(1)分析综合文件。在Files标签页中指定了顶层HDL文件后,点击SynthesisFiles下面的AnalyzeSynthesisFiles按钮来分析顶层中的参数和信号,然后从Top-levelModule列表中选择顶层模块。如果在HDL文件中有一个单一模块或实体,那么Qsys自动填入Top-levelModule列表(本例及如此)。

一旦分析完成并选择了顶层模块,顶层模块中的参数和信号就会被自动用作组件的参数和信号,在Parameters和Signals标签页上可以查看这些参数和信号。由于还没有完全定义信号和接口类型,组件编辑器在这一阶段可能会报告错误或警告,如图4.17所示。在该阶段不能随便添加或删除指定HDL文件所创建的参数或信号。

(2)指定仿真文件。要仿真Qsys生成的系统,必须指定组件的VHDL或Verilog仿真文件。当用户将组件添加到Qsys系统并且选择生成Verilog或VHDL仿真文件时,将生成对应组件的仿真文件。

大多数情况中,这些文件和综合文件相同。如果已经编写了自定制组件的HDL仿真文件,那么除了使用综合文件以外还可以直接使用它们,或者使用它们替代综合文件。要将综合文件用作仿真文件,在Files标签页中,可点击CopyFromSynthesisFiles按钮将综合文件的列表复制到VerilogSimulationFiles或VHDLSimulationFiles列表。

3)Parameters标签页

组件编辑器的Parameters标签页可以指定用于Qsys系统中配置组件的实例参数。Parameters列表显示了在顶层HDL模块中声明的HDL参数及类型,用户不可以随意添加或删除它们,除非重新编辑组件的HDL描述源文件。

本实例中所使用的DDS_controller.v描述中没有使用参数。对于使用组件编辑器来创建组件HDL描述模板文件的用户,可以使用Parameters表来指定每个参数的以下信息:

(1)Name:参数名。

(2)DefaultValue:设置组件在调用实例中使用的默认值。

(3)Editable:指定用户是否可以编辑参数值。

(4)Type:定义参数类型,如字符串、整型数、布尔类型、std_logic、逻辑矢量等。

(5)Group:可以在参数编辑器中将参数分组。

(6)Tooltip:可以添加参数说明。

可以点击该标签页中的PreviewtheGUI按钮查看所声明的参数是如何出现在参数编辑器中的。

在参数编辑器中HDL参数应该遵循以下规则:

(1)可编辑的参数不能包含计算表达式。

(2)如果参数<n>定义信号的宽度,则表示信号宽度的格式为<n-1>:0。

4)Signals标签页

组件编辑器的Signals标签页用于指定组件中的每个信号的接口及信号类型。将组件HDL描述文件添加到Files标签上的SynthesisFiles表后,点击Files标签页中的AnalyzeSynthesisFiles按钮,顶层模块上的信号将出现在Signals标签页中。

注意:如果还没有组件顶层HDL描述文件,则可以点击Signals标签页中的AddSignal按钮来添加组件的每个顶层信号,并在Name、Interface、SignalType、Width和Direction列中输入或选择相应的值。用户可以使用窗口底部的错误和警告信息来指导相关参数的选择。通过双击Name列可编辑信号的名称。

注意:如果在Files标签页中已经分析了组件的顶层HDL文件,就不可以在Signals标签上添加或删除信号,也不能更改信号的名称。要更改信号,就必须编辑HDL描述文件,然后重新添加到Files标签页中进行分析。

Signals标签页中的Interface列可以对接口分配信号。每个信号必须属于一个接口并且基于该接口分配一个合法的信号类型。要创建一个新的指定类型的接口,可以从Interface列的列表中选择new<interfacetype>,则新的接口就可以用于接下来的信号分配,如图4.18所示。

注意:接口名称可以在Interfaces标签页中进行编辑,但不可以在Signals标签页中编辑。

依据图4.15及组件HDL接口描述文件DDS_controller.v,在Signals标签页中为每个信号指定相应的Interface类型。例如iCLK信号,从Interface列的列表中选择newClockInput,并在SignalType列中选择clk。

图4.15中对应Avalon从接口的信号其Interface均为avalon_slave_0类型,根据信号类型在SignalType列中选择对应的信号类型,如32位的iDATA信号是Avalon总线从端口的写数据总线,因此在SignalType中选择writedata,iRD_N是Avalon总线从端口的读信号,低电平有效,因此选择read_n;而图4.15中对应DDS接口信号(即设备端的信号),包括外部时钟信号iOSC_50,需要在Interface列中选择newConduit,建立conduitend接口类型,并在SignalType列中选择export导出这些信号。设置好的Signals标签页信号及其类型如图4.19所示。图4.18Qsys组件编辑器Signals标签页图4.19设置好的Signals标签页信号及其类型

5)Interfaces标签页

组件编辑器的Interfaces标签页用于管理组件的每个接口的设置。当创建好的组件例化添加到Qsys系统中时,出现在Signals标签页中的接口名称将显示在QsysSystemContents标签中。

在Interfaces标签页中,用户可以配置Signals标签中Interface列所设置的每个接口的类型和属性,如图4.20所示的avalon_slave_0接口的类型和属性。接口的类型和属性设置可以参考图4.19中的错误信息,这些信息已经告诉用户各接口应该如何设置。某些接口显示了描述接口时序的波形,如果需要更新时序参数,则波形自动更新。图4.20Qsys组件编辑器Interfaces标签页

6)保存组件

点击组件编辑器界面下方的Finish按钮保存组件,组件编辑器将组件保存到文件名为<component_name>_hw.tcl的文件,如图4.21所示,本例为DDS_controller_hw.tcl文件。用户也可以将组件文件移到一个新的目录,以便其他用户可以在系统中使用该组件。_hw.tcl文件包含其他文件的相对路径,所以如果移动一个_hw.tcl文件,那么也应该移动所有与其相关的HDL及其他文件。图4.21保存组件

7)在Qsys中调用自定制元件

自定制组件生成后,可以在Qsys的组件列表下的User_IP组(在图4.16的Group中输入的名称)中找到名为DDS_controller的组件,双击DDS_controller组件,可以在Qsys系统中添加该组件的例化,如图4.22所示。图4.22Qsys中的自定制元件及其例化

3.自定制元件的调用

启动QuartusⅡEDA软件工程,通过在Qsys中加入所需的集成IP核(包括NiosⅡ软核处理器、存储器和各种外围设备)快速为自己的设计项目定制处理器硬件系统,如本例需要在Qsys中分别添加NiosⅡ处理器(NiosⅡ_cpu)、DDS信号产生模块(DDS_controller_1)、外部输入控制信号(pio_sw_in,用来控制输出信号频率)、处理器程序存储器(sdram)以及下载调试接口(jtag_uart)等设备,如图4.22所示。其中DDS_controller_1是自定制元件的例化模块,通过该模块将DDS信号产生模块(图4.14框图所描述的模块,如图4.23中的DDS_Module模块)挂接到Avalon总线上。图4.23Qsys中定制产生的处理器及外设模块

在Qsys中完成一定的参数配置(如基地址、中断等)并生成Qsys系统后,一个以NiosⅡ软核处理器为核心的嵌入式系统的硬件部分即定制完成。完整的Qsys系统工程如图4.23所示。图中,My_Interrupt_cpu即为Qsys中定制的处理器模块,DDS_Module为图4.14框图所描述的DDS信号产生模块。SW[0]接pio_sw_in_export信号控制DDS输出信号频率,clk_50M为50MHz系统时钟,sys_clock与clk_50M频率相同。图4.23中的DRAM_<xxx>均为SDRAM存储器信号。DDS_Module的q[9..0]是输出正弦波信号,DDS_oDATA[31..0]与q[9...0]一样,但可以通过NiosⅡ处理器RD读信号读入并显示到计算机上。

4.自定制元件的NiosⅡ软件控制与测试

在Qsys界面选择Tools->NiosⅡSoftwareBuildToolsforEclipse菜单命令,启动Eclipse软件编程工具,选择File-New->NiosⅡApplicationandBS

温馨提示

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

最新文档

评论

0/150

提交评论