ISE开发环境使用指南[FPGA开发实用教程].docx

上传人:小飞机 文档编号:1894035 上传时间:2022-12-24 格式:DOCX 页数:31 大小:5.25MB
返回 下载 相关 举报
ISE开发环境使用指南[FPGA开发实用教程].docx_第1页
第1页 / 共31页
ISE开发环境使用指南[FPGA开发实用教程].docx_第2页
第2页 / 共31页
ISE开发环境使用指南[FPGA开发实用教程].docx_第3页
第3页 / 共31页
ISE开发环境使用指南[FPGA开发实用教程].docx_第4页
第4页 / 共31页
ISE开发环境使用指南[FPGA开发实用教程].docx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《ISE开发环境使用指南[FPGA开发实用教程].docx》由会员分享,可在线阅读,更多相关《ISE开发环境使用指南[FPGA开发实用教程].docx(31页珍藏版)》请在三一办公上搜索。

1、第1节 ISE套件的介绍与安装 4.1.1 ISE简要介绍Xilinx是全球领先的可编程逻辑完整解决方案的供应商,研发、制造并销售应用范围广泛的高级集成电路、软件设计工具以及定义系统级功能的IP(Intellectual Property)核,长期以来一直推动着FPGA技术的发展。Xilinx的开发工具也在不断地升级,由早期的Foundation系列逐步发展到目前的ISE 9.1i系列,集成了FPGA开发需要的所有功能,其主要特点有:包含了Xilinx新型SmartCompile技术,可以将实现时间缩减2.5倍,能在最短的时间内提供最高的性能,提供了一个功能强大的设计收敛环境; 全面支持Vir

2、tex-5系列器件(业界首款65nm FPGA); 集成式的时序收敛环境有助于快速、轻松地识别FPGA设计的瓶颈; 可以节省一个或多个速度等级的成本,并可在逻辑设计中实现最低的总成本。 Foundation Series ISE具有界面友好、操作简单的特点,再加上Xilinx的FPGA芯片占有很大的市场,使其成为非常通用的FPGA工具软件。ISE作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Xilinx平台。4.1.2 ISE功能简介ISE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助

3、任何第三方EDA软件。设计输入:ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器(The ISE Text Editor),用于原理图编辑的工具ECS(The Engineering Capture System),用于生成IP Core的Core Generator,用于状态机设计的StateCAD以及用于约束文件编辑的Constraint Editor等。 综合:ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌Mentor Graphics公司的LeonardoSpectrum和Synplicity公司的Synplify,实现无缝链接

4、。 仿真:ISE本身自带了一个具有图形化波形编辑功能的仿真工具HDL Bencher,同时又提供了使用Model Tech公司的Modelsim进行仿真的接口。 实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。 下载:下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流文件,还包括了ImPACT,功能是进行设备配置和通信,控制将程序烧写到FPGA芯片中去。 使用ISE进行FPGA设计的各个过程可能涉及到的设计工具如表4-1所示。 表 4-1 ISE设计工具表4.1.3 ISE软件的安装 E9.1软件安装的基本硬件要求如下:CPU在P III

5、以上,内存大于256M,硬盘大于4G的硬件环境安装。为了更好地使用软件,至少需要512M内存,CPU的主频在2GHz以上。本书使用的集成开发环境是ISE 9.1,仿真工具是ModelSim 6.2b,综合工具为Synplify Pro 8.8。其中ISE、ModelSim软件和Synplify软件不同版本之间的差异不是很大,所以操作和设计结果的差别也是很小的。4.1.4 ISE软件的基本操作 1ISE用户界面 ISE9.1i的界面如图4-6所示,由上到下主要分为标题栏、菜单栏、工具栏、工程管理区、源文件编辑区、过程管理区、信息显示区、状态栏等8部分。图4-6 ISE的主界面标题栏:主要显示当前

6、工程的名称和当前打开的文件名称。 菜单栏:主要包括文件(File)、编辑(Edit)、视图(View)、工程(Project)、源文件(Source)、操作(Process)、窗口(Window)和帮助(Help)等8个下拉菜单。其使用方法和常用的Windows软件类似。 工具栏:主要包含了常用命令的快捷按钮。灵活运用工具栏可以极大地方便用户在ISE中的操作。在工程管理中,此工具栏的运用极为频繁。 工程管理区:提供了工程以及其相关文件的显示和管理功能,主要包括源文件视图(Source View),快照视图(Snapshot View)和库视图(Library View)。其中源文件视图比较常用

