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

помогите с ТаймКвестом

Добрый день всем.

 

На вход ПЛИС поступает некая тактовая по ЛВДС:

PORT MAP (
    i         => comp_in_p,
    ibar     => comp_in_n,
    o         => cry_lane_clk
    );

Эта тактовая поступает в модуль переопределения рабочих частот:

PORT MAP    (
    -- clock area
    lane_clk_in        => cry_lane_clk,
    lane_clk_out    => cry_lane_clk_selected,
    gen_clk            => quartz_clk,
    lane_div_out    => lane_div,
    ...
    );

Далее, что происходит в этом модуле:

1.

lane_clk_out    <= lane_clk_inner;
    lane_div_out    <= lane_div_clk_p;

 

2.

lane_clk_inner    <=    pll_160_lane_clk    WHEN command_osc_oe = '1' ELSE
                    lane_clk_in            WHEN pll2_status_locked = '1' ELSE
                    pll_160_lane_clk    WHEN pll_160_status_locked = '1' ELSE
                    '0';

т.е. исходя из условий, тактовая lane_clk_inner может быть pll_160_lane_clk или lane_clk_in или 0.

 

3. этот модуль содержит 2 ФАПЧа:

gen_pll_lane : gen_pll2 
    PORT MAP    (
        inclk0        => lane_clk_in,            -- 160
        c0            => pll2_sdi_clk,        -- 300
        c1            => pll2_serial_clkh,    -- 20
        c2            => pll2_core_clk,        -- 100
        c3            => pll2_serial_clkl,    -- 3
        locked        => pll2_status_locked
        );

gen_pll_160_quartz : gen_pll_160
    PORT map
    (
        inclk0        => gen_clk,                -- 80
        c0            => pll_160_lane_clk,    -- 160
        locked        => pll_160_status_locked
    );

исходя из состояний этих ФАПЧей и происходит выбор тактовой, которая коммутируется на сигнал lane_clk_inner.

 

4. Также в этом модуле есть деление этой тактовой lane_clk_inner на 10, этот сигнал называется lane_div_clk_p.

 

В SDC-файле описал следующее:

1. create_clock -period 6.25 -name comp_in_p [ get_ports comp_in_p ]

т.е. описал входную тактовую comp_in_p (160 МГц)

2. create_clock -period 12.50 -name quartz_clk [ get_ports quartz_clk ]

т.е. описал входную тактовую quartz_clk (80 МГц)

3. create_clock -name {altera_reserved_tck} -period 33.333 -waveform { 0.000 16.666 } [get_ports {altera_reserved_tck}]

derive_pll_clocks

derive_clock_uncertainty

set_clock_groups -asynchronous \

-group {altera_reserved_tck} \

-group {comp_in_p} \

-group {quartz_clk}

т.е. указал асинхронные группы без их взаимного анализа.

altera_reserved_tck - из-за использования СигналТапа.

 

Проект компилится без замечаний ТаймКвеста, т.е. типа все норм.

 

И вот здесь начинается...

Вроде проект заработал, можно тестировать...

НО!... немного изменишь проект, добавишь отладочные сигналы или изменишь наполнение СигналТапа (уберешь пару сигналов из захвата)...

и все, проект перестает полноценно работать.

 

При подробном анализе ТаймКвеста увидел не описанную тактовую lane_div_clk_p, т.е.

которая lane_clk_inner/10.

 

В-общем по разному пытался её описать, но ничего не получается, постоянно появляется варнинг:

"Node: gen_logic:gen_logic_unit|lane_div_clk_p was determined to be a clock but was found without an associated clock assignment."

 

 

Думаю, что сначала надо описать тактовую lane_clk_inner, но не знаю как, т.к. она является мультиплексированной,

после этого уже описывать lane_div_clk_p.

 

 

Большая просьба, подскажите нормальную литературу по времнному анализу ТаймКвест для ОЧЕНЬ начинающих,

где можно постичь тонкости описания таких сложных ситуаций.

 

Можно даже попытаться объяснить прямо здесь.

 

Заранее признателен за помощь.

 

 

 

 

 

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


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

Необходимо использовать реконфигурируемую pll для таких дел.

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


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

Добрый день всем.

 

Большая просьба, подскажите нормальную литературу по времнному анализу ТаймКвест для ОЧЕНЬ начинающих,

где можно постичь тонкости описания таких сложных ситуаций.

 

Заранее признателен за помощь.

например

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


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

Спасибо Maverick за ссылку.

Пробежался по статье, пока нет времени плотно поразбираться, но на первый взгляд статья подробная.

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


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

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

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

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

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

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

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

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

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

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