Jump to content

    

Recommended Posts

Ну, как минимум, надо указать времянки "DOUT" относительно выхода клока "SCLK", чтобы синтезатор соблюл все требования к Tco АЦП. Тем более, что DOUT используется для перехода по автомату. А то по факту может оказаться так, что смена уровня на DOUT внутри ПЛИС приходит аккурат к фронту клока автомата, и тыканье осцилла приводит к его небольшой задержке и он оказывается уже в другом такте. И сказать, что SCLK это именно клок, а не просто выход.

Тк SCLK - это, конечно, клок для АЦП. Но частота-то мала. 1 МГц. При этом смена данных от АЦП на шине DOUT происходит по СРЕЗУ SCLK, а я их забираю по фронту SCLK. Так что тут должно быть всё гладко в любом случае.

 

Еще следует убедиться, что SCLK_en, измененный по фронту, не приводит к глитчу на выходном клоке SCLK - "коротокому импульсу", и защититься от этого - есть схемы безглитчевых клокогейтилок, либо переписать весь автомат так, чтобы SCLK формировалось регистром (на частоте, пополамной к частоте автомата). Такой глитч может АЦП ввести в полный ступор. И в варианте пополамной частоты SCLK не надо констрейнить его и DOUT - так как можете выбирать сами, в какой фазе данные "щелкать"

 

 

UPD:

 

Вот быстренько так глянул на код еще раз - так у вас клокогейтилка то глитчная (причем конкретно и с гарантией).

 

SCLK_en появляется с некоей задержкой от фронта 0->1 на clk, а потом идет на операцию И c clk (описанной через SCLK_en?clk:0 ), "вырубая" из него глитч в момент отключения клока.

Есть такое дело) тут я немного "схалявил" :rolleyes:

Но проблем с этим глитчем нет. Осц ее не показывает даже. Бесспорно, тут поправить необходимо. Но описанная проблема вряд ли из-за этого.

 

и таймквесту надо бы про set_clock_gating_check напомнить (я вот правда не помню, поддерживает ли он это)

SDC and TimeQuest API Reference Manual от Altera ничего об этой команде не слышал) порою и в этом направлении. СПАСИБО!

 

Share this post


Link to post
Share on other sites
Но проблем с этим глитчем нет. Осц ее не показывает даже. Бесспорно, тут поправить необходимо. Но описанная проблема вряд ли из-за этого.

 

Осц не не видит его, а ликвидирует его своей емкостью, и именно поэтому не видит. А когда очцилла нету, вот он и вылезает.

Share this post


Link to post
Share on other sites

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

причем, не только с этим модулем проекта. с временным анализом непонятно ровным счетом ничего тогда мне :krapula:

Share this post


Link to post
Share on other sites

Я вот тут совсем недавно весь мозг сломал - автомат залетал в некорректное состояние, при том, что вообще никаких клокогейтилок нет, все по одному клоку, и ничего асинхронного (автомат контроллера DDR2 памяти). Оказалось - питание. ПЛИС Lattice, завели питание VCCAUX (у альтер, правда, такого вроде нет) напрямую на общее 3.3, не фильтруя дополнительно.... Вторая итерация платы позволила забыть об этих проблемах.

Share this post


Link to post
Share on other sites

воооо. вроде ясно. проблема решилась после установки фильтров по входам. как я понял, по входу ловилась метастабильность в случайный момент времени, т.к. входной сигнал никак не синхронизирован с улицы. Куда уходил в этой ситуации автомат - неизвестно. 2+ последовательных триггеров эту проблему решили

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this