7、,显示了源文件的层次关系。快照是当前工程的备份,设计人员可以随时备份,也可以将当前工程随时恢复到某个备份状态。快照视图用于查看当前工程的快照。执行快照功能的方法是选择菜单项Project | Take Snapshot。库视图则显示了工程中用户产生的库的内容。 源文件编辑区:源文件编辑区提供了源代码的编辑功能。 过程管理区:本窗口显示的内容取决于工程管理区中所选定的文件。相关操作和FPGA设计流程紧密相关,包括设计输入、综合、仿真、实现和生成配置文件等。对某个文件进行了相应的处理后,在处理步骤的前面会出现一个图标来表示该步骤的状态。信息显示区:显示ISE中的处理信息,如操作步骤信息、警告信息和

8、错误信息等。信息显示区的下脚有两个标签,分别对应控制台信息区(Console)和文件查找区(Find in Files)。如果设计出现了警告和错误,双击信息显示区的警告和错误标志,就能自动切换到源代码出错的地方。 状态栏:显示相关命令和操作的信息。 2ISE菜单的基本操作 ISE所有的操作都可通过菜单完成,下面简要介绍ISE的菜单命令以及功能。 (1)File菜单 File菜单的命令包括:New Project、Open Project、Open Examples、Close Project、Save Project As、New、Open、Save、Save As、Save All、Prin

9、t Preview、Print、Recent Files、Recent Projects以及Exit等。 New Project命令:用于新建工程,是开始设计的第一步。ISE会为新建的工程创建一个和工程同名的文件夹,专门用于存放工程的所有文件。 Open Project命令:用于打开已有的ISE工程。高版本的ISE可以打开低版本的工程,但需要版本转换,该转换是单向的、不可逆的,因此需要做好版本备份。低版本的ISE不能打开高版本的ISE工程。 Open Examples命令:用于打开ISE提供的各种类型的示例。 Close Project命令:关闭当前工程。如果关闭前未保存文件,ISE会提示用户

10、保存后再退出。 Save Project As命令:可将整个工程另存为其他名字的工程,在大型开发中,常使用该命令来完成版本备份。 New命令:用于新建源文件,可生成原理图、符号以及文本文件。文本文件另存为时可修改其后缀名,以生成.v或.vhd的源文件。 Open命令:用于打开所有Xilinx所支持的文件格式,便于用户查看各类文件资源。 Save、Save As以及Save All命令:分别用于保存当前源文件、另存为当前源文件以及保存所有源文件。用户要在开发当中养成及时保存文件的习惯,避免代码丢失。 Print Preview命令:用于打印预览当前文件,Print用于打印当前文件。 Recent

11、 Files命令:用于查看最近打开的文件。 Recent Projects命令:用于查看最近打开的工程。 Exit命令:用于退出ISE软件。 (2)Edit菜单 Edit菜单的命令包括:Undo、Redo、Cut、Copy、Paste、Delete、Find、Find Next、Find in Files、Language Templates、Select All、Unselect All、Message Filters、Object Properties以及Preference等,大多数命令用于源代码开发中。 Undo命令:用于撤销当前操作,返回到前一状态。 Redo命令:是Undo命令的逆

12、操作,用于恢复被撤销的操作。 Cut命令:剪贴选中的代码, 快捷键为“CRTL+X”。 Copy命令:复制选中的代码, 快捷键为“CRTL+C”。 Paste命令:粘贴剪贴和复制的代码, 快捷键为“CRTL+V”。 Delete命令:删除选中的代码。 Find命令:查找选中的文字,或寻找在其输入框中输入的内容,快捷键为“CRTL+F”。 Find Next命令:寻找下一个要查找的内容,并跳至相应的位置,快捷键为“F3 ”。 Language Templates命令:可打开语言模版,里面有丰富的学习资料,是非常完整的HDL语言帮助手册,其地位类似于VisualC+的MSDN。 Select Al

