реклама на сайте
подробности

 
 
> Автомат состояний из StateCad отлично проверяется в StateBench но практически не работает в реальности.
syoma
сообщение Jul 9 2007, 14:03
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет. Подскажите плиз, что может быть за глюк:
есть простенькая диаграмма, нарисованная в StateCad на картинке. Смысл в том, чтобы проверять длину входящего импульса ERR_IN и если она больше 18 циклов, то устанавливать флаг ERROR_OUT. Для подсчета используется счетчик COUNT_ERR. Скорость всего этого 3 МГц на Спартане 3 с 75Мгц кристалом. Сигнал ERR_IN - асинхронный
STATE_CAD сгенерировал очень понятный VHDL код с CASE и IFами, который я на основании знаний основных язаков программирования, но не VHDL, оцениванию как правильный.
Прикол в том, что при проверке CHIPSCOPEом в реальности часто происходят такие сбои, хотя в большинстве случаев работает правильно:
1. При подаче импульса счетчик считает до 2-4, а потом устанавливается флаг ERROR_OUT
2. При подаче импульса ERR_IN счетчик считает до 1-2 а потом устанавливается в 0. Когда через несколько циклов ERR_IN исчезает , то в этот момент устанавливется ERROR_OUT.
3. Если ERR_IN устанавливается в 0 во время счета то иногда в COUNT_ERR все равно хранится предыдущее состояние, а не 0.
Если чесно, то это абсолютно ново для меня - но выглядет, как будто синтезатор что - то левое генерирует.
Подскажите, может, надо регистр ставить на ERR_IN, или я в FPGA что-то не понимаю?
Спасибо.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- syoma   Автомат состояний из StateCad отлично проверяется в StateBench но практически не работает в реальности.   Jul 9 2007, 14:03
- - SunnyAngel   Вы бы лучше код привели,чем диаграмму состояний. Т...   Jul 9 2007, 19:32
|- - syoma   Цитатав данном случае необходимо пропустить указан...   Jul 10 2007, 10:29
- - BSV   Самое простое, что приходит в голову - все входы а...   Jul 9 2007, 22:06
- - sazh   А зачем тут с автоматом. Это просто счетчик в инте...   Jul 10 2007, 06:08
- - BSV   Фокус в том, что приведенный Вами кусок описывает ...   Jul 10 2007, 10:49
|- - syoma   После предыдущего кода есть кусок: next_COUNT_ERR...   Jul 10 2007, 11:42
- - sazh   Кстати, вариант со счетчиком, предложенный выше, т...   Jul 10 2007, 11:40
|- - BSV   Цитата(sazh @ Jul 10 2007, 15:40) Впрочем...   Jul 10 2007, 12:25
|- - syoma   Цитата(BSV @ Jul 10 2007, 14:25) Кодproce...   Jul 10 2007, 14:57
- - sazh   process (CLK) begin if (CLK'event and CLK = ...   Jul 10 2007, 15:54
|- - BSV   Цитата(sazh @ Jul 10 2007, 19:54) Вобще т...   Jul 10 2007, 23:16
- - SunnyAngel   to syoma -> ИМХО, sazh прав. Зачем Вам этот гро...   Jul 10 2007, 20:09
- - sazh   Считаете, что это излишняя перестраховка? Net Skew...   Jul 11 2007, 06:03
|- - des00   Позвольте вмешаться Цитата(sazh @ Jul 11 2...   Jul 12 2007, 02:52
- - BSV   Мое мнение такое - пусть с логикой работы схемы ав...   Jul 11 2007, 19:43
|- - syoma   Спасибо всем. Все заработало, после того как пропу...   Jul 12 2007, 09:18
|- - BSV   Цитата(syoma @ Jul 12 2007, 13:18) Вообще...   Jul 12 2007, 09:34
- - sazh   Спасибо всем. Все заработало, после того как пропу...   Jul 12 2007, 12:26
- - syoma   Цитата(sazh @ Jul 12 2007, 14:26) Уж очен...   Jul 20 2007, 08:20


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016