在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3976|回复: 4

[求助] Xilinx Virtex6 FPGA中IODELAYE1用法问题

[复制链接]
发表于 2016-12-12 16:27:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 yyz1988 于 2016-12-12 16:30 编辑

我用的FPGA型号是XC6VLX240T,我想把外界输入的时钟Rx_clk_i(125MHz),延时2ns左右,再给到内部逻辑,下面是IODELAYE1的例化   
IODELAYE1 #(
      .CINVCTRL_SEL("FALSE"),          // Enable dynamic clock inversion ("TRUE"/"FALSE")
      .DELAY_SRC("CLKIN"),                 // Delay input ("I", "CLKIN", "DATAIN", "IO", "O")
      .HIGH_PERFORMANCE_MODE("TRUE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE")
      .IDELAY_TYPE("FIXED"),         // "DEFAULT", "FIXED", "VARIABLE", or "VAR_LOADABLE"
      .IDELAY_VALUE(20),                // Input delay tap setting (0-32)
      .ODELAY_TYPE("FIXED"),           // "FIXED", "VARIABLE", or "VAR_LOADABLE"
      .ODELAY_VALUE(0),                // Output delay tap setting (0-32)
      .REFCLK_FREQUENCY(200.0),        // IDELAYCTRL clock input frequency in MHz
      .SIGNAL_PATTERN("CLOCK")          // "DATA" or "CLOCK" input signal
   )
   IODELAYE1_Rx_clk (
      .CNTVALUEOUT(), // 5-bit output - Counter value for monitoring purpose
      .DATAOUT(Rx_clk_delay),         // 1-bit output - Delayed data output
      .C(0),                     // 1-bit input - Clock input
      .CE(0),                   // 1-bit input - Active high enable increment/decrement function
      .CINVCTRL(0),       // 1-bit input - Dynamically inverts the Clock (C) polarity
      .CLKIN(Rx_clk_i),             // 1-bit input - Clock Access into the IODELAY
      .CNTVALUEIN(0),   // 5-bit input - Counter value for loadable counter application
      .DATAIN(0),           // 1-bit input - Internal delay data
      .IDATAIN(0),         // 1-bit input - Delay data input
      .INC(0),                 // 1-bit input - Increment / Decrement tap delay
      .ODATAIN(0),         // 1-bit input - Data input for the output datapath from the device
      .RST(IODELAYE1_reset_w),  // 1-bit input - Active high, synchronous reset, resets delay chain to IDELAY_VALUE/
                                 // ODELAY_VALUE tap. If no value is specified, the default is 0.
      .T(0)                      // 1-bit input - 3-state input control. Tie high for input-only or internal delay or
                                 // tie low for output only.

   );
我不知道上面例化填写的端口对不对,想请问,输入时钟Rx_clk_i是接在CLKIN端口呢,还是接在IDATAIN端口呢,或者别的接口,Input delay tap setting如何计算设置呢,另外还需要例化一个IDELAYCTRL,
IDELAYCTRL IDELAYCTRL_Rx_clk (
      .RDY(),       // 1-bit Ready output
      .REFCLK(Clk_125M), // 1-bit Reference clock input
      .RST(Clk_125M_rst)        // 1-bit Reset input
   );
请问这个IDELAYCTRL 的REFCLK用哪个时钟呢,有什么影响吗?它的复位RST是否需要单独处理呢,我在UCF文件中对IDELAYCTRL的位置进行约束,如下,
INST "IDELAYCTRL_Rx_clk" LOC=IDELAYCTRL_X2Y1;但是综合时提示INST "IDELAYCTRL_Rx_clk" not
   found. 请问这是为什么呢,另外这个IDELAYCTRL的具体位置根据什么找呢,
发表于 2016-12-13 10:18:27 | 显示全部楼层
好像手册要求IDELAYCTRL的.REFCLK,IODELAYE1的.C 得用200M时钟
发表于 2019-1-12 21:11:39 | 显示全部楼层
我是在 千兆ip核设置了iodelay,和你用的不太一样
发表于 2019-1-14 17:05:43 | 显示全部楼层
兄弟 ,一般都是延迟数据,时钟不动哦,还有,如果是高速同步信号,你要考虑源端时序,板卡上的延迟保持,再说FPGA里面的故事
发表于 2019-1-14 17:10:51 | 显示全部楼层
多说两句,你要仔细去看看xilinx的wapp文档,ug文件,xilinx的delay单元是 一个IDELAYCTRL (也可以是多个,但是多个的复杂度很多,需要在约束里定义IDELAYCTRL 的坐标,且此单元仅仅是当前region内的delay单元可用,最简单的就是全芯片引用一个IDELAYCTRL ),且IDELAYCTRL 的输入时钟是固定的200MHz,因为IODelay的基本思想就是引用一个200MH在的时钟,对这个时钟存在64组延迟,第i组延迟就是i*1/64*0.5ns,i就是你引用第几级物理延迟线,你在端口上控制i,然后在用户逻辑层去判断串行码流和byte、word的边界检测。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-14 19:14 , Processed in 0.019460 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表