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

Простенький проект CPLD

Сначала в графике делал (а-ля 74хх), потом на AHDL перешёл...

 

Вы будете смеяться, но у меня почти все схемы с микроконтроллерами, для которых я и программы (или их часть) пишу на Си и Асме, но почему-то в данном случае мне проще нарисовать схему чем вникать в AHDL/VHDL/Verilog.

В этом проекте тоже стоят два ARM7 и один DSP, так что программирования хватает (на DSP к счастью программу другие пишут, на ARMы - я).

 

Нет, это ерунда какая-то. Переходите к нормальному синхронному дизайну, сброс будет шириной в такт и вопросов о длительности сигнала сброса возникать вообще не будет.

 

Уже перешел :) Сброс счетчиков вообще не понадобился - они теперь как простые делители работают, крутятся по кругу.

Раньше меня волновала не сама по себе длительность сброса, а чтобы она небыла больше чем полпериода тех импульсов, которые счетчик считает.

Если по простому - счетчик должен был выдать сигнал после определенного числа импульсов, после фронта сигнала 100кгц. Импульсы и сигнал синхронные, но нельзя было потерять первый счетный импульс что после фронта.

В поиск. Обсуждалось многократно.

 

Если бы еще этот поиск нормально работал...

 

Если разработчик сознательно уходит от синхронного дизайна к асинхронному, то он точно знает что делает и чем ему это грозит.

 

В данном случае - знаю. Более того - схема на 74хх была спаяна на макетке и прекрасно работала. Просто решено было добавить некоторые дополнительные возможности да заодно упаковать все в один чип. Потому к CPLD и перешли.

 

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

 

Я переделал вообще всю концепцию и сигналы все идут из CPLD, только один общий клок идет снаружи. Пока все хорошо получается, во всяком случае на экране...

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


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

Более того - схема на 74хх была спаяна на макетке и прекрасно работала. Просто решено было добавить некоторые дополнительные возможности да заодно упаковать все в один чип. Потому к CPLD и перешли.

Во-во-во :) Как раз это и надо искоренять из своего сознания. Медленно и мучительно, путём проб и ошибок.

Рассыпуха будет работать такой, какой её выпустил завод и какой Вы её спаяли на макетке. А в плисине работать будет не то, что Вы видите в редакторе, а то - как Вас поймёт синтезатор и как разложит фиттер.

А конкретно на "схема на 74хх была спаяна на макетке и прекрасно работала" замечу, что Вам, наверняка, знакома ситуация (с тем же APM'ом), когда один и тот же исходник либо работает, либо нет в зависимости от того - какую оптимизацию Вы выбрали. Здесь абсолютно тоже самое: макетка это без оптимизации вообще, плиска - с оптимизацией.

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


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

замечу, что Вам, наверняка, знакома ситуация (с тем же APM'ом), когда один и тот же исходник либо работает, либо нет в зависимости от того - какую оптимизацию Вы выбрали.

 

Еще как знакома! Правда, с АРМами не сильно - там Кейл шибко вумный, но вот с 430-ми - ИАР с оптимизацией иногда ТАКОГО намутит, вплоть дополной неработоспособности.

 

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

 

Но тому что рисует симулятор хоть можно верить ?:)

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


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

Но тому что рисует симулятор хоть можно верить ?:)

Полностью нельзя. Примерно, как полностью нельзя верить рекламе... :)

Но начинающим работать с ПЛИС, верить симулятору и применять его надо обязательно.

 

 

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


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

Полностью нельзя. Примерно, как полностью нельзя верить рекламе... :)

Но начинающим работать с ПЛИС, верить симулятору и применять его надо обязательно.

это почему полностью верить нельзя симулятору?

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


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

это почему полностью верить нельзя симулятору?

Например, в случае с объявлением регистра без инициирующего значения. Симулятор покажет одно, а в жизни может быть другое.

С времянками - аналогично.

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


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

это почему полностью верить нельзя симулятору?

Полностью, это на 100%, так я понял? Т.е. после симуляции Вы уверены во всем так, что готовы на любые жертвы?

 

Я симулировал FSM средней сложности в MAXII+plus на тактовых частотах 80 и 100 МГц, симулятор показывает, что FSM не работает, так как надо.

В QuartusII 7.2 картина аналогичная, хотя и результаты другие, т.е. уже лучше, но полного доверия нет.

А в аппаратуре же, путем подборок и перестановок местами микроопераций в FSM, как бы шаманством, все же требуемый результат получен на частотах 80 и 100 МГц .

Могу ли я после этого готовым к любым жертвам, т.е. к 100% уверенности? Нет, не могу, но я симулятору все равно где-то верю, и советую это начинающим, они же не работают вблизи пределов….

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


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

Например, в случае с объявлением регистра без инициирующего значения. Симулятор покажет одно

 

Симулятор покажет неопределенное состояние. И уже по барабану, что будет реально в жизни.

 

 

А в аппаратуре же, путем подборок и перестановок местами микроопераций в FSM, как бы шаманством, все же требуемый результат получен на частотах 80 и 100 МГц .

 

На столе при комнатной температуре в одном экземпляре.

 

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


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

На столе при комнатной температуре в одном экземпляре.

экземпляров с FPGA много они работают на объектах ...

диапазон температур коммерческий...

 

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


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

Симулятор покажет неопределенное состояние. И уже по барабану, что будет реально в жизни.

Обычно да, но я написал про реальный случай, с которым столкнулся. Регистр был внутренним и представлял собой счётчик байт в контроллере SPI. Сброс регистра осуществлялся автоматически либо по подъёму CS, либо по выходу длины пакета за разумный предел. Видимо, логика этих сбросов синтезировалась так, что состояние было не неопределённым. И только явное объявление начального значения расставило всё по места.

А в большинстве случаев - да, ХХХ там.

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


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

по подъёму CS, либо по выходу длины пакета за разумный предел.

 

Получается, Вы просто не дождались на временном интервале формирования cs.

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


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

И только явное объявление начального значения расставило всё по места.

Если я использую разные счетчики/делители - нужно ли объединить им все входы спроса, и вывести на пин глобального сброса?

Если да - что с этим пином потом делать? Достаточно обычной RC-цепочки сброса, или чего посильнее надо (типа супервизора, дергуть ногой с МК и т.п) ?

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


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

Друзья, нужно помощь!

 

Все тах хорошо шло и прекрасно получалось (в симуляторе MAX+plus II) пока Device стояло на Auto.

Брало они при этом MAX7000, проект сначала влазил в 7032, потом я расширил функции в в итоге влез в 7064.

 

Но (!) как только я поставил MAX3000A (а именно она и предполагается в конечном итоге, ибо у меня 3.3в питание почти везде), я получил кучу ворнингов симулятора типа "Found Clock high time violation at aaa us at node bbb", и глитчи на его графиках (см график i2wc - это всего -навсего выход переноса счетччика!).

 

Я сократил проект до минимального, при котором это проявляется, и вот он в пркрепленном файле.

Посмотрите пожалуйста - в чем проблемы?

 

Есть еще несколько вопросов, но о них потом.

 

Заранее большое спасибо.

ttt.rar

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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