《Xilinx FPGA设计基础》课件第4章_第1页
《Xilinx FPGA设计基础》课件第4章_第2页
《Xilinx FPGA设计基础》课件第4章_第3页
《Xilinx FPGA设计基础》课件第4章_第4页
《Xilinx FPGA设计基础》课件第4章_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第4章XilinxIP核4.1Xilinx的IP介绍

4.2XilinxIP配置工具及使用方法

4.3时钟管理IP

4.1Xilinx的IP介绍

XilinxFPGA设计中可用的IP核有两种,一种由Xilinx原厂设计,称为LogiCore;另一种由Xilinx的第三方合作伙伴设计,称为AllianceCore。在ISE的IP核生成工具中可以看到这些核。

原厂设计的LogiCore有很多种,如用于数字信号处理的FIR滤波器、相关器,用于数学运算的累加器、全加器、乘法器、积分器和开方模块,用于存储数据的RAM、FIFO,还有PCI控制器等。大部分的LogiCore都是参数可配置的,这些核都经过了完整的测试,Xilinx公司提供了产品详细的使用说明和技术支持。多数LogiCore都是免费的,设计者可以在Xilinx的软件中直接获取,但一些复杂的LogiCore在使用时需要经过授权。核在使用时与设计流程无关,既可以用于VHDL/Verilog语言的设计流程也可以用于原理图的设计,多数的EDA工具都支持LogiCore。

第三方合作伙伴也有多种AllianceCore可供使用,如用于外设控制的DMA控制器、可编程中断控制器、通用串口控制器,用于通信和网络领域的ATM、RS编解码器,标准的接口控制器(PCMCIA控制器、USB控制器)等。多数的AllianceCore只能按照标准的输入/输出使用,不能进行参数配置,但这些固化的核都是针对于Xilinx的器件做过深度优化的,因此使用中不用担心其功能实现问题。通常AllianceCore都以EDIF(ElectronicDesignInterchangeFormat)网表的方式提供,网表文件可以直接在工程中调用例化。但这些网表基本上都是要付费的,即使有一些AllianceCore在Xilinx的软件中直接看到,但在使用时也需要有授权文件的支持。多数AllianceCore都可以在VHDL/Verilog的设计流程中使用,部分AllianceCore还可以在原理图设计流程中使用。 4.2XilinxIP配置工具及使用方法

Xilinx的ISE集成环境中提供了一个可视化的用户界面软件CoreGenerator,帮助用户形象直观地配置所需的IP核,这个工具软件可以独立运行也可以在ISE中作为一个功能组件调用。

这里以一个双端口RAM核的配置为例,介绍CoreGenerator的配置方法,配置的步骤如下:

(1)打开XilinxISE软件,在新建一个工程后,选择Project→NewSource。

(2)在源文件类型选择窗口中,选择IP(CoreGen&ArchitectureWizard),并在Filename栏填入源文件名,例如MY_RAM,如图4.1所示,然后单击Next按钮。图4.1选择源文件类型

(3)在弹出的IP核选择窗口中依次选择Memories&StorageElements→RAMs&ROMs→DualPortBlockMemoryv6.3,如图4.2所示,然后单击Next按钮。图4.2IP核选择窗口

(4)验证IP选择信息后,单击Finish按钮进入双端口RAM核配置窗口,如图4.3所示。图4.3双端口RAM核配置窗口

(5)如果设计者对IP核所完成的功能及实现参数不了解,可以单击核配置窗口下的DateSheet…按钮查看IP核的数据手册,数据手册是PDF格式的文档,包括核的特性、功能描述、输入/输出端口、配置参数、工作模式、资源占用率等详细信息,如图4.4所示。XilinxFPGA的双端口RAM有两套独立的输入/输出端口,对同一个存储实体做操作,在读/写时要注意,不要使两个端口有读/写冲突。图4.4数据手册

(6)配置好双端口RAM核的参数后,单击窗口左下角的Generate按钮,就生成了一个满足用户要求的IP核。如果在创建源文件时默认地选择了将源文件添加到工程中,则这个核会在工程源文件区出现,如图4.5所示。对生成的IP核,可以执行ManageCores重新配置核,执行RegenerateCore按照原先的参数重新生成一次核,也可以查看核的VHDL功能模型,如图4.5右侧所示。

