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

 
 
> Передача данных между частотными доменами, как правильно ?
v1vas
сообщение Mar 30 2015, 18:58
Сообщение #1





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



Virtex 6
Есть два частотных домена, 50 MHz и 200 MHz
Клоки идут с Xilinx'го ClockWizard, утверждается, что они на 100% совпадают по фазе. Я так понимаю это не гарантированная фигня и из-за роутинга мы в некоторых местах плисины можем получить небольшое различие по времени прихода фронта волны ?
Соответственно логика моих рассуждений, раз во фронт медленного клока попадают два фронта быстрого, то во втором фронте быстрого мы можем сэмплить данные с медленного.

Код
constant MAINCLK_SAMPLE_STEP : integer := 1;
signal main_clk_cnt : integer range 0 to 3 := 0;

process (data_clock) --50 MHZ
begin
    if (rising_edge(data_clock)) then
        data_mainclk <= i_data;
        data_ready_mainclk <= i_data_ready;
        o_result <= result_mainclk;
    end if;
end process;

process (clock) --200MHZ
begin
    if (rising_edge(clock)) then
     if (reset = '0') then
    
     if (main_clk_cnt = 3) then main_clk_cnt <= 0; else main_clk_cnt <= main_clk_cnt + 1; end if;

        case SM_STATE is
         when SM_DATA_INPUT_FIRST_1 =>
            if (data_ready_mainclk = '1') and (main_clk_cnt = MAINCLK_SAMPLE_STEP) then
                dinp(63 downto 32) <= data_mainclk;                
                SM_STATE <= SM_DATA_INPUT_FIRST_2;
            end if;

............... и т.д.

Сиё творчество в симуляторе работает нормально.
Насколько вообще правилен такой подход ?
Интуитивно он мне не нравится, чувствую, что тут надо как-то по другому и все законстрейнить, но пока не могу понять как.
Ткните меня пожалуйста, как это нормально сделать ?

Сообщение отредактировал v1vas - Mar 30 2015, 19:43
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:40
Рейтинг@Mail.ru


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