Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как согласовать два клоковых региона в ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Alexsandr000
Уважаемые форумчане!

Есть ПЛИС Spartan - 6, в проекте возникла ошибка:
Код
Place:1355 - Component < MDO/MCD/blk00003926 > is driven by DCM or PLL
   component < MCM/pll_base_inst/PLL_ADV > placed at < PLL_ADV_X0Y2 >. This
   requires the load component to be range constrained to CLOCKREGION_X0Y5 or
   CLOCKREGION_X1Y5. Placer was not able to apply this range constraint because
   component < MDO/MCD/blk00003926 > has a LOC constraint or area group in a
   different clock region. Please check whether the user constraints and remove
   any conflicting LOCs or area groups. Note that the loads of a DCM/PLL must be
   constrained to the two adjacent clock regions to the DCM/PLL. Using DCM/PLL
   clocks to drive clock pins directly is not a recommended practice. Using a
   BUFG will give more flexibility to the placer and produce superior placement
   results.


Я так понимаю, что надо согласовать клоковые регионы, однако я пока не понимаю как=)))
o_khavin
Цитата(Alexsandr000 @ Mar 4 2014, 15:39) *
Я так понимаю, что надо согласовать клоковые регионы, однако я пока не понимаю как=)))

Не совсем так. Нужно разместить компоненты. которые висят на некоем клоковом дереве, в пределах достижимости этого дерева. Для этого есть разнообразные placement constraints.
Альтернативным вариантом является вывод клока на глобальное дерево путём использования компонента bufg после выхода PLL. Кстати, фраза "Using DCM/PLL clocks to drive clock pins directly is not a recommended practice. Using a BUFG will give more flexibility to the placer and produce superior placement results." как раз и намекает на вариант использования bufg. sm.gif
Alexsandr000
Цитата(o_khavin @ Mar 4 2014, 15:50) *
Не совсем так. Нужно разместить компоненты. которые висят на некоем клоковом дереве, в пределах достижимости этого дерева. Для этого есть разнообразные placement constraints.
Альтернативным вариантом является вывод клока на глобальное дерево путём использования компонента bufg после выхода PLL. Кстати, фраза "Using DCM/PLL clocks to drive clock pins directly is not a recommended practice. Using a BUFG will give more flexibility to the placer and produce superior placement results." как раз и намекает на вариант использования bufg. sm.gif

Блин, у меня трое клоков, один через фифо на основной клок идет, а третий клок это лань. Вот и как понять какой клок надо через этот буфер пустить))))
o_khavin
Цитата(Alexsandr000 @ Mar 4 2014, 21:43) *
Блин, у меня трое клоков, один через фифо на основной клок идет, а третий клок это лань. Вот и как понять какой клок надо через этот буфер пустить))))

Половину слов не понял, но имеет смысл пропускать через bufg все клоки в дизайне, если этих bufg хватает. Для клоков, которые используются для i/o имеет смысл покурить UG на предмет окна защёлкивания данных.
Dmitriyspb
Цитата(o_khavin @ Mar 4 2014, 21:52) *
Половину слов не понял, но имеет смысл пропускать через bufg все клоки в дизайне, если этих bufg хватает. Для клоков, которые используются для i/o имеет смысл покурить UG на предмет окна защёлкивания данных.


Поддерживаю. В Spartane6 глобальных буферов более 10-ти (если я не ошибаюсь). Поэтому 100 % нужно все тактовые линии сделать глобальными. А откуда у вас в проекте берутся 3 значения тактовой частоты? Все частоты внешние?
Alexsandr000
Цитата(Dmitriyspb @ Mar 5 2014, 10:28) *
Поддерживаю. В Spartane6 глобальных буферов более 10-ти (если я не ошибаюсь). Поэтому 100 % нужно все тактовые линии сделать глобальными. А откуда у вас в проекте берутся 3 значения тактовой частоты? Все частоты внешние?

1. АЦП
2. собственный кварц
3. Ethernet
Maverick
Цитата(Alexsandr000 @ Mar 5 2014, 15:27) *
1. АЦП
2. собственный кварц
3. Ethernet

