赛灵思
直播中

韩凤英

7年用户 230经验值
私信 关注
[问答]

无法高速使用IDDR2

我正在使用IDDR2来接收620MHz的数据。
我有一个DCM,它可以从digilent Spartan-3E板上的50MHz inclock合成310MHz时钟和clock_bar。
输入数据以差分方式进入,通过IBUFDS,然后进入IDDR2。
在我的后期&
死记硬背,IDDR2主要是X输出。
这只是一个模拟器问题,还是我需要设置某种约束来让事情以这个时钟速率运行?

以上来自于谷歌翻译


以下为原文

I'm using an IDDR2 to take in data at 620MHz.  I have a DCM which synthesizes a 310MHz clock and clock_bar from the 50MHz inclock on the digilent Spartan-3E board.  The input data comes in differentially, goes through an IBUFDS, then goes into the IDDR2.  In my post-place & rote sim, the IDDR2 outputs mostly X's.  Is this just a simulator issue, or is there some kind of constraint I need to set to get things to run at this clock rate?

回帖(9)

陈晨

2019-5-20 08:36:05
模块serdes(data_in,data_in_b,clk_fast,clk_fast_b,reset,data_pos,data_neg);
输入data_in,data_in_b,clk_fast,clk_fast_b,reset;
输出data_pos,data_neg;
IBUFDS data_IBUFDS(.O(serdes_in), 
.I(data_in), 
.IB(data_in_b));
IDDR2#( 
//以下参数指定行为 
//组件。 
.DDR_ALIGNMENT(“C0”),//设置输出对齐 
//到“无”,“C0”或“C1” 
.INIT_Q0(1'b0),//设置Q0的初始状态 
//输出到1'b0或1'b1 
.INIT_Q1(1'b0),//设置Q1的初始状态 
//输出到1'b0或1'b1 
.SRTYPE(“ASYNC”)//指定“SYNC”或“ASYNC” 
//设置/重置
)teh_IDDR2( 
.Q0(data_pos),//用C0时钟捕获的1位输出 
.Q1(data_neg),//用C1时钟捕获的1位输出 
.C0(clk_fast),// 1位时钟输入 
.C1(clk_fast_b),// 1位时钟输入 
.CE(1'b1),// 1位时钟使能输入 
.D(serdes_in),// 1位DDR数据输入 
.R(复位),// 1位复位输入 
.S(1'b0)// 1位置位输入
);
clk_fast和clk_fast_b是DCM的CLKFX和CLKFX_180输出

如果我将DCM输出缩小到以下为原文

 
module serdes(data_in, data_in_b, clk_fast, clk_fast_b, reset, data_pos, data_neg);input data_in, data_in_b, clk_fast, clk_fast_b, reset;output data_pos, data_neg;IBUFDS data_IBUFDS (.O (serdes_in),                      .I (data_in),                      .IB (data_in_b)); IDDR2 #(   // The following parameters specify the behavior   // of the component.   .DDR_ALIGNMENT("C0"), // Sets output alignment                            // to "NONE", "C0" or "C1"   .INIT_Q0(1'b0), // Sets initial state of the Q0                     //   output to 1'b0 or 1'b1   .INIT_Q1(1'b0), // Sets initial state of the Q1                    //   output to 1'b0 or 1'b1   .SRTYPE("ASYNC") // Specifies "SYNC" or "ASYNC"                    //   set/reset ) teh_IDDR2 (   .Q0(data_pos), // 1-bit output captured with C0 clock   .Q1(data_neg), // 1-bit output captured with C1 clock   .C0(clk_fast), // 1-bit clock input   .C1(clk_fast_b), // 1-bit clock input   .CE(1'b1), // 1-bit clock enable input   .D(serdes_in),   // 1-bit DDR data input    .R(reset),   // 1-bit reset input   .S(1'b0)    // 1-bit set input);clk_fast and clk_fast_b are the CLKFX and CLKFX_180 outputs from the DCM
 
If I scale the DCM outputs down to <55MHz, everything seems to work okay, but for my project I need to clock in data at a much higher rate.

李淑珍

2019-5-20 08:45:58
嗨,热,
你的代码看起来不错,我想你可能有一个普遍的后PAR(时序)模拟问题。
我建议你看看这份答复记录:http://www.xilinx.com/support/answers/6537.htm。
按照说明阅读ISE文档中提到的章节。
让我们知道你是如何处理这个问题的。
最好的祝福,
德赖斯
--------------------------------------------------
--------------------------------------------------
----------------如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用的帖子并通过点击星标回复导向
在帖子旁边。

以上来自于谷歌翻译


以下为原文

Hi Thermal,
 
you code looks OK, I think you might have a general post-PAR (timing) simulation problem.
 
I would recommend you to take a look at this Answer Record: http://www.xilinx.com/support/answers/6537.htm.
Follow the instructions and read the mentioned chapter in the ISE documentation.
 
Let us know how you get on with this problem.
 
 
Best regards,
Dries
--------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented by clicking the star next to the post.
举报

陈晨

2019-5-20 08:54:14
感谢快速回复,Dries。
我不认为这是问题所在。
glbl.v模块似乎正确加载到我的SIM卡中,GSR信号似乎正确地重置了东西。

以上来自于谷歌翻译


以下为原文

Thanks for the quick reply, Dries.  I don't think this is the problem though.  The glbl.v module seems to be properly loaded into my sims, and the GSR signal seems to be properly resetting things.
举报

王雪

2019-5-20 09:11:26
请检查IDDR2输入,比如数据和时钟。

以上来自于谷歌翻译


以下为原文

Please check the IDDR2 inputs, say data and clock.
举报

更多回帖

×
20
完善资料,
赚取积分