Перейти к содержанию
    

про BUFIO и IDDR в Virtex-6 STX

Здравствуйте!

Я заметил, что Xilinx ISE   в процессе синтеза заменяет все использованные в проекте примитивы IDDR на IDDR_2CLK, и примитивы BUFIO на BUFIODQS.

Для демонстрации этого, я создал небольшой тестовый проект, содержащий только один BUFIO и один IDDR. Этот проект должен работать так: поток входных данных (DDR) преобразуется в выходной поток данных (SDR). Входной клок: 100 МГц. Все выводы расположил в одном банке ПЛИС.

top_level.v:

Спойлер

`timescale 1ns / 1ps

module top_level (
    input  CE, S,
    
    input  DI_P, DI_N, 
    input  CI_P, CI_N,

    output Q0_P, Q0_N,
    output Q1_P, Q1_N,
    output CO_P, CO_N
);

wire       ce_ibuf, s_ibuf;
wire       di, ci;
wire       ci_bufio;
wire       q0, q1;
wire       co;

IBUF #(.IBUF_LOW_PWR("TRUE"), .IOSTANDARD("DEFAULT")) CE_IBUF_inst (.O(ce_ibuf), .I(CE));
IBUF #(.IBUF_LOW_PWR("TRUE"), .IOSTANDARD("DEFAULT")) S_IBUF_inst (.O(s_ibuf), .I(S));

IBUFDS #(.DIFF_TERM("TRUE"), .IOSTANDARD("DEFAULT")) D_IBUFDS_inst (.O(di), .I(DI_P), .IB(DI_N));

IBUFDS #(.DIFF_TERM("TRUE"), .IOSTANDARD("DEFAULT")) C_IBUFDS_inst (.O(ci), .I(CI_P), .IB(CI_N));
BUFIO BUFIO_inst (.O(ci_bufio), .I(ci));

IDDR #(
  .DDR_CLK_EDGE("SAME_EDGE_PIPELINED"), // "OPPOSITE_EDGE", "SAME_EDGE" or "SAME_EDGE_PIPELINED"
  .INIT_Q1(1'b0),                       // Initial value of Q1: 1'b0 or 1'b1
  .INIT_Q2(1'b0),                       // Initial value of Q2: 1'b0 or 1'b1
  .SRTYPE("ASYNC")                      // Set/Reset type: "SYNC" or "ASYNC" 
) IDDR_inst (
  .Q1(q0),                            // 1-bit output for positive edge of clock 
  .Q2(q1),                            // 1-bit output for negative edge of clock
  .C(ci_bufio),                          // 1-bit clock input
  .CE(ce_ibuf),                         // 1-bit clock enable input
  .D(di),                               // 1-bit DDR data input
  .R(1'b0),                             // 1-bit reset
  .S(s_ibuf)                            // 1-bit set
);

BUFR #(.BUFR_DIVIDE("BYPASS"), .SIM_DEVICE("VIRTEX6")) BUFR_inst (.O(co), .CE(1'b1), .CLR(1'b0), .I(ci));

OBUFDS #(.IOSTANDARD("DEFAULT")) Q0_OBUFDS_inst (.O(Q0_P), .OB(Q0_N), .I(q0));
OBUFDS #(.IOSTANDARD("DEFAULT")) Q1_OBUFDS_inst (.O(Q1_P), .OB(Q1_N), .I(q1));

OBUFDS #(.IOSTANDARD("DEFAULT")) CO_OBUFDS_inst (.O(CO_P), .OB(CO_N), .I(co));

endmodule

top_level.ucf

Спойлер

NET "CE" LOC = E12;
NET "S" LOC = G11;

NET "CI_P" LOC = L13;
NET "DI_P" LOC = M12;
NET "Q0_P" LOC = K14;
NET "Q1_P" LOC = D11;

NET "CO_P" LOC = C13;

NET "CI_P" TNM_NET = "CI_P";
TIMESPEC TS_C = PERIOD "CI_P" 10 ns HIGH 50 %;

TIMEGRP DI_PINS =   PADS("DI_P");
TIMEGRP "DI_PINS" OFFSET = IN 2.5 ns VALID 5 ns BEFORE "CI_P" RISING;
TIMEGRP "DI_PINS" OFFSET = IN 2.5 ns VALID 5 ns BEFORE "CI_P" FALLING;

TIMEGRP Q_PINS =   PADS("Q0_P");
TIMEGRP "Q_PINS" OFFSET = OUT 10 ns AFTER "CI_P";

Получается:

1.thumb.PNG.8cc8b9a256162e28fe2a5511fb83b6a0.PNG

По какой причине происходят эти замены примитивов?

Правильно ли я описал временные ограничения в ucf? Временные ограничения перестают выполняются, если входной клок повысить до 200 МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Суть проблемы в том, что так перестает что то работать? А если подать CI_P/CI_N сразу на IDDR_2CLK, и вообще сразу этот буфер объявить как IDDR_2CLK, что будет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, 1891ВМ12Я сказал:

Суть проблемы в том, что так перестает что то работать? А если подать CI_P/CI_N сразу на IDDR_2CLK, и вообще сразу этот буфер объявить как IDDR_2CLK, что будет?

Изначально проблема была в том, что констрейны не проходят, если задать в констрейнах входной клок >= 200 МГц. Поэтому начал подозревать, что проблема в том, что синтезатор заменяет примитивы.

Если CI_P/CI_N напрямую подать на IDDR_2CLK, то тогда CI_P/CI_N перестанет быть дифф.сигналом (LVDS) и будет двумя отдельными КМОП-сигналами.

Изменено пользователем srf55

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

IDDR это и есть IDDR2CLK, в определенном включении. А времянки надо брать Detailed path report и смотреть что именно не сходится. Гадать на кофейной гуще, бесполезно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Des00, я разное включение пробовал. всегда в результате у меня получался IDDR_CLK. Не смог добиться от синтезатора Xilinx, чтобы просто IDDR получился (как в UG623 и UG361)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, srf55 said:

Des00, я разное включение пробовал. всегда в результате у меня получался IDDR_CLK. Не смог добиться от синтезатора Xilinx, чтобы просто IDDR получился (как в UG623 и UG361)

да хоть запробуйтесь, я же вам говорю, нет в порту у шестого виртекса двух компоненетов IDDR и IDDR_2_CLK смотрите ug361 рисунок 2-1  https://docs.xilinx.com/v/u/en-US/ug361

IDDR это просто обертка над IDDR_2_CLK, а схематик вы смотрите что на чипе развело, а не как вы описали. А развело его на этом примитиве, потому что только этот примитив есть.

а оставили его в либе из-за "совместимости" со старыми устройствами чтобы код не переписывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, Des00! Эти замены примитивов совсем меня запутали.

По поводу времянок. Попробовал сделать констрейны (ucf) как в примере из UG612: UCF Source Synchronous DDR Center Aligned Example.

NET "CE" LOC = E12;
NET "S" LOC = G11;

NET "CI_P" LOC = L13;
NET "DI_P" LOC = M12;
NET "Q0_P" LOC = K14;
NET "Q1_P" LOC = D11;

NET "CO_P" LOC = C13;

NET "CI_P" TNM_NET = "CI_GRP";
TIMESPEC TS_CI_GRP = PERIOD "CI_GRP" 5.0 ns HIGH 50 %;

TIMEGRP DI_PINS =   PADS("DI_P" "DI_N");
TIMEGRP Q_PINS  =   PADS("Q0_P" "Q0_N");

TIMEGRP "DI_PINS" OFFSET = IN 1.0 ns VALID 2.0 ns BEFORE "CI_P" RISING;
TIMEGRP "DI_PINS" OFFSET = IN 1.0 ns VALID 2.0 ns BEFORE "CI_P" FALLING;

Получаю такой отчет (static timing). 

Спойлер

--------------------------------------------------------------------------------
Release 14.7 Trace  (nt64)
Copyright (c) 1995-2013 Xilinx, Inc.  All rights reserved.

C:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\unwrapped\trce.exe -intstyle ise -v 3 -s 1
-n 3 -fastpaths -xml top_level.twx top_level.ncd -o top_level.twr top_level.pcf
-ucf top_level.ucf

Design file:              top_level.ncd
Physical constraint file: top_level.pcf
Device,package,speed:     xc6vsx475t,ff1156,C,-1 (PRODUCTION 1.17 2013-10-13)
Report level:             verbose report

Environment Variable      Effect 
--------------------      ------ 
NONE                      No environment variables were set
--------------------------------------------------------------------------------

INFO:Timing:3412 - To improve timing, see the Timing Closure User Guide (UG612).
INFO:Timing:2752 - To get complete path coverage, use the unconstrained paths 
   option. All paths that are not constrained will be reported in the 
   unconstrained paths section(s) of the report.
INFO:Timing:3339 - The clock-to-out numbers in this timing report are based on 
   a 50 Ohm transmission line loading model.  For the details of this model, 
   and for more information on accounting for different loading conditions, 
   please see the device datasheet.

================================================================================
Timing constraint: TS_CI_GRP = PERIOD TIMEGRP "CI_GRP" 5 ns HIGH 50%;
For more information, see Period Analysis in the Timing Closure User Guide (UG612).

 0 paths analyzed, 0 endpoints analyzed, 0 failing endpoints
 0 timing errors detected. (0 component switching limit errors)
 Minimum period is   3.332ns.
--------------------------------------------------------------------------------

Component Switching Limit Checks: TS_CI_GRP = PERIOD TIMEGRP "CI_GRP" 5 ns HIGH 50%;
--------------------------------------------------------------------------------
Slack: 1.668ns (period - min period limit)
  Period: 5.000ns
  Min period limit: 3.332ns (300.120MHz) (Tbrper_I)
  Physical resource: BUFR_inst/I
  Logical resource: BUFR_inst/I
  Location pin: BUFR_X2Y10.I
  Clock network: ci
--------------------------------------------------------------------------------
Slack: 3.592ns (period - min period limit)
  Period: 5.000ns
  Min period limit: 1.408ns (710.227MHz) (Tickper)
  Physical resource: q0/CLK
  Logical resource: IDDR_inst/CK
  Location pin: ILOGIC_X2Y219.CLK
  Clock network: ci_bufio
--------------------------------------------------------------------------------
Slack: 3.592ns (period - min period limit)
  Period: 5.000ns
  Min period limit: 1.408ns (710.227MHz) (Tickper)
  Physical resource: q0/CLKB
  Logical resource: IDDR_inst/CKB
  Location pin: ILOGIC_X2Y219.CLKB
  Clock network: ci_bufio
--------------------------------------------------------------------------------

================================================================================
Timing constraint: TIMEGRP "DI_PINS" OFFSET = IN 1 ns VALID 2 ns BEFORE COMP 
"CI_P" "RISING";
For more information, see Offset In Analysis in the Timing Closure User Guide (UG612).

 2 paths analyzed, 1 endpoint analyzed, 1 failing endpoint
 1 timing error detected. (0 setup errors, 1 hold error)
 Offset is  -0.550ns.
--------------------------------------------------------------------------------

Paths for end point IDDR_inst (ILOGIC_X2Y219.D), 2 paths
--------------------------------------------------------------------------------
Slack (setup path):     1.550ns (requirement - (data path - clock path - clock arrival + uncertainty))
  Source:               DI_P (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio rising at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.711ns (Levels of Logic = 1)
  Clock Path Delay:     1.286ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Maximum Data Path at Fast Process Corner: DI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M12.I                Tiopi                 0.626   DI_P
                                                       DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLK    Tidock                0.084   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.711ns (0.710ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Minimum Clock Path at Fast Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 0.540   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.126   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.065   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLK    net (fanout=2)        0.555   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      1.286ns (0.605ns logic, 0.681ns route)
                                                       (47.0% logic, 53.0% route)

--------------------------------------------------------------------------------
Slack (setup path):     1.550ns (requirement - (data path - clock path - clock arrival + uncertainty))
  Source:               DI_N (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio rising at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.711ns (Levels of Logic = 2)
  Clock Path Delay:     1.286ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Maximum Data Path at Fast Process Corner: DI_N to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M11.PADOUT           Tiopp                 0.000   DI_N
                                                       DI_N
                                                       D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.DIFFI_IN         net (fanout=1)        0.000   D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.I                Tiodi                 0.626   DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLK    Tidock                0.084   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.711ns (0.710ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Minimum Clock Path at Fast Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 0.540   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.126   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.065   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLK    net (fanout=2)        0.555   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      1.286ns (0.605ns logic, 0.681ns route)
                                                       (47.0% logic, 53.0% route)

--------------------------------------------------------------------------------

Hold Paths: TIMEGRP "DI_PINS" OFFSET = IN 1 ns VALID 2 ns BEFORE COMP "CI_P" "RISING";
--------------------------------------------------------------------------------

Paths for end point IDDR_inst (ILOGIC_X2Y219.D), 2 paths
--------------------------------------------------------------------------------
Slack (hold path):      -0.990ns (requirement - (clock path + clock arrival + uncertainty - data path))
  Source:               DI_P (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio rising at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.986ns (Levels of Logic = 1)(Component delays alone exceeds constraint)
  Clock Path Delay:     2.951ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Minimum Data Path at Slow Process Corner: DI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M12.I                Tiopi                 1.090   DI_P
                                                       DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLK    Tiockd      (-Th)     0.105   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.986ns (0.985ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Maximum Clock Path at Slow Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 1.149   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.335   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.179   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLK    net (fanout=2)        1.288   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      2.951ns (1.328ns logic, 1.623ns route)
                                                       (45.0% logic, 55.0% route)

--------------------------------------------------------------------------------
Slack (hold path):      -0.990ns (requirement - (clock path + clock arrival + uncertainty - data path))
  Source:               DI_N (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio rising at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.986ns (Levels of Logic = 2)(Component delays alone exceeds constraint)
  Clock Path Delay:     2.951ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Minimum Data Path at Slow Process Corner: DI_N to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M11.PADOUT           Tiopp                 0.000   DI_N
                                                       DI_N
                                                       D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.DIFFI_IN         net (fanout=1)        0.000   D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.I                Tiodi                 1.090   DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLK    Tiockd      (-Th)     0.105   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.986ns (0.985ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Maximum Clock Path at Slow Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 1.149   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.335   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.179   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLK    net (fanout=2)        1.288   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      2.951ns (1.328ns logic, 1.623ns route)
                                                       (45.0% logic, 55.0% route)

--------------------------------------------------------------------------------

================================================================================
Timing constraint: TIMEGRP "DI_PINS" OFFSET = IN 1 ns VALID 2 ns BEFORE COMP 
"CI_P" "FALLING";
For more information, see Offset In Analysis in the Timing Closure User Guide (UG612).

 2 paths analyzed, 1 endpoint analyzed, 1 failing endpoint
 1 timing error detected. (0 setup errors, 1 hold error)
 Offset is  -0.549ns.
--------------------------------------------------------------------------------

Paths for end point IDDR_inst (ILOGIC_X2Y219.D), 2 paths
--------------------------------------------------------------------------------
Slack (setup path):     1.549ns (requirement - (data path - clock path - clock arrival + uncertainty))
  Source:               DI_P (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio falling at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.712ns (Levels of Logic = 1)
  Clock Path Delay:     1.286ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Maximum Data Path at Fast Process Corner: DI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M12.I                Tiopi                 0.626   DI_P
                                                       DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLKB   Tidock                0.085   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.712ns (0.711ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Minimum Clock Path at Fast Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 0.540   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.126   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.065   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLKB   net (fanout=2)        0.555   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      1.286ns (0.605ns logic, 0.681ns route)
                                                       (47.0% logic, 53.0% route)

--------------------------------------------------------------------------------
Slack (setup path):     1.549ns (requirement - (data path - clock path - clock arrival + uncertainty))
  Source:               DI_N (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio falling at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.712ns (Levels of Logic = 2)
  Clock Path Delay:     1.286ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Maximum Data Path at Fast Process Corner: DI_N to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M11.PADOUT           Tiopp                 0.000   DI_N
                                                       DI_N
                                                       D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.DIFFI_IN         net (fanout=1)        0.000   D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.I                Tiodi                 0.626   DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLKB   Tidock                0.085   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.712ns (0.711ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Minimum Clock Path at Fast Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 0.540   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.126   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.065   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLKB   net (fanout=2)        0.555   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      1.286ns (0.605ns logic, 0.681ns route)
                                                       (47.0% logic, 53.0% route)

--------------------------------------------------------------------------------

Hold Paths: TIMEGRP "DI_PINS" OFFSET = IN 1 ns VALID 2 ns BEFORE COMP "CI_P" "FALLING";
--------------------------------------------------------------------------------

Paths for end point IDDR_inst (ILOGIC_X2Y219.D), 2 paths
--------------------------------------------------------------------------------
Slack (hold path):      -0.987ns (requirement - (clock path + clock arrival + uncertainty - data path))
  Source:               DI_P (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio falling at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.989ns (Levels of Logic = 1)(Component delays alone exceeds constraint)
  Clock Path Delay:     2.951ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Minimum Data Path at Slow Process Corner: DI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M12.I                Tiopi                 1.090   DI_P
                                                       DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLKB   Tiockd      (-Th)     0.102   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.989ns (0.988ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Maximum Clock Path at Slow Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 1.149   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.335   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.179   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLKB   net (fanout=2)        1.288   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      2.951ns (1.328ns logic, 1.623ns route)
                                                       (45.0% logic, 55.0% route)

--------------------------------------------------------------------------------
Slack (hold path):      -0.987ns (requirement - (clock path + clock arrival + uncertainty - data path))
  Source:               DI_N (PAD)
  Destination:          IDDR_inst (FF)
  Destination Clock:    ci_bufio falling at 0.000ns
  Requirement:          1.000ns
  Data Path Delay:      0.989ns (Levels of Logic = 2)(Component delays alone exceeds constraint)
  Clock Path Delay:     2.951ns (Levels of Logic = 2)
  Clock Uncertainty:    0.025ns

  Clock Uncertainty:          0.025ns  ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ):  0.050ns
    Total Input Jitter (TIJ):   0.000ns
    Discrete Jitter (DJ):       0.000ns
    Phase Error (PE):           0.000ns

  Minimum Data Path at Slow Process Corner: DI_N to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    M11.PADOUT           Tiopp                 0.000   DI_N
                                                       DI_N
                                                       D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.DIFFI_IN         net (fanout=1)        0.000   D_IBUFDS_inst/SLAVEBUF.DIFFIN
    M12.I                Tiodi                 1.090   DI_P
                                                       D_IBUFDS_inst/IBUFDS
    ILOGIC_X2Y219.D      net (fanout=1)        0.001   di
    ILOGIC_X2Y219.CLKB   Tiockd      (-Th)     0.102   q0
                                                       IDDR_inst
    -------------------------------------------------  ---------------------------
    Total                                      0.989ns (0.988ns logic, 0.001ns route)
                                                       (99.9% logic, 0.1% route)

  Maximum Clock Path at Slow Process Corner: CI_P to IDDR_inst
    Location             Delay type         Delay(ns)  Physical Resource
                                                       Logical Resource(s)
    -------------------------------------------------  -------------------
    L13.I                Tiopi                 1.149   CI_P
                                                       CI_P
                                                       C_IBUFDS_inst/IBUFDS
    BUFIODQS_X2Y22.I     net (fanout=2)        0.335   ci
    BUFIODQS_X2Y22.O     Tbiocko_O             0.179   BUFIO_inst
                                                       BUFIO_inst
    ILOGIC_X2Y219.CLKB   net (fanout=2)        1.288   ci_bufio
    -------------------------------------------------  ---------------------------
    Total                                      2.951ns (1.328ns logic, 1.623ns route)
                                                       (45.0% logic, 55.0% route)

--------------------------------------------------------------------------------


2 constraints not met.


Data Sheet report:
-----------------
All values displayed in nanoseconds (ns)

Setup/Hold to clock CI_P
------------+------------+------------+------------+------------+------------------+--------+
            |Max Setup to|  Process   |Max Hold to |  Process   |                  | Clock  |
Source      | clk (edge) |   Corner   | clk (edge) |   Corner   |Internal Clock(s) | Phase  |
------------+------------+------------+------------+------------+------------------+--------+
DI_N        |   -0.550(R)|      FAST  |    1.990(R)|      SLOW  |ci_bufio          |   0.000|
            |   -0.549(F)|      FAST  |    1.987(F)|      SLOW  |ci_bufio          |   0.000|
DI_P        |   -0.550(R)|      FAST  |    1.990(R)|      SLOW  |ci_bufio          |   0.000|
            |   -0.549(F)|      FAST  |    1.987(F)|      SLOW  |ci_bufio          |   0.000|
------------+------------+------------+------------+------------+------------------+--------+

TIMEGRP "DI_PINS" OFFSET = IN 1 ns VALID 2 ns BEFORE COMP "CI_P" "RISING";
Worst Case Data Window 1.440; Ideal Clock Offset To Actual Clock -1.270; 
------------------+------------+------------+------------+------------+---------+---------+-------------+
                  |            |  Process   |            |  Process   |  Setup  |  Hold   |Source Offset|
Source            |   Setup    |   Corner   |    Hold    |   Corner   |  Slack  |  Slack  |  To Center  |
------------------+------------+------------+------------+------------+---------+---------+-------------+
DI_N              |   -0.550(R)|      FAST  |    1.990(R)|      SLOW  |    1.550|   -0.990|        1.270|
DI_P              |   -0.550(R)|      FAST  |    1.990(R)|      SLOW  |    1.550|   -0.990|        1.270|
------------------+------------+------------+------------+------------+---------+---------+-------------+
Worst Case Summary|      -0.550|         -  |       1.990|         -  |    1.550|   -0.990|             |
------------------+------------+------------+------------+------------+---------+---------+-------------+

TIMEGRP "DI_PINS" OFFSET = IN 1 ns VALID 2 ns BEFORE COMP "CI_P" "FALLING";
Worst Case Data Window 1.438; Ideal Clock Offset To Actual Clock -1.268; 
------------------+------------+------------+------------+------------+---------+---------+-------------+
                  |            |  Process   |            |  Process   |  Setup  |  Hold   |Source Offset|
Source            |   Setup    |   Corner   |    Hold    |   Corner   |  Slack  |  Slack  |  To Center  |
------------------+------------+------------+------------+------------+---------+---------+-------------+
DI_N              |   -3.049(F)|      FAST  |    4.487(F)|      SLOW  |    1.549|   -0.987|        1.268|
DI_P              |   -3.049(F)|      FAST  |    4.487(F)|      SLOW  |    1.549|   -0.987|        1.268|
------------------+------------+------------+------------+------------+---------+---------+-------------+
Worst Case Summary|      -3.049|         -  |       4.487|         -  |    1.549|   -0.987|             |
------------------+------------+------------+------------+------------+---------+---------+-------------+


Timing summary:
---------------

Timing errors: 2  Score: 1977  (Setup/Max: 0, Hold: 1977)

Constraints cover 4 paths, 0 nets, and 6 connections

Design statistics:
   Minimum period:   3.332ns{1}   (Maximum frequency: 300.120MHz)


------------------------------------Footnotes-----------------------------------
1)  The minimum period statistic assumes all single cycle delays.

Analysis completed Tue Mar 21 12:06:24 2023 
--------------------------------------------------------------------------------

Trace Settings:
-------------------------
Trace Settings 

Peak Memory Usage: 1043 MB

Если я правильно понял, констрейны не сходятся из-за того, что у сигнала данных и сигнала клока разное время прохождения между входом ПЛИС и входом IDDR.

Добиться выполнения констрейнов (OFFSET IN) можно только используя IDELAY, задержав клок или данные?

Изменено пользователем srf55

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...