收藏 分销(赏)

FPGA自定义组件实例1-DDS信号产生模块.docx

上传人:w****g 文档编号:3367696 上传时间:2024-07-03 格式:DOCX 页数:30 大小:5.49MB
下载 相关 举报
FPGA自定义组件实例1-DDS信号产生模块.docx_第1页
第1页 / 共30页
FPGA自定义组件实例1-DDS信号产生模块.docx_第2页
第2页 / 共30页
FPGA自定义组件实例1-DDS信号产生模块.docx_第3页
第3页 / 共30页
FPGA自定义组件实例1-DDS信号产生模块.docx_第4页
第4页 / 共30页
FPGA自定义组件实例1-DDS信号产生模块.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、4.4.3 自定义组件实例1-DDS信号产生模块1、启动Quatus II,并且打开Test_DDS工程根据图4.14,修改形成下图2、Tool-Qysy 启动Qsys将自定制元件的Verilog HDL接口描述文件DDS_controner.v设计好,并且放在Test_DDS工程目录中。3、双击Qsys界而左边Library组件库中Project下的New Component打开Qsys组件编辑器(或选择菜单FileNew Component),如图4.16所示。组件编辑器(Component Editor)有5个标签页。n Component Type标签页n Files标签页n Para

2、meter标签页n Signals标签页n Interfaces标签页1)Component Type标签页Component Type标签页可以指定关于自定制组件的以下信息:(1)Name:指定_hw.tcl文件名中使用的名称(如输入DDS_Controller).对十不是基于已经编辑好的HDL文件的自定制组件,也指定项层模块名称。(2)Display name(可选):识别参数编辑器GUI中的组件(如输入DDS_Controller),也出现在组件库中的project下和Qsys界面的System Contents标签上。(3)Version:指定组件的版本编号(如1 .0)。(4)Gro

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

4、y下定制的组中。(5)Deseription(可选):组件描述(如输入DDS_Controller)。(6)Created by(可选):指定组件的作者。(7)Icon(可选):可以输入图标文件(.gif、.jpg或. pgn格式)的相对路径,它代表组件并在组件的参数编辑器中显示为标头。默认图像是Altera MegaCore功能图标。(8)Documentation(可选):可以添加链接到组件的文件中,右键点击组件库中的组件,选择Details时该选项会出现。要指定一个Internet链接,其路径以http:/开始,如:要指定文件系统中的文件,对于Window,其路径以file:/开始,如:

5、file:/company_server/datasheets/my_memory_eontroller.pdf。对于Linux,其路径以file:/开始。填写好内容的Component Type标签页如下图所示。2)Files标签页n 组件编辑器的FileS标签页可以指定综合和仿真的硬件描述语言文件。n 对于已经编辑好的HDL文件的自定制组件,在FileS标签页中可以直接指定HDL文件;n 对没有编辑好的HDL文件的自定制组件,可以使用Files标签页来创建顶层HDL模板文件。(1) 对于已经编辑好的HDL文件(本例),点击Files标签页中Synthesis Files下的“+”按钮,添加

6、应该包含的自定制组件 HDL接口描述文件及其他支持文件。如图4.17所示,添加DDS_Controller.v文件,并指示为顶层文件。一个组件必须将HDL文件指定为包含顶层模块的顶层文件。Synthesis Files列表也可包含时序约束文件,或需要在Quartus 中综合和编译的其他文件。组件的综合文件在Qsys系统件生成过程中被复制到生成输出目录中。(2)对于还没有编写好的HDL文件,可以使用组件编辑器来定义组件,对组件创建一个包含信号和参数的简单的顶层综合文件,然后可以编辑该HDL文件来添加自定制组件行为的接口描述及相关逻辑。开始时需要首先在Parameters、Signals和Inte

7、rfaces标签页指定组件的信息,然后点击Fi les标签页Synthesis Files下的Create Synthesis File from signals按钮。 n Files标签页其他功能(1)分析综合文件。在Files标签页中指定了顶层HDL文件后,点击synthesis FileS下面的Analyze Synthesis Files按钮来分析顶层中的参数和信号,然后从Top-level Module列表中选择顶层模块。下面窗口报告:出现错误修改DDS_Controller.v,再点击synthesis FileS下面的Analyze Synthesis Files按钮进行分析,最

8、终通过。如下面窗口所示。如果在HDL文件中有一个单一模块或实体,那么Qsys自动填入Top-level Module列表。分析完成并选择了顶层模块,顶层模块中的参数和信号就会被自动用作组件的参数和信号,在Parameters和Signals标签页上可以查看这些参数和信号。由于还没有完全定义信号和接口类型,组件编辑器在这一阶段可能会报告错误或警告,如图4.17所示。在该阶段不能随便添加或删除指定HDL文件所创建的参数或信号。(2)指定仿真文件要仿真Qsys生成的系统,必须指定组件的VHDL或Verilog仿真文件。当用户将组件添加到Qsys系统并且选择生成Verilog或VHDL仿真文件时,将生

