Jump to content
    

Работе по фронтам не клокового входа

Всем привет!

 

Волею судеб так получилось что spi клок пришелся на не клоковый вход.

 

Чем грозит использование его в конструкциях вида

 

always @(posedge clk_pin)
begin

end

 

?

Share this post


Link to post
Share on other sites

Чем грозит использование его в конструкциях вида

Геморроем.

Хотя, многое зависит от частоты этого клока.

Как вариант, можно взять какой-нить имеющийся в наличии клок с частотой в несколько раз больше, ловить им сабжевый клок как обычный сигнал и формировать en для логики обработки данных.

Share this post


Link to post
Share on other sites

Чем грозит использование его в конструкциях

 

Ничем. SPI обычно слишком медленный, чтобы создать какие-то проблемы..

Share this post


Link to post
Share on other sites

Всем привет!

 

Волею судеб так получилось что spi клок пришелся на не клоковый вход.

 

Чем грозит использование его в конструкциях вида

 

always @(posedge clk_pin)
begin

end

 

?

 

ПМСМ

 

Может не развестись про очень плотном заполнении (теоретически - но маловероятно)

Больше рискуете, если CPLD - там ресурсы по интерконнекту ограничены.

Share this post


Link to post
Share on other sites

Волею судеб так получилось что spi клок пришелся на не клоковый вход.

Чем грозит использование его в конструкциях вида

always @(posedge clk_pin)

И почему никто не вспомнил о несинхронных тактовых доменах и метастабильности? o_khavin дал правильный совет: нужно все входные сигналы пропустить через синхронизаторы, чтобы работать в одном тактовом домене. При примерно равных частотах применить другую технику, но домены синхронизировать придется.

Share this post


Link to post
Share on other sites

И почему никто не вспомнил о несинхронных тактовых доменах и метастабильности?

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

Share this post


Link to post
Share on other sites

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

Вы всерьез думаете, что по задумке ТС весь дизайн ФПГА тактируется от SPI? :biggrin:

Share this post


Link to post
Share on other sites

И почему никто не вспомнил о несинхронных тактовых доменах и метастабильности?

 

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

Всё это никак не зависит от того, через какой пин вводить клок.

 

На всякий случай для танкистов повторяю предельно недвусмысленно:: от того, что клок SPI заходит не с глобального пина, вся остальная структура не меняется.

Share this post


Link to post
Share on other sites

Вот... народ отошел от праздников:) то за 3 дня ни одного ответа, то только отвернулся и сразу много...:)

 

Вся схема естествен работает от нормального клока.

 

имеется 2 SPI которые так завели, потому что человек делавший схему планировал их синхронизовать на основной клок.

 

SPI в максимуме может иметь 50 МГц, а основной клок 100 МГц. И естественно как всегда бывает, стали SPI слейвами. Потому что со стороны проца SPI в слейве в 12 раз медленнее, потому с того конца SPI мастер.

 

SPI слайв на 50 МГц, для основного клока 100 МГц синхронным сделать не реально, на спартане 6 не хватило сил даже на 200 МГц запустить прием - предачу, чтобы ловить фронты.

 

Вот и дальше странности и геморрой.

 

Я реализовал 2 асинхронных SPI которые принимают - передают по своим клокам, а результат уже через флаги синхронизируется с основным клоком.

На одном SPI только прием данных

На втором SPI прием данных, и в зависимости от принятых передача

(прием и передача никогда не идет одновременно)

В таком режиме все прекрасно работает, уже месяцы времени наработок, в сообщениях контрольная сумма, ошибок не возникает, все четко.

 

теперь новое устройство и первый SPI решил переписать на прием-передачу, чтобы он одновременно передавал и принимал. И вот тут все сломалось. По какой - то причине то ли передача то ли прием сдвигается на 1 бит, причем в моделсиме все четко, а в железе кирдык. Первый проект разводился в нескольких модификациях и SPI всегда работали без сбоя, а тут на пустом кристалле (пока добавил 4 модуля) ничего не работает...

 

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

 

Теперь вот думаю, то ли это этот конкретный результат платы мне достался с какой -то проблемой, то ли действительно есть скрытые проблемы...

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

А я поддержу "Dr.Alex" . Действительно SPI слишком медленный протокол.

При использовании постороннего скоростного клока потребуется, как выразился Tiro, "пропустить через синхронизаторы"по сути это просто входные тригеры на сигналах SPI.

Случай для CPLD ещё проще, там даже временных проблем возникнуть не может.

Share this post


Link to post
Share on other sites

А я поддержу "Dr.Alex" . Действительно SPI слишком медленный протокол.

Какое вообще отношение частота имеет к метастабильности?

 

Теперь вот думаю, то ли это этот конкретный результат платы мне достался с какой -то проблемой, то ли действительно есть скрытые проблемы...

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

 

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

Обычно рутер вытаскивает клок на глобальное дерево так быстро, как сможет. Проблема в том, что на отрезке от пина до глобального дерева, клок бежит по линиям, для него не предназначенным. В результате его характеристики (длительность фронтов, к примеру) выходят за рамки, для которых считается тайминг. После этого анализ тайминга может стать весьма далёким от действительности.

Edited by o_khavin

Share this post


Link to post
Share on other sites

если написать констраины на сигналы, время выставления данных относительно этого входа, то в случае их выполнения все будет хорошо? То есть разницы не будет между сигналом с клокового и не клового входов?

 

Правильно ли что сигналы не различимы кроме сложности соблюдения констраинов?

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.

×
×
  • Create New...