[an error occurred while processing this directive] [an error occurred while processing this directive]
Интересная проблема с LS
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Vasily 01 ноября 2001 г. 15:28

Проблема получается при синтезе VHDL файла содержащего в себе описание FSM. Синтез делается для FLEX10KE. Когда я выбираю Encoding Style для состояний "auto", он делает следующую вещь:

Encodings for TDeviceState values
value TDeviceState[4-0]
==================================
dsWAIT_PROBE ----1
dsWAIT_STROBE_RISE ---1-
dsWAIT_STROBE_FALL --1--
dsSTART_TRANSFER -1---
dsEND_TRANSFER 1----

И при этом устройство глючит/не работает.

Но если выбрать Encoding Style "binary" то получается вот что:
dsWAIT_PROBE 000
dsWAIT_STROBE_RISE -01
dsWAIT_STROBE_FALL -10
dsSTART_TRANSFER -11
dsEND_TRANSFER 100

И устройство работает замечательно.

Исходники одинаковые. Всё одинаковые. Разница только в способе кодировки состояний автоматов.

Причём в симуляторе MAX+plusII оба варианта ведут себя совершенно одинаково (работают как надо). И это меня очень сильно как раз и смущает. Я всегда считал что MAX-овскому симулятору можно доверять, а он тут так лажается :-(

Единственное что мне приходит в голову, так это то что FLEX-овские LUT-ы ведут себя непредсказуемо, когда ему на вход подаются сигналы вроде "----" :-)

Никто с таким не сталкивался/не знает в чём дело?
Или хотя бы какие-нибудь идеи по этому поводу.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru