Spartan3eDCMIP使用图文教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Spartan3eDCMIP使用图文教程
Spartan3e DCM IP使用图文教程
1.打开ISE
2.新建工程
3.新建IP core generator(图1)在左侧design视框中单击右键new source,选择IP(CORE
Generator & Architecture Wizard),左侧输入filename及location
图1
4.在search ip catalog 中输入dcm(digital clock manager这厮就是一锁相环),在图2路径
中选择single DCM_SP,选择好之后,点击next进入下个对话框中点finish。
图2
5.选择HDL语言类型,综合工具,路径,器件封装包(如新建工程器件配置正确默认即可)
图3
6.进入clocking wizard进行配置(这个是重点)图4
图4
a.图中有三路输入信号,CLKIN,CLKFB默认必须有(这两个不用管),RST为复位信号(可
选,本例中勾选)
b.Input clock frequency 可选为两个输入单位。
如图,频率和周期由用户自己配制,本
例中输入频率为50Mhz。
c.Phase Shift相移可以自行配置为none\fixed\variable,本例中选择none.
d.Clkin source信号源本例中设置为外部信号,单管输入。
(Differential是差分的意思)
e.Feedback source反馈信号默认为内部信号,feedback value 默认。
f.输出端口可自行配置。
g.配置完毕点击next
注解:整体端口说明
CLKIN:输入时钟
CLKFB:反馈时钟,主要是用于补偿延时‘输出;分内部反馈和外部反馈
RST:复位信号
PSEN:phase shift enabled,移相使能
PSINCDEC:移相增减
PSCLK:移相时钟
CLK0~CLK270:分别为对输入移相0~270°输出
CLKDV:分频输出,分配系数下面可以设置
CLK2X/180:2倍频/反相输出
CLKFX/180:频率合成/反相输出,即分数M/N倍输入的时钟输出,M,N设置在NEXT步骤里会有提到
STATUS:8位输出总线,[2:0]有效,[7:3]悬空。
STATUS[0] indicates the overflow of the phase shift numerator and that the absolute delay range of the phase shift delay line is exceeded.
STATUS[1] indicates the loss of the input clock, CLKIN, to the DCM.
STATUS[2] indicates that CLKFX has stopped.
PSDONE:移相结束标识
LOCEDK有效时DCM输出稳定。
7.默认配置,点击next,图5。
8.配置或计算输出时钟的频率,如图6
图6中,有两种配置方式:
a.直接配置输出频率或者周期(本例中直接配置输出频率为75Mhz)
b.使用乘除运算进行配置,该配置方式需要自己计算,其计算公式如下:
即先分频再倍频的思路。
配置完毕点击next
图6
9.完成8之后产生的对话框默认选项,点finish
10.此时左侧design视框如图7
图中,IP模块有专门标识,双击View HDL Source可以查看其Verilog代码。
DCM IP调用模自此完成,以下为测试模块。
11.鉴于此种问题,不能直接对生成的DCM进行测试,所以需要新建一个verilog模块对DCM
进行封装(说白了就是生成一个模块只实例化DCM模块,其他啥事不干,就相当于给DCM穿个马甲)
12.New Source新建Verilog Module如图8
图8
13.输入代码:
module top_dcm(CLK,
RST,
CLKFX_OUT,
CLKIN_IBUFG_OUT,
CLK0_OUT,
CLK180_OUT,
LOCKED_OUT
);
input CLK;
input RST;
output CLKFX_OUT;
output CLKIN_IBUFG_OUT;
output CLK0_OUT;
output CLK180_OUT;
output LOCKED_OUT;
wire CLKFB_IN;
wire CLKFX_BUF;
wire CLKIN_IBUFG;
wire CLK0_BUF;
wire CLK180_BUF;
dcm dcm(.CLKIN_IN(CLK),
.RST_IN(RST),
.CLKFX_OUT(CLKFX_OUT),
.CLKIN_IBUFG_OUT(CLKIN_IBUFG_OUT),
.CLK0_OUT(CLK0_OUT),
.CLK180_OUT(CLK180_OUT),
.LOCKED_OUT(LOCKED_OUT)
);//对DCM实例化
endmodule
输入完代码之后,保存,综合。
查看RTL schematic如图9
图9(这个模块真的就是个穿马甲的功能)
14.新建测试文件,对top_dcm进行测试:
New source——Verilog test fixture——注意associate to链接到Top_dcm(刚才建的马
甲)——finish 如图10
图10 15.编辑测试代码(只需改)以下一点点
16.RTL仿真
图中locked_out为1以后输出稳定,为0时,DCM在配置时钟。
如图,取350ns到363.334这个周期,其输出时钟周期为13.334,频率为75Mhz 与设计目标相同。