Мне например не понятна структура Вашего проекта...
Делаете три схемы работающих на трех частотах - прием данных с АЦП, обработка данных, прием/передача данных/команд по Ethernet. Данные из схемы в схему передаете через двухклоковое фифо (в частном случае можно через флаги/симафоры готовности данных (пропущенных через синхронизирующую логику), если следующая схема работает на более высокой частоте), а сигналы упраления через синхронизирующую логику ...

Какой применяется АЦП? частота работы? Частота собственного кварца?
как формируете тактовую частоту для каждой из 3 схем?
o_khavin
Цитата(Alexsandr000 @ Mar 5 2014, 17:27) *
1. АЦП
2. собственный кварц
3. Ethernet

Не знаю, какой у вас проект. Но обычно похожие сообщения появляются тогда, когда мапер никак не может упаковать все элементы с одним клоком в пределах доступных локально клоковых регионов.
Для внутренней логики это происходит редко, т.к. она поддаётся перемещению... разве что её очень много и она не лезет.
Чаще всего это происходит для элементов с предопределённым расположением, типа i/o cell-ов. Их переместить невозможно, что и приводит к вышеописанной проблеме.
Так что выводите все клоки из PLL-и через bufg и не парьтесь. Только почитайте документацию на предмет правильного тайминга на i/o в случае использования bufg.
Dmitriyspb
Цитата(Alexsandr000 @ Mar 5 2014, 17:27) *
1. АЦП
2. собственный кварц
3. Ethernet


Я предполагаю, что у вас не КВАРЦ, а термостатированный кварцевый генератор. Я обращаю на это внимание, так как прозвучало и не раз предложение об использовании PLL (Кстати, в Спартане 6 нет привычного нам PLL, там есть DCM, который включает в себя PLL ). При использовании PLL (или DCM) в проекте необходимо учитывать джиттер входного опорного генератора. Т.е. если у вас на входе не стабильная частота, тогда PLL никогда не защелкнет опорную частоту и как следствие не выдаст ее в проект (Не будет тактового сигнала). Но при использовании PLL (или DCM) появляется удобная штука-))) LOCK входного сигнала. Этот сигнал можно и нужно использовать для супервизоров и т.д. и т.п. В общем повышает стабильность работы устройства.
А если у вас все же схемка генератора на рассыпухе с применением кварцевого резонатора, ТОГДА я не рекомендую использовать PLL (DCM), т.к. джиттер высок и вообще опорный генератор лишен какой либо стабильности. В ЭТОМ СЛУЧАЕ просто входной пин с тактами используете в проекте только bufg. Т.о. вы вносите минимальные задержки на распространение тактов внутри кристалла и проект работает максимально синхронно .

Вообще самый верный способ - это из опорной частоты получить такты для Ethernet и АЦП. Но тут опять же нужен стабильный опорный генератор, чтобы поделить опорную частоту используя DCM.

Кстати, надеюсь топология вашей печатной платы учитывает, то что тактовый сигнал должен быть заведен на пин, который имеет глобальный статус (GCLK). Если для вас это новость, тогда советую подробно изучить возможные статусы выводов ПЛИС Xilinx. Этот вопрос так же очень важен.

В итоге отмечу, что в вашей задаче решение комплексное. Иначе ваше устройство будет работать НЕ СТАБИЛЬНО.
olegras
Цитата(Dmitriyspb @ Mar 6 2014, 10:55) *
Кстати, в Спартане 6 нет привычного нам PLL, там есть DCM, который включает в себя PLL


Не совсем верно. UG382: "The Spartan-6 FPGA Clock Management Tiles (CMTs) provide very flexible, high-performance clocking.
The Spartan-6 FPGA CMT blocks (Figure 2-1) are located in the center column along the vertical global clock tree. Each CMT block contains two DCMs
and one PLL". То есть физически в S6 есть и DCM и PLL. Раздельно.

Цитата(Dmitriyspb @ Mar 6 2014, 10:55) *
Вообще самый верный способ - это из опорной частоты получить такты для Ethernet и АЦП. Но тут опять же нужен стабильный опорный генератор, чтобы поделить опорную частоту используя DCM.

Насчет Ethernet - если например речь идет о внешнем PHY с интерфейсом MII - PHY сам дает клоки как для передачи, так и для приема. Зачем их еще на что-то делить? Их надо подавать на вход ПЛИС и непосредственно использовать.

