Jump to content

    

Влияние смежных цепей на работу схемы.

16 hours ago, Nick_K said:

 

У меня сейчас лежит проект на Спартан 6 с клоком 200MHz. В основном всё работает без проблем, если не загружать все ненужные блоки одновременно.

Вот когда будет работать без если, тогда имеет смысл обсуждать, а пока это так, легкое позерство)

Quote

А может я просто ленивый и мне лень констрейнить все сопли SPI 

Временные ограничения на SPI, при синхронной реализации, это две строчки set_false_path. А дальше, в синхронной реализации, теорема котельникова, учет временных параметров ПЛИС.

15 hours ago, Cianid said:

Собственно решил проблему, как подсказал des00Cделал срабатывание по по фронту SS.

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

14 hours ago, alexadmin said:

И обратите внимание, если что - можно сказать, что des00 подсказал ;)

Часовню тоже я разрушил??? (с) :)

15 hours ago, iosifk said:

А это заявка записаться в расстрельный список. Чтобы начальник знал кого и за что...

сразу бы вам, с плеча рубить, не разобравшись. может у него действительно 90МГц SPI

Share this post


Link to post
Share on other sites
16 минут назад, des00 сказал:

сразу бы вам, с плеча рубить, не разобравшись. может у него действительно 90МГц SPI

"90МГц SPI" Это разминка для чайника? Примерно вот так должно выглядеть: 

- А "буби" это ромбики?

- Не знаю, не знаю, играем на деньги...

:)

Share this post


Link to post
Share on other sites
15 minutes ago, iosifk said:

"90МГц SPI" Это разминка для чайника?

Сие нам не ведомо. Знаю людей, которые студентам, могут дать первое задание на реализацию сопроцессора криптографии или кодирования) Еще и результат требовать быстро и качественно)

Видно же, что человек без опыта, но вроде пытается разобраться. Все ошибаются, но если всех выпилить на старте, то кто останется? :)

Share this post


Link to post
Share on other sites
1 минуту назад, des00 сказал:

Видно же, что человек без опыта, но вроде пытается разобраться. Все ошибаются, но если всех выпилить на старте, то кто останется? :)

Я свою помощь ТС предложил. Но ТС не торопится. 

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

Share this post


Link to post
Share on other sites
2 часа назад, des00 сказал:

Сие нам не ведомо. Знаю людей, которые студентам, могут дать первое задание на реализацию сопроцессора криптографии или кодирования) Еще и результат требовать быстро и качественно)

Видно же, что человек без опыта, но вроде пытается разобраться. Все ошибаются, но если всех выпилить на старте, то кто останется? :)

У меня 2МГц SPI. Я действительно не могу понять, чем чревато добавлять в список чувствительности еще один сигнал.

2 часа назад, iosifk сказал:

Я свою помощь ТС предложил. Но ТС не торопится. 

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

Не имел пока возможности. Завтра попытаюсь с вами связаться.

Share this post


Link to post
Share on other sites
25 minutes ago, Cianid said:

У меня 2МГц SPI. Я действительно не могу понять, чем чревато добавлять в список чувствительности еще один сигнал.

Не имел пока возможности. Завтра попытаюсь с вами связаться.

Вы понимаете что написанный RTL затем синтезируется в электрическую схему, состоящую из таких логических элементов как "И", "ИЛИ", мультиплексоры, триггеры и т.д.?  
Так вот, стандартный D триггер работает по фронту клока, обозначенный в списке чувствительности как "posedge sck", а также реагирующий на фронт - "negedge rstb" (без учета входных данных, сигнал разрешения клока и т.д.).
А теперь вопрос - во что по вашему синтезнётся "posedge ss" ? Тоесть к D триггеру нужно "приделать" еще один вход, который будет реагировать на фронт третьего сигнала. Таких элементов в ПЛИС просто нет и синтезатор должен выдать ошибку в 99.9% процентов случаев.
0.1% это похоже ваш случай, если вы не перепутали симулятор и синтезатор.

Share this post


Link to post
Share on other sites
28 минут назад, Nieve сказал:

Вы понимаете что написанный RTL затем синтезируется в электрическую схему, состоящую из таких логических элементов как "И", "ИЛИ", мультиплексоры, триггеры и т.д.?  
Так вот, стандартный D триггер работает по фронту клока, обозначенный в списке чувствительности как "posedge sck", а также реагирующий на фронт - "negedge rstb" (без учета входных данных, сигнал разрешения клока и т.д.).
А теперь вопрос - во что по вашему синтезнётся "posedge ss" ? Тоесть к D триггеру нужно "приделать" еще один вход, который будет реагировать на фронт третьего сигнала. Таких элементов в ПЛИС просто нет и синтезатор должен выдать ошибку в 99.9% процентов случаев.
0.1% это похоже ваш случай, если вы не перепутали симулятор и синтезатор.

Синтезатор просто добавил мультиплексор. Тут есть что то криминальное? 


Аккуратно, большой вес картинки.

Спойлер

 

Share this post


Link to post
Share on other sites
58 minutes ago, Cianid said:

Синтезатор просто добавил мультиплексор. Тут есть что то криминальное? 

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

Share this post


Link to post
Share on other sites
8 hours ago, Cianid said:

Синтезатор просто добавил мультиплексор. Тут есть что то криминальное?

Вам повезло, что поведение сигналов rstb и ss у вас одинаковое и ss по сути асинхронный сброс. Поэтому он их заорил. Если бы поведение было другое, например сигнал ss работал как сигнал асинхронной установки, то он не смог бы это сделать. Т.к. таких тригеров, в том семействе ПЛИС, что вы используете, нет)

Share this post


Link to post
Share on other sites
17 hours ago, des00 said:

Вот когда будет работать без если, тогда имеет смысл обсуждать, а пока это так, легкое позерство)

Если - не столько про недоработанность, сколько про излишества компонентов, которые никогда не используются (но возможно когда-то будет какой-то девайс, который будет поддерживать и при этом мы не перейдём к тому времени на Артиксы или даже Кинтексы). Так что я считаю, что всё честно.

З.Ы. По этому вопросу думал поднять partial reconfiguration, но промучившись в PlanAhead 2 месяца закинул это гиблое дело.

17 hours ago, des00 said:

Временные ограничения на SPI, при синхронной реализации, это две строчки set_false_path

А как же указать правильную частоту входящего клока. А если он ещё и переменным будет, а если ещё и разное CPOL/CPHA. Там констрейнов вагон. Либо я недопонял о чём речь.

12 hours ago, Cianid said:

Синтезатор просто добавил мультиплексор. Тут есть что то криминальное? 

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

Но это лично моё ИМХО и перфекционизм. Так что впринципе можно оставить и так ;)

Share this post


Link to post
Share on other sites
17 часов назад, des00 сказал:

Хотя, вполне возможно, в вашей плис есть регистры с асинхроным сбросом и(или) установкой  в произвольные значения, тогда решение действительно возможно..

На Альтере это эмулируется. Вроде бы хватает 4-х LUT4 и одного триггера.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this