9、成对应组件的仿真文件。大多数情况中,这些文件和综合文件相同。如果已经编写了自定义组件的HDL仿真文件,那么除了使用综合文件以外还可以直接使用它们,或者使用它们替代综合文件。要将综合文件用作仿真文件,在Files标签页中,可点击Copy From Sythesis Files按钮将综合文件的列表复制到Verilog Simulation Files或VHDL Simulation Files列表。填写好的File标签页如下图所示。3)Parameters标签页点开Parameters标签页,如下图所示。组件编辑器的Parameters标签页可以指定用于Qsys系统中配置组件的实例参数。Param

10、eters列表显示了在顶层HDL模块中声明的HDL参数及类型,用户不可以随意添加或删除它们,除非重新编辑组件的HDL描述源文件。本实例中所使用的DDS_controller.v描述中没有使用参数。对使用组件编辑器来创建组件HDL描述模板文件的用户,可以使用Parameters表来指定每个参数的以下信息:(1)Name:参数名。(2)Default Value:设置组件在调用实例中使用的默认值。(3)Editable:指定用户是否可以编辑参数值。(4) Type:定义参数类型,如字符串、整型数、布尔类型、std_logic、逻辑矢量等。(5)Group:可以在参数编辑器中将参数分组。(6)Too

11、ltip:可以添加参数说明。可以点击该标签页中的Preview the GUI按钮查看所声明的参数是如何出现在参数编辑器中的。在参数编辑器中HDL参数应该遵循以下规则: (1)可编辑的参数不能包含计算表达式。 (2)如果参数定义信号的宽度,则表示信号宽度的格式为:0。可以点Preview the GUI 按钮,查看自定义组件符号。如下图所示。还可以点击Documentation按钮观察。如下图所示。4)Signals标签页点开Signals标签页,如下图所示。组件编辑器的Signals标签页用于指定组件中的每个信号的接口及信号类型。将组件HDL描述文件添加到Files标签上的Synthesis

12、 Files表后,点击Files标签页中的Analyze Synthesis Files按钮,顶层模块上的信号将出现在Signals标签页中。 注意:如果还没有组件顶层HDL描述文件,则可以点击Signals标签的Add Signal按钮来添加组件的每个顶层信号,并在Name、Interface、Signal Type、Width和Direction列中输入或选择相应的值。用户可以使用窗口底部的错误和警告信息来指导相关参数的选择。通过双击Name列可编辑信号的名称。注意:如果在Files标签页中已经分析了组件的顶层HDL文件,就不可以在Signals标签上添加或删除信号,也不能更改信号的名称。

13、要更改信号,就必须编辑HDL描述文件,然后重新添加到Files标签页中进行分析。Signals标签页中的Interface列可以对接口分配信号。每个信号必须属于一个接口并且基于该接口分配一个合法的信号类型。要创建一个新的指定类型的接口,可以从Interface列的列表中选择new,则新的接口就可以用于接下来的信号分配,如图4.18所示。注意:接口名称可以在Interfaces标签页中进行编辑,但不可以在Signals标签页中编辑。依据图4.15及组件HDL接口描述文件DDS_controller.v,在Signals标签页中为每个信号指定相应的Interface类型。例如iCLK信号,从Int

14、erface列的列表中选择new Clock Input,并在Signal Type列中选择clk。图4.15中对应Avalon从接口的信号其Interface均为avalon_Slave_0类型,根据信号类型在Signal Type列中选择对应的信号类型,如32位的iDATA信号是Avalon总线从端口的写数据总线,因此在Signal Type中选择writedata,iRD_N是Avalon总线从端口的读信号,低电平有效,因此选择read_n;而图4.15中对应DDS接口信号(即设备端的信号),包括外部时钟信号iOSC_50,需要在Interface列中选择new Conduit,建立Co

15、nduit end接口类型,并在Signal Type列中选择export导出这些信号。设置好的signals标签页信号及其类型如图4.19或下图所示。在Signals标签页中设置好所有接口信号的类型以后,在标签页下面可能会显示出很多错误和警告信息。根据这些信息,可以进一步完成Interfaces标签页的设置。5)Interfaces标签页点开Interfaces标签页,如下图所示。组件编辑器的Interfaces标签页用于管理组件的每个接口的设置。当创建好的组件例化添加到Qsys系统中时,出现在Signals标签页中的接口名称将显示在Qsys System Contents标签中。在Inte