13、l命令:选中所有的代码,其快捷键为“CRTL+A”。 Unselect All命令:撤销已选中的全部代码,是Select All的逆操作。 Message Filter命令:过滤消息,只显示用户期望的消息。 Preference命令:用于设定ISE的启动参数以及运行参数,有着众多的设置项,最常用的就是第三方EDA软件的关联设置,将在第4.5节详细介绍。 (3)View菜单 View菜单主要管理ISE软件的视图,不涉及FPGA开发中的任何环节,其中常用的命令有Layout Horizontally、Layout Vertically以及Restore Default Layout。 Layout

14、 Horizontally命令:将水平地排列ISE主界面中过程管理区、过程管理区以及代码编辑区等主要栏目。 Layout Vertically命令:将垂直地排列ISE主界面中过程管理区、过程管理区以及代码编辑区等主要栏目。 Restore Default Layout命令:将恢复ISE默认的主界面布局。 (4)Project菜单 Project菜单包含了对工程的各个操作,是设计中最常用的菜单之一,包括New Source、Add Source、Add Copy of source、Cleanup Project Files、Toggle Paths、Archive、Take Snapshot、

15、Make Snapshot Current、Apply Project Properties以及Source Control命令。 New Source命令:用于向工程中添加源代码,可以添加HDL源文件、IP Core以及管脚和时序约束文件。 Add Source命令:将已有的各类源代码文件加入到工程中,Verilog模块的后缀为.v,VHDL模块的后缀为.vhd,IP core源文件为.xco文件或.xaw文件,约束文件的后缀为.ucf。 Add Copy of source命令,将目标文件拷贝一份添加到工程中。 Cleanup Project Files命令:用于清空综合和实现过程所产生的

16、文件和目录。如果在EDIF设计模式中,只清空实现过程所产生的文件。 Toggle Paths命令:用于显示或隐藏非工程文件夹中的远端源文件的路径; Archive命令:用于压缩当前工程,包括所有的文件,默认压缩类型为.zip格式。 Take Snapshot命令:用于产生一个工程快照,即当前目录和远程资源的一个只读记录,常用于版本控制。 Make Snapshot Current命令:用户恢复快照覆盖当前工程。由于该命令会将当前工程删除,所以使用前一定要做好数据备份工作。 Apply Project Properties命令:应用工程属性,会提示用于选择相应工程。 Source Control

17、常用于代码的导入和导出,有Export和Import两个子命令。 (4)Source菜单 Source菜单主要面向工程管理区,包含了对资源文件的各个操作,每个命令的操作也都可以在工程管理区单击右键弹出的对话框中点击实现,包括:Open、Set as Top Module、Use SmartGuide、New Partition、Delete Partition、Partition properties、Partition Force、Remove、Move to library以及Properties等命令。 Open命令:可打开所有类型的源文件,包括.v、.vhd、.xco、.xaw以及.u

18、cf等格式。 Set as Top Module命令:用于将选中的文件设置成顶层模块。只有设置成顶层模块,才能对其综合、实现以及生成相应的二进制比特流文件。 Use SmartGuide命令:允许用户在本次实现时利用上一次实现的结果,包括时序约束以及布局布线结果,可节省实现的时间,但前提是工程改动不大。New Partition命令:新建分区,常用于区域约束。 Delete Partition命令:删除区域约束的分区 Partition properties命令:可设置分区属性,详细说明刻参考4.4.4节内容。 Partition Force命令:包含“Force Synthesis Out-

19、of-data”和“Force Implement Design Out-of-data”两个指令,分别用于分区综合和增量设计。 Remove命令:把选中的文件从工程中删除,但仍保留在计算机硬盘上。 Move to library命令:将选中的源文件移动到相应的库中,以便建立用户文件库。 Properties命令:查看源文件属性,有Synthesis/Implementation Only、Simulation Only以及Synthesis/Imp+ Simulation三种类型,其中Simulation Only类文件只能仿真,不能被综合。 (5)Process菜单 Process菜单包含

20、了工程管理区的所有操作,每个命令的操作也都可以在过程管理区点击相应的图标实现,包括:Inmolement Top Module、Run、Rerun、Rerun All、Stop、Open Without Updating 以及Properties等命令。 Inmolement Top Module命令:完成顶层模块的实现过程。 Run命令:在工程过程栏,选中不同的操作,点击改命令,可分别启动综合、转换、映射、布局布线等过程。 Rerun命令:重新运行Run指令执行的内容。 Rerun All命令:重新运行所有Run指令执行的内容。 Stop命令:停止当前操作,可中止当前操作,包括综合和实现的任