Совет ТС: обязательно пропустите все клоки через BUFG (в случае PLL - его выход). Когда я работал на ISE 10.х - он сам делал это автоматом (включая выходы DCM). 14-й почемуто не хочет, приходится подключать все BUFG вручную.
gibson1980
Цитата(olegras @ Mar 6 2014, 21:20) *
Совет ТС: обязательно пропустите все клоки через BUFG (в случае PLL - его выход). Когда я работал на ISE 10.х - он сам делал это автоматом (включая выходы DCM). 14-й почемуто не хочет, приходится подключать все BUFG вручную.

А это разве не автоматом? sm.gif
Нажмите для просмотра прикрепленного файла
olegras
Цитата(gibson1980 @ Mar 6 2014, 20:06) *
А это разве не автоматом? sm.gif

Это что результат визарда?
Я имел ввиду когда подключаю например PLL_BASE (для S6) как компонент в коде, синтезатор его выходы не подключает к буферам, синтез репорт выдает варнинги. Приходится подключать вручную (с DCM не пробовал, не было необходимости). А в 10.х помню выходы DCM (для S3, S3E) автоматически пропускались через буферы, это можно было видеть в репорте. Может мне надо в настройках покопаться... Хотя меня ручное подключение BUFG не напрягает sm.gif
Dmitriyspb
Цитата(olegras @ Mar 6 2014, 17:20) *
Не совсем верно. UG382: "The Spartan-6 FPGA Clock Management Tiles (CMTs) provide very flexible, high-performance clocking.
The Spartan-6 FPGA CMT blocks (Figure 2-1) are located in the center column along the vertical global clock tree. Each CMT block contains two DCMs
and one PLL". То есть физически в S6 есть и DCM и PLL. Раздельно.


Насчет Ethernet - если например речь идет о внешнем PHY с интерфейсом MII - PHY сам дает клоки как для передачи, так и для приема. Зачем их еще на что-то делить? Их надо подавать на вход ПЛИС и непосредственно использовать.

Совет ТС: обязательно пропустите все клоки через BUFG (в случае PLL - его выход). Когда я работал на ISE 10.х - он сам делал это автоматом (включая выходы DCM). 14-й почемуто не хочет, приходится подключать все BUFG вручную.


Возможно PLL так же есть, не буду спорить biggrin.gif Кстати, если это так тогда спасибо, буду иметь в виду.

А если серьезно, тогда что гадать поп поводу Ethernet.....?! Я изложил какие есть мысли на этот счет. Тут нужно, чтобы автор темы написал как оно действительно или bb-offtopic.gif Мы не телепаты 1111493779.gif
biggrin.gif
Alexsandr000
В принципе это первый такого рода проект, вообще такого рода проблема возникла после изменения логики с 1.8 на 3.3, до этого все било)
olegras
Цитата(Alexsandr000 @ Mar 9 2014, 19:09) *
В принципе это первый такого рода проект, вообще такого рода проблема возникла после изменения логики с 1.8 на 3.3, до этого все било)

Так-так, вот отсюда поподробнее пожалуйста. Было то-то, решили сделать так-то, сделали то-то, стало то-то...
Хочется понять связь между топиком (проблема в клоковых регионах) и изменением логики (с 1.8 на 3.3).
Alexsandr000
Цитата(olegras @ Mar 10 2014, 08:35) *
Так-так, вот отсюда поподробнее пожалуйста. Было то-то, решили сделать так-то, сделали то-то, стало то-то...
Хочется понять связь между топиком (проблема в клоковых регионах) и изменением логики (с 1.8 на 3.3).

изменили логику начались танцы с бубном с клоками. Был отработанный проект на логике 1.8, но тут нужно его было переделать и логика уже 3.3. Я сам пока не могу понять почему началась это котовасия)
olegras
Цитата(Alexsandr000 @ Mar 10 2014, 14:14) *
изменили логику начались танцы с бубном с клоками. Был отработанный проект на логике 1.8, но тут нужно его было переделать и логика уже 3.3. Я сам пока не могу понять почему началась это котовасия)