16、rfaces标签页中,用户可以配置Signals标签中Interface列所设置的每个接口的类型和属性,如图4.20所示的avalon_slave_0接口的类型和属性。填写好的Interfaces标签页,如下图所示。(注意:有报错!)滚动填写好的Interfaces标签页,如下图所示。再滚动填写好的Interfaces标签页,如下图所示。再滚动填写好的Interfaces标签页,如下图所示。注意:错误提示:trset_sink requires associated clock点开上图中associated clock下拉框,如下图所示。选clock_sink,系统报告没有错误和警告。如下图所

17、示。接口的类型和属性设置可以参考图4.19中的错误信息,这些信息已经告诉用户各接口应该如何设置。某些接口显示了描述接口时序的波形,如果需要更新时序参数,则波形自动更新。当Interfaces标签页设置好后,所有的错误及警告信息将消失,信息栏提示Info:No errors or warnings。通过Interfaces标签页下而的Remove Interfaces With No Signals按钮,可以删除没有信号的接口(多余接口)。6)保存组件点击组件编辑器界面下方的Finish按钮保存组件,组件编辑器将组件保存到文件名为_hw.tel的文件,如图4.21或下图所示,本例为DDS_con

18、troler_hw.tel文件。用户也可以将组件文件移到一个新的目录,以便其他用户可以在系统中使用该组件_hw.tcl文件包含其他文件的相对路径,所以如果移动一个_hw.tcl文件,那么也应该移动所有与其相关的HDL及其他文件。Altera一般建议将_hw.tcl文件和与它们相关的文件保存到Quartus 工程目录的ip/目录中。7)在Qsys中调用自定制元件保存后的Library窗口。如下图所示。自定制组件生成后,可以在Qsys的组件列表下的User_IP组(在图4.16的Group中输入的名称)中找到名为DDS_controller的组件;点开User_IP,结果如下图所示:双击DDS_c

19、ontroller的组件,可以在Qsys系统中添加该组件的例化,如图4.22所示。勾Show signals,结果如下图所示。点Finish按钮,结果如下图所示。注意:有两个报错。clock_sink,reset_sink没有连接。点连接clock_sink,reset_sink的白点,进行连接。错误消失。如下图所示。3自定制元件的调用(1)启动Quartus EDA软件工程;再启动Qsys;Tool-Qsys不打开任何系统文件。(2)通过产在Qsys中加入所需的集成IP核(包括NioS软核处理器、存储器和各种外围设备)快速为自己的设计项日定制处理器硬件系统;如本例需要在Qsys中分别添加:n

20、 Nios 处理器(Nios _cpu);点Add有2个报错。选中后错误排除。其余选默认。点Finish上面图中选Edit-Rename,将实例名改为:Nios2_cpu_0n 添加DDS信号产生模块(DDS_Controller_1);点开User_IP,选中DDS_Controller,点Add点Finish;选Edit-Rename,将DDS_Controller_0改为DDS_Controller_1。n 添加外部输入控制信号(pio_sw_in,用来控制输出信号频率);Add选Input,然后点Finish,并且将pci_0改为pci_sw_inn 添加处理器程序存储器(sdram)

21、;AddFinishn 以及下载调试接口(jtag_uart)等设备;如图4.22所示。其中DDS_Controller_1是自定制元件的例化模块,通过该模块将DDS信号产生模块(图4.14框图所描述的模块,如图4.23中的DDS_Module模块)挂接到Avalon总线上。(3)在Qsys中完成一定的参数配置(如基地址、中断等)并生成Qsys系统后,一个以Nios 软核处理器为核心的嵌入式系统的硬件部分即定制完成。n 完整的Qsys系统工程如图4.23所示。n 图中,My_Interrupt_cpu即为Qsys中定制的处理器模块;n DDS_Module为图4.14框图所描述的DDS信号产生

22、模块。n SW0接pio_sw_in_export信号控制DDS输出信号频率,n clk_50M为50 MHz系统时钟,n sys_clock与clk_50M频率相同。n 图4.23中的DRAM_均为SDRAM存储器信号。n DDS_Module的q9.0是输出正弦波信号,n DDS_oDATA31.0与q9.0一样,但可以通过Nios 处理器RD读信号读入并显示到计算机上。(4)按照EDA软件的操作流程,编译该Quartus工程,根据硬件开发板上器件型号选择器件、锁定引脚并完全编译产生FPGA下载文件。初步结果:图1(上左半部分)图2(上右半部分)图3(下左半部分)图3(下右半部分)注意:0 Errors, 0 Warnings因此可以进一步生成Qsys的系统元件选Generate - Generate 生成My_interrupt_cpu系统元件。退出Qsys在Quartus II下,打开下图对应的bdf文件。选File-Create/Update -Create Symbol File for Current File产生与书上DDS_Module对应的符号文件。在工程中新建新的bdf文件。File-New-Block Diagram/Schematic File添加生成的组件到bdf文件。如下图所示。这就是p124 图4.23中的组件。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服