21、一步骤。 Open Without Updating命令:改指令用于打开相应上一次完成的综合或实现过程所产生的文件。 Properties命令:在工程过程栏,选中不同的操作,点击该命令,可设置不同阶段的详细参数。(6)Windows菜单 Windows菜单的主要功能是排列所有窗口,使其易看易管理。通过本菜单可以看到当前打开的所有窗口,并能直接切换到某个打开的窗口。由于各命令操作简单,不再介绍。 (7)Help菜单 Help菜单主要提供ISE所有帮助以及软件管理操作,包括:Help Topics、Software Manuals、Xilinx on the Web、Tutorials、Updat

22、e Software Product Configuration、Tip of the Day、WebUpdata以及About命令。 Help Topics命令:点击后,将自动调用IE浏览器打开ISE的帮助文档。 Software Manuals命令:点击后,将自动打开PDF文件,通过超链接到用户感兴趣的软件使用文档,其内容比网页形式的帮助文档要丰富。 Xilinx on the Web命令:包括完整的Xilinx网络资源,可根据需要点击查看链接。 Tutorials 命令:包括本地快速入门ISE的说明文档和Xilinx网站的入门教学内容,可点击查看。 Update Software Pro

23、duct Configuration 命令:用于更新ISE软件的注册ID,如果试用版用户在试用期间购买了正版软件,不用卸载再重新安装,只需要通过该命令更换ID即可。 Tip of the Day命令:每天提示,可设置或关闭在每次启动ISE时,弹出对话框,列出ISE的最新功能和一个应用技巧。 WebUpdata命令:点击该命令,可自动连接到Xilinx的官方网站,下载最近的软件包并提示用户安装。 About命令:点击该命令将弹出ISE的版本,包括主版本和升级号以及注册ID。 第2节 HDL代码输入4.2.1 新建工程 首先打开ISE,每次启动时ISE都会默认恢复到最近使用过的工程界面。当第一次使

24、用时,由于此时还没有过去的工程记录,所以工程管理区显示空白。选择FileNew Project选项,在弹出的新建工程对话框中的工程名称中输入“one2two”。在工程路径中单击Browse按键,当工程放到指定目录,如图4-7所示。图4-7 利用ISE新建工程的示意图然后点击“Next”进入下一页,选择所使用的芯片类型以及综合、仿真工具。计算机上所安装的所有用于仿真和综合的第三方EDA工具都可以在下拉菜单中找到,如图4-8所示。在图中,我们选用了Virtex4-10芯片,并且指定综合工具为Synplify(Verilog),仿真工具选为ModelSin-SE mixed。图4-8 新建工程器件属

25、性配置表再点击“Next”进入下一页,可以选择新建源代码文件,也可以直接跳过,进入下一页。第页用于添加已有的代码,如果没有源代码,点击“Next”,进入最后一页,单击确认后,就可以建立一个完整的工程。4.2.2 代码输入 在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,会弹出如图4-9所示的New Source对话框。 图4-9 新建源代码对话框左侧的列表用于选择代码的类型,各项的意义如下所示:BMM File: ChipScope Definition and Connection File:在线逻辑分析仪ChipScope文件类型,具有独特的优势和强大的功

26、能,将在M张进行讨论。 IP(Coregen & Architecture Wizard):由ISE的IP Core生成工具快速生成可靠的源代码,这是目前最流行、最快速的一种设计方法,将在4.5节详细讨论。 MEM File: Implementation Constraints File:约束文件类型。 State Disgram:状态图类型。 Test Bench Wavaform:测试波形类型。 User Document:用户文档类型。 Verilog Module:Verilog模块类型。 Verilog Test Fixture:Verilog测试模块类型。 VHDL Module

27、:VHDL模块类型。 VHDL Library:VHDL库类型。 VHDL Packet:VHDL包类型。 VHDL Test Bench:VHDL测试模块类型。 在代码类型中选择Verilog Module选项,在File Name文本框中输入one2two,单击Next进入端口定义对话框,如图4-10所示。图4-10 Verilog模块端口定义对话框其中Module Name就是输入的“one2two”,下面的列表框用于对端口的定义。“Port Name”表示端口名称,“Direction”表示端口方向(可以选择为input、output或inout),MSB表示信号的最高位,LSB表示信

28、号的最低位,对于单位信号的MSB和LSB不用填写。 定义了模块端口后,单击“Next”进入下一步,点击“Finish”按键完成创建。这样,ISE会自动创建一个Verilog模块的例子,并且在源代码编辑区内打开。简单的注释、模块和端口定义已经自动生成,所剩余的工作就是在模块中实现代码。填入的代码如下: module one2two(x_in, flag, y1_out, y2_out); input 7:0 x_in; input flag; output 7:0 y1_out;output 7:0 y2_out; / 以下为手工添加的代码 assign y1_out = flag ? x_in

29、 : 8b0000_0000; assign y2_out = flag ? 8b0000_0000 : x_in; endmodule4.2.3 代码模板的使用 ISE中内嵌的语言模块包括了大量的开发实例和所有FPGA语法的介绍和举例,包括Verilog HDL/HDL的常用模块、FPGA原语使用实例、约束文件的语法规则以及各类指令和符号的说明。语言模板不仅可在设计中直接使用,还是FPGA开发最好的工具手册。在ISE工具栏中点击 图标,或选择菜单“Edit | Language Templates”,都可以打开语言模板,其界面如图4-11所示。 图4-11 ISE语言模版用户界面界面左边有4

30、项:ABEL、UCF 、Verilog以及VHDL,分别对应着各自的参考资料。其中ABEL语言主要用于GAL和ISP等器件的编程,不用于FPGA开发。 以Verilog为例,点击其前面的“+”号,会出现Common Constructs、Device Primitive Instantiation、Simulation Constructs、Synthesis Constructs以及User Templates 5个子项。其中第1项主要介绍Verilog开发中所用的各种符号的说明,包括注释符以及运算符等。第2项主要介绍Xilinx 原语的使用,可以最大限度地利用FPGA的硬件资源。第3项给出

31、了程序仿真的所有指令和语句的说明和示例。第4项给出了实际开发中可综合的Verilog语句,并给出了大量可靠、实用的应用实例, FPGA开发人员应熟练掌握该部分内容。User Templates项是设计人员自己添加的,常用于在实际开发中统一代码风格。 下面以调用全局时钟缓冲器模版为例,给出语言模板的使用方法。在语言模板中,选择“Device Primitive Instantiation FPGA Clock Components Clock Buffers Global Clock Buffer(BUFG)”,即可看到调用全局时钟缓冲的示例代码,如图4-12所示。图4-12 全局时钟缓冲器的语

32、言模板4.2.3 Xilinx IP Core的使用1. Xilinx IP core基本操作 IP Core就是预先设计好、经过严格测试和优化过的电路功能模块,如乘法器、FIR滤波器、PCI接口等,并且一般采用参数可配置的结构,方便用户根据实际情况来调用这些模块。随着FPGA规模的增加,使用IP core完成设计成为发展趋势。 IP Core生成器(Core Generator)是Xilinx FPGA设计中的一个重要设计工具,提供了大量成熟的、高效的IP Core为用户所用,涵盖了汽车工业、基本单元、通信和网络、数字信号处理、FPGA特点和设计、数学函数、记忆和存储单元、标准总线接口等8大

33、类,从简单的基本设计模块到复杂的处理器一应俱全。配合Xilinx网站的IP中心使用,能够大幅度减轻设计人员的工作量,提高设计可靠性。 Core Generator最重要的配置文件的后缀是.xco,既可以是输出文件又可以是输入文件,包含了当前工程的属性和IP Core的参数信息。 启动Core Generato有两种方法,一种是在ISE中新建IP类型的源文件,另一种是双击运行开始 程序 Xilinx ISE 9.1i Accessories Core Generator。限于篇幅,本节只以调用加法器IP Core为例来介绍第一种方法。 在工程管理区单击鼠标右键,在弹出的菜单中选择New Sour