К сожалению Вы продолжаете думать что здеь живут телепаты. А зря...
Вы можете выложить структуру реализованного клокового региона? То есть: что входит в ПЛИС, что подается на PLL, что с него снимается, чем тактируются FIFO и т.д... Желательно графически. А лучше еще и такой же регион со старой логикой.
Dmitriyspb
Цитата(Alexsandr000 @ Mar 10 2014, 13:14) *
изменили логику начались танцы с бубном с клоками. Был отработанный проект на логике 1.8, но тут нужно его было переделать и логика уже 3.3. Я сам пока не могу понять почему началась это котовасия)


Уважаемый Alexsandr000!
ВЫ ХОТЬ ЧИТАЕТЕ, ЧТО ТУТ ПИШУТ?????? santa2.gif

Прочтите все посты. И прокомментируйте, что пробовали, а что не пробовали.

У Вас в проекте не используются глобальные трассы под такты.....чего вы хотите?! Глюков будет много и самых разных.

Нарисуйте блок схему вашего устройства с акцентом на такты. Откуда и куда они идут и где формируются.

Или танцуйте с бубном дальше smile3046.gif
Alexsandr000
Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library UNISIM;
use UNISIM.VComponents.all;
----------------------------------------------------------------------------------------------------
entity MODULE_MAIN is
    Port (
        G_CLK_IN          : in  STD_LOGIC;    
        G_TX_DATA_OUT     : out STD_LOGIC_VECTOR (3 downto 0);
        G_TX_EN_OUT       : out STD_LOGIC;
        G_TX_ER_OUT       : out STD_LOGIC;
        G_TX_CLK_IN       : in  STD_LOGIC;
        G_RES_ETH_OUT     : out STD_LOGIC;
        G_MD_CLK_OUT      : out STD_LOGIC;
        G_MD_IO_OUT       : out STD_LOGIC;
        data_p            : in  STD_LOGIC_VECTOR (15 downto 0); --    
        data_n            : in  STD_LOGIC_VECTOR (15 downto 0); --            
        G_CLK_ADC_P_IN    : in  STD_LOGIC; --    
        G_CLK_ADC_N_IN    : in  STD_LOGIC; --    
        G_TX_OUT          : out STD_LOGIC :='1';
        G_TEST_TX_OUT     : out STD_LOGIC_VECTOR (2 downto 0)
    );
end MODULE_MAIN;
---------------------------------------------------------------------------------
architecture Behavioral of MODULE_MAIN is
------------------------------------------------------------------------
    component MODULE_CLOCK_MANAGER
        port(
            CLK_IN1    : in  std_logic;
            CLK_OUT1   : out std_logic;
            CLK_OUT2   : out std_logic;
            LOCKED     : out std_logic
        );
    end component;
--------------------------------------------------------------------------
    COMPONENT MD_CLOCK
        Port (
            clk   : in  STD_LOGIC:='0';
            mdclk : out STD_LOGIC:='0';
            mdio  : out STD_LOGIC:='0'
        );
    END COMPONENT;
--------------------------------------------------------------------------------------
    COMPONENT MODULE_SYNCHRONIZATION
        Port (
            CLK_IN   : IN  STD_LOGIC;
            PWR_EN   : IN  std_logic;
            EN_OUT   : out STD_LOGIC;
            PWR_OUT  : out STD_LOGIC;
            TEST     : out STD_LOGIC_VECTOR(2 downto 0)
        );
    END COMPONENT;
--------------------------------------------------------------------------------------
    COMPONENT MODULE_DATA_OUT
        Port (
            CLK         : in  STD_LOGIC;
            TX_CLK      : in  STD_LOGIC;
            DATA_IN_RE  : in  STD_LOGIC_VECTOR (47 downto 0);
            DATA_IN_IM  : in  STD_LOGIC_VECTOR (47 downto 0);
            DATA_IN_EN  : in  STD_LOGIC;
            gtx_data    : out STD_LOGIC_VECTOR (3 downto 0);
            gtx_en      : out STD_LOGIC;
            gtx_er      : out STD_LOGIC
        );
    end COMPONENT;
