defparam DCM_ADV_INST.DESKEW_ADJUST = \ defparam DCM_ADV_INST.DFS_FREQUENCY_MODE = \ defparam DCM_ADV_INST.DLL_FREQUENCY_MODE = \ defparam DCM_ADV_INST.DUTY_CYCLE_CORRECTION = \ defparam DCM_ADV_INST.FACTORY_JF = 16'hF0F0; defparam DCM_ADV_INST.PHASE_SHIFT = 0;
defparam DCM_ADV_INST.STARTUP_WAIT = \endmodule
比较以上两段代码,区别在于选择是External时CLKIN经过了IBUFG才到的DCM_ADV,而选择Internal的CLKIN则直接到了DCM_AV,而IBUFG就是原语“全局时钟缓冲”单元,我们使用时要选择External,只有当我们的级联两个DCM模块时,直接与外面相连的选External,而另一个选择Internal。
这也是本文的一个知识点吧:两个DCM级联时,直接与外面相连的选External,而另一个选择Internal。 所以本段的主题是“非GC类全局时钟管脚是否可以作时钟使用?”其实更多应该指的是“非GC类全局时钟管脚是否可以接到IBUFG?”
试验中,我们将External的DCM的输入CLKIN输入引脚配置成一个普通的IO口,即非GC类全局时钟管脚,布局布线阶段出现以下错误:
ERROR:Place:645 - A clock IOB clock component is not placed at an optimal clock IOB site. The clock IOB component
因此得出结论:非GC类全局时钟管脚不可以作时钟使用(其实是不可以接到IBUFG的输入端)。 3)在Xilinx手册中提到,如果使用单端输入时钟,要使用P类型GC全局时钟管脚,那么空间N类型的管脚是否可以么?
所谓P类型还是N类型其实指的是IO_L1P_GC_LC或IO_L1N_GC_LC,注意这里的L1P和L1N,这就标识这个管脚是P类型还是N类型。
试验中,我们将N类型全局时钟管脚配置给CLKIN,结果布局布线时出现与(2)中一样的错误。 因此得出结论:GC类全局时钟管脚N类型管脚不可以作为单端时钟输入管脚(其实也是不能作为IBUFG的输入端)
4)差分时钟输入时钟管脚能否配置普通IO?N类型管脚和P类型管脚必须分别给配置P类型GC全局时钟管脚和N类型GC全局时钟管脚?
<4.1>使用了一对普通IO配置给DCM的CLKIN_N_IN和CLKIN_P_IN,并且将这对普通的IO的P型分配给DCM的CLKIN_N_IN型输入,IO的N型分配给DCM的CLKIN_P_IN型输入,出现如下错误:
ERROR:Place:604 - The I/O components \differental I/O pair. The component
<4.2>使用了一对普通IO配置给DCM的CLKIN_N_IN和CLKIN_P_IN,并且对应地将这对普通的IO的P型分配给DCM的CLKIN_P_IN型输入,IO的N型分配给DCM的CLKIN_N_IN型输入,出现如下错误: ERROR:Place:645 - A clock IOB clock component is not placed at an optimal clock IOB site. The clock IOB component
<4.3>使用一对GC类全局时钟IO管脚配置给DCM的CLKIN_N_IN和CLKIN_P_IN,并且将这对普通的IO的P型分配给DCM的CLKIN_N_IN型输入,IO的N型分配给DCM的CLKIN_P_IN型输入,出现与4.1中相同的错误。
<4.4>正常配置,即使用了一对GC类全局时钟IO管脚配置给DCM的CLKIN_N_IN和CLKIN_P_IN,并且对应地将这对普通的IO的P型分配给DCM的CLKIN_P_IN型输入,IO的N型分配给DCM的CLKIN_N_IN型输入,则完全正确。
因此得出结论:差分时钟输入时必须使用一对GC类全局时钟IO管脚配置给DCM的CLKIN_N_IN和CLKIN_P_IN,且N类型和P类型要匹配。
其实这个归根到底还是原语IBUFGDS在作怪,查看一下差分输入DCM的原文件就行了: IBUFGDS CLKIN_IBUFGDS_INST (.I(CLKIN_P_IN), .IB(CLKIN_N_IN), .O(CLKIN_IBUFGDS));
5)那么如果将输入输出口配置成非IO管脚会怎么样呢?
在试验中,将某一VCCO配置成了给了输出口,结果在映射阶段出现如下错误: ERROR:MapLib:30 - LOC constraint AF17 on q<2> is invalid: No such site on the 因此,不能将输入输出口配置成非IO管脚,当然这样配置本身也是不合理的。