在HDL的设计流程中使用这个IP核,只需要将其作为一个元件,在文件中声明并例化即可,如图4.6所示。IP核在生成时,同时已经生成核对应的元件符号,在原理图的设计流程中,只需要直接使用原件符号即可。图4.5在工程中查看IP核图4.6IP核的例化带IP核的原理图设计流程和HDL设计流程相似,分别见图4.7和图4.8。图4.7带IP核的原理图设计流程图4.8带IP核的HDL设计流程用CoreGenerator生成IP核之后,软件会自动生成核的例化模板文件( .VHO,.VEO)、网表文件( .EDN)、核封装文件( .VHD)和符号文件( .SYM),使用IP核时可以将IP核看做普通的元件或元件符号。设计者可以直接将例化模板文件拷贝到设计文件中,修改元件名和对应的参数即可。符号文件用于原理图的设计,核封装文件用于仿真时使用,而网表文件用于最终的布局布线。

包含有IP核的设计文件在仿真时要注意,仿真之前要先使用compxlib.exe命令编译Xilinx核的仿真库XilinxCore.Lib,否则在仿真时会报错。仿真库的编译方法可以参照2.1.2节中的步骤。compxlib.exe命令在ISE安装目录下的\bin\文件夹内。

学习完本节内容后,读者可以尝试完成第6章的实验九。

4.3时钟管理IP

4.3.1DCM模块

DCM按功能划分可以分为三部分,数字锁相环DLL(Delay-LockedLoop)、数字频率综合器DFS(DigitalFrequencySynthesizer)和数字相移器DPS(DigitalPhaseShifter),如图4.9所示。注意:DCM对时钟所做的所有处理都是由时钟上升沿触发的,如果没有时钟上升沿,则所有的DCM输出都不起作用。图4.9数字时钟管理器

DLL可以去除输入时钟信号的偏移(Skew),修正时钟的占空比,完成相移、倍频和分频等功能,这个部分的输出信号及含义如下:

●CLK0:去除偏移后的时钟信号;

●CLK90:CLK0相移90°的时钟信号;

●CLK180:CLK0相移180°的时钟信号;

●CLK270:CLK0相移270°的时钟信号;

●CLK2X:CLK0的2倍频时钟信号;

●CLK2X180:CLK0的2倍频并相移180°的时钟信号;

●CLKDV:CLK0分频后的时钟信号。

DFS可以按照用户的配置产生任意M/D倍频和分频的时钟信号,其中M的范围为2~32,D的范围为1~32。输出的时钟信号为CLKFX,CLKFX180是CLKFX经过180°相移的时钟,输出的时钟都经过了占空比修正,占空比为50%。

DPS可以对所有的输出时钟信号做相移,相移的间隔为输入时钟周期的分数值,精度由PHASE_SHIFT控制,为“输入时钟周期/PHASE_SHIFT”,PHASE_SHIFT的最大范围为(-255,255),具体的与输入时钟频率的高低有关系。相移可以工作于固定模式下,也可以在变量模式下。在变量模式下会增加4个端口,分别为PSINCDEC、PSEN、PSCLK和PSDONE,这四个信号的含义我们在后续内容中给出。4.3.2DCM的使用方法

在工程中使用DCM的方法与一般的IP核的方法相同,在IP核选择窗口中显示的可用DCM与工程选用的FPGA器件有关。假设我们选用的器件仍为Spartan3系列的xc3s200,IP核选择窗口如图4.10所示,所选择的IP核为FPGAFeaturesandDesign→Clocking→Virtex-IIPro,Virtex-II,Spartan-3→SingleDCMv9.1i。单击Next按钮,弹出DCM配置窗口,如图4.11所示。图4.10DCM的IP选择窗口图4.11DCM配置窗口在图4.11中,用户可以选择所需的DCM端口,及相关的的属性配置。