------------------------------------------------------------------------
    signal clk_125MHz   : std_logic := '0';
    signal data_from_adc    : STD_LOGIC_VECTOR(47 downto 0):=(others=>'0');
    signal clk_from_adc    : STD_LOGIC;
    signal enable    : STD_LOGIC:= '0';
    signal adc_ready : STD_LOGIC:= '0';
    signal ENPWR     : STD_LOGIC:= '0';
    -------- MM RE --------------------------------------------------------------------
begin
--------------------------------------------------------------------------
    MODULE_CLOCK_MGR: MODULE_CLOCK_MANAGER  port map(G_CLK_IN,clk_125MHz,clk_10MHz,G_RES_ETH_OUT);
    MODULE_MD_CLK:  MD_CLOCK  PORT MAP(clk_125MHz, G_MD_CLK_OUT, G_MD_IO_OUT);
---------------------------------------------------------------------------
    ibufds_clk_inst : IBUFGDS generic map (diff_term => true,IOSTANDARD => "LVDS_33") port map (I => G_CLK_ADC_P_IN,IB => G_CLK_ADC_N_IN,O => clk_from_adc);
--------------------input signal-------------------------------------------
    pins: for N in 0 to 15 generate
    begin
        ibufds_inst : IBUFDS generic map (DIFF_TERM  => true,IOSTANDARD => "LVDS_33") port map (I => data_p(N),IB => data_n(N),O => data_from_adc(N));
    end generate;
---------------------------------------------------------------------------
    MSNC: MODULE_SYNCHRONIZATION PORT MAP(clk_125MHz,ENPWR,enable,G_TX_OUT,G_TEST_TX_OUT); --
-----------------------------------------------------------------------------------------
    MDO:MODULE_DATA_OUT Port map(clk_125MHz,G_TX_CLK_IN,
                                         data_from_adc,enable,
                                          G_TX_DATA_OUT,G_TX_EN_OUT,G_TX_ER_OUT
                                          );
-----------------------------------------------------------------------------
end Behavioral;

