реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Как согласовать два клоковых региона в ПЛИС
Alexsandr000
сообщение Mar 10 2014, 09:14
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



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

изменили логику начались танцы с бубном с клоками. Был отработанный проект на логике 1.8, но тут нужно его было переделать и логика уже 3.3. Я сам пока не могу понять почему началась это котовасия)


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Mar 11 2014, 01:51
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



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

К сожалению Вы продолжаете думать что здеь живут телепаты. А зря...
Вы можете выложить структуру реализованного клокового региона? То есть: что входит в ПЛИС, что подается на PLL, что с него снимается, чем тактируются FIFO и т.д... Желательно графически. А лучше еще и такой же регион со старой логикой.
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Mar 11 2014, 07:23
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



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


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

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

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

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

Или танцуйте с бубном дальше smile3046.gif


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
Alexsandr000
сообщение Mar 12 2014, 03:03
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



Код
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;


--------------------
Go to the top of the page
 
+Quote Post
Alexsandr000
сообщение Mar 12 2014, 05:14
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



Добавил BUFG вроде все заработало) Спасибо за подсказки!


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Mar 12 2014, 06:13
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Цитата(Alexsandr000 @ Mar 12 2014, 10:14) *
Добавил BUFG вроде все заработало) Спасибо за подсказки!

Поздравляю.
Синтезатор больше не ругается? Например на то что в Вашем коде не определено:
1. Что подается на входы DATA_IN_IM модуля MDO
2. Куда подается клоковый сигнал clk_from_adc с выхода ibufds_clk_inst
3. куда соединены входы data_n (в UCF)
Go to the top of the page
 
+Quote Post
Alexsandr000
сообщение Mar 12 2014, 07:03
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



Цитата(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 все заработал. Как-то так) Прошу прощения за некоторое недопонимание с моей стороны, но писал в перерывах между работой


--------------------
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 18:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.0142 секунд с 7
ELECTRONIX ©2004-2016