InputClockFrequency表示输入信号的频率,用户在这个框中填入外部输入时钟的频率,DCM将自动判断当前的工作模式为高频模式还是低频模式。如果输入时钟信号的频率比较高,有一些输出端口,如CLK90、CLK270、CLK2X和CLK2X180是不能使用的。为了去除时钟的偏移,DCM一般都需要时钟反馈信号(只使用CLKFX和CLKFX180输出的情况除外),用于补偿内部时钟布线带来的时延。时钟反馈输入信号的名称为CLKFB,CLKFB可以由芯片内部时钟连线提供,也可以通过芯片外部的信号接入,但是CLKFB的时钟源必须为CLK0或CLK2X的输出,而且在接入CLKFB之前必须经过BUFGMUX、IBUFG或IBUF之一, 典型的用法是用BUFGMUX直接驱动。 外部反馈信号通常使用IBUFG或IBUF驱动,使用IBUFG时补偿偏移的效果最好,使用IBUF时,芯片引脚到DCM输入的这部分时延得不到补偿。使用DCM去除时钟偏移的详细连接方法请查阅对应FPGA芯片的相关数据手册。使用DPS功能时,DPS控制反馈信号CLKFB与输入时钟信号的相移偏差可以工作在三种模式下,如图4.12所示。图4.12DPS三种工作模式下的相移效果●None模式下,不进行时钟相移,CLKIN与CLKFB同相,相当于在Fixed模式下将相移参数设置为0;

●Fixed模式下,CLKFB相对于CLKIN有固定的相移,而且在DCM模块配置好后不能在应用过程中修改;

●Variable模式下,CLKFB相对于CLKIN的相移可以通过PSEN、PSINCDEC和PSCLK控制,信号之间的时序关系如图4.13所示。图4.13动态调整相移的时序关系

PSCLK的时钟上升沿作为相移动态调整的触发条件。PSEN为相移调整的使能信号,PSEN为高表示可以进行调整,PSEN为低时表示不能进行调整,但要特别注意,每次调整相移时,PSEN只能有一个时钟周期的高脉冲,如果PSEN出现连续的高脉冲,将会引发不可预知的结果。

相移的初始值在图4.11PhaseShift的Value文本框中填写,将Value设置为1时,Value文本框下对应的时间值和角度为相移调整的精度,也是动态调整时的一个单位。

PSINCDEC的值表示相移调整的方向,PSINCDEC为高时,表示增加一个相移单位,PSINCDEC为低时,表示减小一个相移单位。每一次的相移需要几个时钟周期的调整,相移调整完成后PSDONE出现一个PSCLK时钟周期的高脉冲。在PSDONE出现高脉冲后,即可执行下一次相移调整。如果相移的值超出了可以调整的范围,则DCM的输出信号STATUS[0]变高,直到下一次调整将相移调回限定范围内。

选择UseDutyCycleCorrection,可以对CLK0、CLK90、CLK180和CLK270的输出信号做占空比调整,调整后的输出时钟占空比为50%。如果DLL工作在低频模式下,CLKDV的输出信号占空比自动为50%;如果DLL工作在高频模式下,只有分频倍数为整数时占空比为50%。

DCM对时钟频率和相移的调整以及占空比的修正需要一个过程,因此,在DCM未处理完之前,输出时钟端口会出现一些不稳定的时钟边沿,例如,在进行2倍频时,CLK2X的输出信号有可能如图4.14所示,一开始变为占空比为25/75、频率与CLKIN相同的时钟,之后变为CLKIN的2倍频。在CLK2X稳定3个周期后,LOCKED信号拉高,表示倍频处理已经完成。图4.14未进入稳态的DCM输出信号

DCM还有一些高级配置选项,在图4.11中,单击Advanced按钮,弹出高级选项卡,如图4.15所示。图4.15DCM高级选项卡在默认情况下,DCM不影响FPGA的配置过程,但如果选中“WaitforDCMlockbeforeDONEsignalgoeshigh”,则FPGA会等待DCM模块的LOCKED信号拉高后,才把配置结束信号DONE置位。

如果输入时钟频率太高,可以选中“DivideInputClockBy2”信号,在接入DCM之前,将时钟进行一次二分频。

如果需要外部同步的方式进行数据传输,可以将“DCMDeskewAdjust”选择为SOURCE_SYNCHRONOUS。

配置好图4.11中的选项后,单击右下

温馨提示

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

评论

0/150

提交评论