и UCF
Код
NET "G_CLK_IN" TNM_NET = "G_CLK_IN";
TIMESPEC TS_G_CLK_IN = PERIOD "G_CLK_IN" 8 ns;
####################################################################
NET "G_CLK_IN" LOC = AA12 |IOSTANDARD = LVCMOS33;#LVCMOS18;
################# ADC CLOCK ####################################################
NET "G_CLK_ADC_P_IN" TNM_NET = "G_CLK_ADC_P_IN";
TIMESPEC TS_G_CLK_ADC_P_IN = PERIOD "G_CLK_ADC_P_IN" 8 ns HIGH 50 %;
NET "G_CLK_ADC_P_IN" LOC = B12 |IOSTANDARD = LVDS_33;
################# ADC DATA #########################################
NET "data_p[0]"  LOC = E16 | IOSTANDARD = LVDS_33;
NET "data_n[0]"  LOC = D17 | IOSTANDARD = LVDS_33;
NET "data_p[1]"  LOC = D15 | IOSTANDARD = LVDS_33;
NET "data_p[2]"  LOC = C17 | IOSTANDARD = LVDS_33;
NET "data_p[3]"  LOC = B16 | IOSTANDARD = LVDS_33;
NET "data_p[4]"  LOC = C15 | IOSTANDARD = LVDS_33;
NET "data_p[5]"  LOC = B14 | IOSTANDARD = LVDS_33;
NET "data_p[6]"  LOC = C13 | IOSTANDARD = LVDS_33;
NET "data_p[7]"  LOC = D14 | IOSTANDARD = LVDS_33;
NET "data_p[8]"  LOC = C5  | IOSTANDARD = LVDS_33;
NET "data_p[9]"  LOC = B6  | IOSTANDARD = LVDS_33;
NET "data_p[10]" LOC = C7  | IOSTANDARD = LVDS_33;
NET "data_p[11]" LOC = B8  | IOSTANDARD = LVDS_33;
NET "data_p[12]" LOC = C9  | IOSTANDARD = LVDS_33;
NET "data_p[13]" LOC = B10 | IOSTANDARD = LVDS_33;
NET "data_p[14]" LOC = D11 | IOSTANDARD = LVDS_33;
NET "data_p[15]" LOC = B18 | IOSTANDARD = LVDS_33;
NET "G_TX_OUT"            LOC = AB4 | IOSTANDARD = LVCMOS33;#LVCMOS18;  
####################### ETHERNET ################################################
NET "G_MD_CLK_OUT"  LOC = AA2 | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET "G_MD_IO_OUT"   LOC = AB3 | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET "G_RES_ETH_OUT" LOC = T15 | IOSTANDARD = LVCMOS33;#LVCMOS18;
####################### RX       ######################################
#NET "G_RX_CLK_IN"     LOC = Y11 | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[0]" LOC = Y3  | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[1]" LOC = W8  | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[2]" LOC = W4  | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[3]" LOC = U9  | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[4]" LOC = V7 | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[5]" LOC = V5 | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[6]" LOC = W9 | IOSTANDARD = LVCMOS18;
#NET "G_RX_DATA_IN[7]" LOC = U6 | IOSTANDARD = LVCMOS18;
#NET "G_RX_EN_IN" LOC = Y4 | IOSTANDARD = LVCMOS18;
#NET "G_RX_ER_IN" LOC = Y8 | IOSTANDARD = LVCMOS18;
######################   TX       ################################
NET G_TX_CLK_IN      LOC = W12  | IOSTANDARD = LVCMOS33;#LVCMOS18; #R11; -    
NET G_TX_EN_OUT      LOC = AB16 | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET G_TX_ER_OUT      LOC = AB18 | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET G_TX_DATA_OUT[0] LOC = AA18 | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET G_TX_DATA_OUT[1] LOC = AB14 | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET G_TX_DATA_OUT[2] LOC = AA16 | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET G_TX_DATA_OUT[3] LOC = W14  | IOSTANDARD = LVCMOS33;#LVCMOS18;
#NET G_TX_DATA_OUT[4] LOC = T16  | IOSTANDARD = LVCMOS18;
#NET G_TX_DATA_OUT[5] LOC = Y14  | IOSTANDARD = LVCMOS18;
#NET G_TX_DATA_OUT[6] LOC = V15  | IOSTANDARD = LVCMOS18;
#NET G_TX_DATA_OUT[7] LOC = AA14 | IOSTANDARD = LVCMOS18;
####################### LEDS #####################################################
NET "G_TEST_TX_OUT[0]" LOC = D6  | SLEW = FAST | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET "G_TEST_TX_OUT[1]" LOC = C6  | SLEW = FAST | IOSTANDARD = LVCMOS33;#LVCMOS18;
NET "G_TEST_TX_OUT[2]" LOC = D7  | SLEW = FAST | IOSTANDARD = LVCMOS33;#LVCMOS18;
Alexsandr000
Добавил BUFG вроде все заработало) Спасибо за подсказки!
olegras
Цитата(Alexsandr000 @ Mar 12 2014, 10:14) *
Добавил BUFG вроде все заработало) Спасибо за подсказки!

Поздравляю.
Синтезатор больше не ругается? Например на то что в Вашем коде не определено:
1. Что подается на входы DATA_IN_IM модуля MDO
2. Куда подается клоковый сигнал clk_from_adc с выхода ibufds_clk_inst
3. куда соединены входы data_n (в UCF)
Alexsandr000
Цитата(olegras @ Mar 12 2014, 10:13) *
Поздравляю.
Синтезатор больше не ругается? Например на то что в Вашем коде не определено:
1. Что подается на входы DATA_IN_IM модуля MDO
2. Куда подается клоковый сигнал clk_from_adc с выхода ibufds_clk_inst
3. куда соединены входы data_n (в UCF)

Проект большой я сократил, что бы не путать вас.
В целом с АЦП поступают данные и часы, через фифо часы согласовываются и весь проект далее работает на внитриплисовой частоте, после фильтрации сигнала и вычисления БПФ, полученные данные поступают на Ethernet(100) и передаются на комп. Первоначально проект работал на ура, но вдруг потребовалось изменить логику с 1.8 на 3.3 и тут возникла эта ошибка. Но по выше указанным рекомендациям, я в клокменеджере пропустил входной клок и клоки АЦП через BUFG все заработал. Как-то так) Прошу прощения за некоторое недопонимание с моей стороны, но писал в перерывах между работой
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.