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

 
 
> глюк в автомате
_Anatoliy
сообщение May 5 2016, 14:33
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Прямо первый раз у меня такое...
Код
    
    case state is
                 .........    
                 when 3 =>
            if (iData = x"ff") then
                cmp_adr2 <= cmp_adr2+1;
            else
                cmp_adr2 <= cmp_adr2+16;
            end if;
            state <= state+1;
        when 4 =>
            if (iData = x"ff") then
                cmp_adr2 <= cmp_adr2+1;
            else
                cmp_adr2 <= cmp_adr2+16;
            end if;
            state <= state+1;
        when 5 =>
                ...........


Есть компаратор MAC-адреса протокола ARP, ведёт себя неадекватно(см.картинку).Счётчик должен увеличивать значение на единичку,но почему-то первый раз прибавляется 16. Естественно есть констрейны, слэк сетапа +1,2нс, слэк холда +0,8нс... Есть ли какие мысли,коллеги?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
novartis
сообщение May 5 2016, 17:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



А "when others =>" для "case state " у вас имеется? Даже если перебрали все значения, его нужно добавить.
И state <=state + 1; я бы заменил на константные значения, как то ловил на этом перескоки.
Go to the top of the page
 
+Quote Post



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

 


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


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