34、ce,选中IP类型,在File Name文本框中输入adder(注意:该名字不能出现英文的大写字母),然后点击Next按键,进入IP Core目录分类页面,如图4-13所示。 图4-13 IP Core目录分类页面下面以加法器模块为例介绍详细操作。首先选中“Math Funcation Adder & Subtracter Adder Subtracter v7.0”,点击“Next”进入下一页,选择“Finish”完成配置。这时在信息显示区会出现“Customizing IP.”的提示信息,并弹出一个“Adder Subtracter”配置对话框,如图4-14所示。图4-14 加法器IP C

35、ore配置对话框然后,选中adder,设置位宽为16,然后点击“Generate”,信息显示区显示Generating IP.,直到出现Successfully generated adder的提示信息。此时在工程管理区出现一个“adder.xco”的文件。这样加法器的IP Core已经生成并成功调用。 IP Core在综合时被认为是黑盒子,综合器不对IP Core做任何编译。IP Core的仿真主要是运用Core Generator的仿真模型来完成的,会自动生成扩展名为.v的源代码文件。设计人员只需要从该源文件中查看其端口声明,将其作为一个普通的子程序进行调用即可。下面给出加法器的应用实例。

36、 例4-1 调用加法器的IP core,并用其实现图4-15所示的2级加法树。图4-15 2级加法器示意图按照本节介绍的步骤生成2个加法器的IP core Add16和Add17,前者用于实现第1级的加法,后者用于实现第2级加法,对应的代码为: module addertree(clk, a1, a2, b1, b2, c);input clk; input 15:0 a1; input 15:0 a2; input 15:0 b1; input 15:0 b2; output 17:0 c; wire 16:0 ab1, ab2; adder16 adder16_1(.A(a1), .B(a

37、2), .Q(ab1), .CLK(clk); adder16 adder16_2(.A(b1), .B(b2), .Q(ab2), .CLK(clk); adder17 adder17(.A(ab1), .B(ab2), .Q(c), .CLK(clk);endmodule上述程序经过综合后,得到如图4-16所示的RTL级结构图。图4-16 2级加法树的RTL结构图经过ModelSim 6.2b仿真测试,得到的功能波形图如图4-17所示。由于每一级加法器会引入一个时钟周期的延迟,因此,两级加法器就会引入2个时钟的周期,可以看出,仿真结果和设计分析的结果是一样的。图4-17 2级加法树仿真结果

38、示意图Xilinx公司提供了大量的、丰富的IP Core资源,究其本质可以分为两类:一是面向应用的,和芯片无关;还有一种用于调用FPGA底层的宏单元,和芯片型号密切相关。下面分别对这两类给出数字频率合成器模块DDS的调用实例。 2. DDS模块IP Core的调用实例DDS算法原理 DDS技术是一种新的频率合成方法,是频率合成技术的一次革命,最早由JOSEPH TIERNEY等3人于1971年提出,但由于受当时微电子技术和数字信号处理技术的限制,DDS技术没有受到足够重视,随着数字集成电路和微电子技术的发展,DDS技术日益显露出它的优越性。 DDS的工作原理为:在参考时钟的驱动下,相位累加器对

39、频率控制字进行线性累加,得到的相位码对波形存储器寻址,使之输出相应的幅度码,经过模数转换器得到相应的阶梯波,最后再使用低通滤波器对其进行平滑,得到所需频率的平滑连续的波形,其结构如图4-18所示。图4-18 DDS的结构框图相位累加器由N位加法器与N位累加寄存器级联构成,结构如图4-19所示。每来一个时钟脉冲fclk,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字

40、进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。图4-19 DDS相位累加器波形存储器所储存的幅度值与余弦信号有关。余弦信号波形在一个周期内相位幅度的变化关系可以用图4-20中的相位圆表示,每一个点对应一个特定的幅度值。一个N位的相位累加器对应着圆上 个相位点,其相位分辨率为 。若 ,则共有16种相位值与16种幅度值相对应

41、,并将相应的幅度值存储于波形存储器中,存储器的字节数决定了相位量化误差。在实际的DDS中,可利用正弦波的对称性,可以将 范围内的幅、相点减小到 内以降低所需的存储量,量化的比特数决定了幅度量化误差。图4-20 三角函数相位与幅度的对应关系波形存储器的输出送到 D/A 转换器,D/A 转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。DDS 在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供的信号源优于模拟信号源。 DDS模块的

42、输出频率 是系统工作频率 、相位累加器比特数N以及频率控制字K三者的一个函数,其数学关系由式(4.1)给出。 (4.1)它的频率分辨率,即频率的变化间隔为; (4.2)DDS IP Core的调用 DDS模块IP Core的用户界面如图4-21所示。该IP Core支持余弦、正弦以及正交函数的输出,旁瓣抑制比的范围从18dB 到115dB,最小频率分辨率为0.02Hz,可同时独立支持16个通道。其中的查找表既可以利用分布式RAM,也可利用块RAM。图4-21 DDS IP Core的用户界面DDS模块的信号端口说明如下:(1)CLK:输入信号,DDS模块的工作时钟,对DDS输出信号的频率和频率

43、分辨率有很大的影响。即式(5.40)中的 。 (2)A:输入信号,由于DDS模块的相位增量存储器和相位偏置寄存器共用一个数据通道,A端口信号用于片选相位增量寄存器和偏置寄存器。当A端口的最高位为1时,相位偏置寄存器被选中;当其为0时,则选中相位增量寄存器。其余的低4位比特用于片选DDS的输出通道,最多可以输出 16路信号。 (3)WE:输入信号,写有效控制信号,高有效。只有当WE为高时,DATA端口的数值才能被写入相应的寄存器中。 (4)DATA:输入信号,时分复用的数据总线,用于配置相位增量寄存器和相位偏置寄存器。 (5)ACLR:输入信号,异步的清空信号,高有效。当ACLR等于1时,DDS

44、模块内部所有的寄存器都被清空,RDY信号也会被拉低。 (6)SCLR:输入信号,同步的清空信号,高有效。当SCLR等于1时,DDS模块内部所有的寄存器都被清空,RDY信号也会被拉低。 (7)RDY:输出信号,输出握手信号。当其为高时,标志输出信号已经准备好。 (8)CHANNEL:输出信号,输出通路的下标。用于表明当前时刻输出端为哪一路输出,其位宽由通道数决定。 (9)SINE:输出信号,用于输出正弦的时间序列。 (10)COSINE:输出信号,用于输出余弦的时间序列。例4-2 使用DDS IP Core实例化一个4MHz,分辨率为0.1Hz,带外抑制比为60dB的正、余弦信号发生器,假设工作

45、时钟为100MHz。 IP Core直接生成DDS的Verilog模块接口为: module mydds( DATA, WE, A, CLK, SINE, COSINE ); / synthesis black_box input 27 : 0 DATA; input WE; input 4 : 0 A; input CLK; output 9 : 0 SINE; output 9 : 0 COSINE; endmodule 在使用时,直接调用mydds模块即可,如 module dds1(DATA, WE, A, CLK, SINE, COSINE); input 27 : 0 DATA;

46、/经过计算,DATA= 10737418. input WE; input 4 : 0 A; input CLK; output 9 : 0 SINE; output 9 : 0 COSINE; mydds mydds1( .DATA(DATA), .WE(WE), .A(A), .CLK(CLK), .SINE(SINE), .COSINE(COSINE) ); endmodule 上述程序经过综合后,得到如图4-22所示的RTL级结构图。图4-22 DDS模块的RTL结构图经过ModelSim仿真测试,得到的功能波形图如图4-23所示:图4-23 DDS模块的局部功能仿真波形图注意:经过笔

47、者大量验证发现,在ISE 8.2版中使用DDS IP core时,只有采用wire型的变量控制DDS才能在ModelSim中得到正确结果,使用reg型的变量不能成功操控该IP core。第3节 基于ISE的开发流程本节所有的讲解都以例4-3所示的代码为基础展开。 例4-3 ISE开发流程演示代码,将输入的数据加1寄存并输出。 module test(clk, din, dout); input clk; input 7:0 din; output 7:0 dout; reg 7:0 dout; always (posedge clk) begin dout = din + 1; end endmodule4.3.1 基于Xilinx XST的综合 所谓综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的逻辑连接(网表),并根据目标和要求(约束条件)优化所生成的逻辑连接,生成EDF文件。XST内嵌在ISE 3以后的版本中,并且在不断完善。此外,由于XST是Xilinx公司自己的综合工具,对于部分Xilinx芯片独有的结构具有更好的融合性。 完成了输入、仿真以及管

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号