srf55 2 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба Здравствуйте! Я заметил, что 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"; Получается: По какой причине происходят эти замены примитивов? Правильно ли я описал временные ограничения в ucf? Временные ограничения перестают выполняются, если входной клок повысить до 200 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба Суть проблемы в том, что так перестает что то работать? А если подать CI_P/CI_N сразу на IDDR_2CLK, и вообще сразу этот буфер объявить как IDDR_2CLK, что будет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srf55 2 20 марта, 2023 Опубликовано 20 марта, 2023 (изменено) · Жалоба 10 часов назад, 1891ВМ12Я сказал: Суть проблемы в том, что так перестает что то работать? А если подать CI_P/CI_N сразу на IDDR_2CLK, и вообще сразу этот буфер объявить как IDDR_2CLK, что будет? Изначально проблема была в том, что констрейны не проходят, если задать в констрейнах входной клок >= 200 МГц. Поэтому начал подозревать, что проблема в том, что синтезатор заменяет примитивы. Если CI_P/CI_N напрямую подать на IDDR_2CLK, то тогда CI_P/CI_N перестанет быть дифф.сигналом (LVDS) и будет двумя отдельными КМОП-сигналами. Изменено 20 марта, 2023 пользователем srf55 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба IDDR это и есть IDDR2CLK, в определенном включении. А времянки надо брать Detailed path report и смотреть что именно не сходится. Гадать на кофейной гуще, бесполезно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srf55 2 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Des00, я разное включение пробовал. всегда в результате у меня получался IDDR_CLK. Не смог добиться от синтезатора Xilinx, чтобы просто IDDR получился (как в UG623 и UG361) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 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, а схематик вы смотрите что на чипе развело, а не как вы описали. А развело его на этом примитиве, потому что только этот примитив есть. а оставили его в либе из-за "совместимости" со старыми устройствами чтобы код не переписывать. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srf55 2 21 марта, 2023 Опубликовано 21 марта, 2023 (изменено) · Жалоба Спасибо, 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, задержав клок или данные? Изменено 21 марта, 2023 пользователем srf55 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться