打印

187.5MHZ输入时钟,需要得到125mhz的clk和一个移相90度后的clk

[复制链接]
3743|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zy7598865|  楼主 | 2012-8-19 19:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
Backkom80| | 2012-8-19 19:38 | 只看该作者
不需两个DCM,一个DCM就可以了,在DCM中有两个参数,一个乘的系数一个是除的系数,这两个系数分别设成乘2除3,就可以了

使用特权

评论回复
板凳
zy7598865|  楼主 | 2012-8-19 23:24 | 只看该作者
本帖最后由 zy7598865 于 2012-8-19 23:47 编辑

噢,原来是这样,主要是另外还需要一个187.5/2Mhz的时钟, 一个DCM可以把这3个时钟都能搞定?
187.5/2Mhz的时钟,这个时钟我用2倍频后的输出的时钟再用计数器4分频?这样的时钟质量会不会不太好,
关键是移相90度的这个125MHz的时钟spartan3的DCM没有,怎么解决。。
DCM #(
      .SIM_MODE("SAFE"),  // Simulation: "SAFE" vs. "FAST", see "Synthesis and Simulation Design Guide" for details
      .CLKDV_DIVIDE(2.0), // Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
                          //   7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
      .CLKFX_DIVIDE(3),   // Can be any integer from 1 to 32
      .CLKFX_MULTIPLY(2), // Can be any integer from 2 to 32
      .CLKIN_DIVIDE_BY_2("FALSE"), // TRUE/FALSE to enable CLKIN divide by two feature
      .CLKIN_PERIOD(0.0),  // Specify period of input clock
      .CLKOUT_PHASE_SHIFT("NONE"), // Specify phase shift of NONE, FIXED or VARIABLE
      .CLK_FEEDBACK("1X"),  // Specify clock feedback of NONE, 1X or 2X
      .DESKEW_ADJUST("SYSTEM_SYNCHRONOUS"), // SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or
                                            //   an integer from 0 to 15
      .DFS_FREQUENCY_MODE("LOW"),  // HIGH or LOW frequency mode for frequency synthesis
      .DLL_FREQUENCY_MODE("LOW"),  // HIGH or LOW frequency mode for DLL
      .DUTY_CYCLE_CORRECTION("TRUE"), // Duty cycle correction, TRUE or FALSE
      .FACTORY_JF(16'hC080),   // FACTORY JF values
      .PHASE_SHIFT(0),     // Amount of fixed phase shift from -255 to 255
      .STARTUP_WAIT("FALSE")   // Delay configuration DONE until DCM LOCK, TRUE/FALSE
   ) DCM_inst (
      .CLK0(CLK0),     // 0 degree DCM CLK output
      .CLK180(CLK180), // 180 degree DCM CLK output
      .CLK270(CLK270), // 270 degree DCM CLK output
      .CLK2X(CLK2X),   // 2X DCM CLK output
      .CLK2X180(CLK2X180), // 2X, 180 degree DCM CLK out
      .CLK90(CLK90),   // 90 degree DCM CLK output
      .CLKDV(CLKDV),   // Divided DCM CLK out (CLKDV_DIVIDE)
      .CLKFX(CLKFX),   // DCM CLK synthesis out (M/D)
      .CLKFX180(CLKFX180), // 180 degree CLK synthesis out
      .LOCKED(LOCKED), // DCM LOCK status output
      .PSDONE(PSDONE), // Dynamic phase adjust done output
      .STATUS(STATUS), // 8-bit DCM status bits output
      .CLKFB(CLKFB),   // DCM clock feedback
      .CLKIN(CLKIN),   // Clock input (from IBUFG, BUFG or DCM)
      .PSCLK(PSCLK),   // Dynamic phase adjust clock input
      .PSEN(PSEN),     // Dynamic phase adjust enable input
      .PSINCDEC(PSINCDEC), // Dynamic phase adjust increment/decrement
      .RST(RST)        // DCM asynchronous reset input


这个CLKFX, // DCM CLK synthesis out (M/D),我想要个移相90°的有什么办法吗

使用特权

评论回复
地板
jakfens| | 2012-8-20 08:44 | 只看该作者
学习学习

使用特权

评论回复
5
Backkom80| | 2012-8-20 10:12 | 只看该作者
原时钟187.5M,现在你需要哪三个时钟?

1,125M,clkfx_M=2, clk_fx_D=3,clkfx
2,187.5M/2, clkdv_d=2,比你先倍频在计数4分频要好
3,?

上面的1和2可以一个DCM同时搞定

使用特权

评论回复
6
Backkom80| | 2012-8-20 10:13 | 只看该作者
3,是需要一个和原输入的187.5M有90度相差的时钟吗?
如果是:
CLK90(CLK90)这个端口出来的就是。

使用特权

评论回复
7
Backkom80| | 2012-8-20 10:14 | 只看该作者
如是以上三个时钟的话,一个DCM可以全部搞定。

使用特权

评论回复
8
zy7598865|  楼主 | 2012-8-20 12:55 | 只看该作者
..可能是我没说清楚, 输入是187.5M,    输出是这三个时钟125M,90°的125M以及187.5M/2
主要是90°的125M纠结。。。

使用特权

评论回复
9
zy7598865|  楼主 | 2012-8-20 23:15 | 只看该作者
最后还是弄了2个dcm,把第一个DCM输出的125MHZ的cklFX输入到第二个DCM,最后得到0°,90°的125mhz,这样应该没问题吧,就是太浪费资源?还是有什么弊端吗?

使用特权

评论回复
10
Backkom80| | 2012-8-21 10:30 | 只看该作者
呵呵,90度的确实有点烦,
这么接没什么问题,
还有设计中90度的125M真的必需要吗,如果能优化设计尽量优化,

使用特权

评论回复
11
jojojoy| | 2012-8-21 14:53 | 只看该作者
围观一下;P

使用特权

评论回复
12
zy7598865|  楼主 | 2012-8-21 19:44 | 只看该作者
s3如果用coregen生成的DCM 会不会比原语例化的效果好

使用特权

评论回复
13
GoldSunMonkey| | 2012-8-21 20:21 | 只看该作者
效果一样。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

167

帖子

1

粉丝