Распродажа

Электронные компоненты со склада по низким ценам, подробнее >>>

Содержание ChipNews

2003: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2002: 
1, 5, 6, 7, 8, 9
2001: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2000: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1999: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Новости электроники

Мне нравится

Комментарии

дима пишет в теме Параметры биполярных транзисторов серии КТ827:

люди куплю транзистар кт 827А 0688759652

тамара плохова пишет в теме Журнал Радио 9 номер 1971 год. :

как молоды мы были и как быстро пробежали годы кулотино самое счастливое мое время

Ивашка пишет в теме Параметры отечественных излучающих диодов ИК диапазона:

Светодиод - это диод который излучает свет. А если диод имеет ИК излучение, то это ИК диод, а не "ИК светодиод" и "Светодиод инфракрасный", как указано на сайте.

Владимир пишет в теме 2Т963А-2 (RUS) со склада в Москве. Транзистор биполярный отечественный:

Подскажите 2т963а-2 гарантийный срок

Владимир II пишет... пишет в теме Параметры биполярных транзисторов серии КТ372:

Спасибо!

Ю. Хапочкин

Суета вокруг RESETa. Или ответ на незаданные вопросы

От Редакции

Вскоре после выхода из печати "Chip News" ╧ 1 в редакцию пришло письмо.

Здравствуйте редакция,

прочитал статью ╚Технический минимум пользователя САПР MAX+PLUS II╩ в ╧ 1 за 2001 год, и у меня возникло недоумение.

Фактические ошибки:

  1. Временные диаграммы (рис. 2 и 3) просто неправильные, так как при RESET = "1" машина состояний будет сброшена.
  2. Если установить RESET = "0", то симулятор абсолютно корректно симулирует работу машины состояний. Проверено на двух разных версиях MAX+PLUS II.

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

Думаю, стоило бы в одном из последующих номеров опубликовать "уточнения" к данной статье. Так как наверняка не я один заметил подобное несоответствие.

С уважением, Юрий Хапочкин.

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

Уважаемая редакция.

Уверен, что Вы уже получили подобные письма, тем не менее считаю своим долгом написать Вам, а не звонить тов. Лобанову.

Причина следующая. В журнале CHIP NEWS #1 2001 в статье тов. Лобанова "Технический минимум пользователя САПР MAX+plus II" содержится неверная информация об указанном пакете. Цитирую: "Симулятор и в данном случае подтвердил промашку фирмы. После анализа огрехов фирмы ALTERA был найден способ автоматического решения проблемы. Это фундаментальная ошибка, поскольку она не позволяет использовать формальный синтез МПА".

Мой опыт работы с MAX+plus II - две недели. Однако такой ошибки в MAX-е я не наш╦л (что, конечно, не означает е╦ отсутствие). Однако я сразу наш╦л ошибку тов. Лобанова. Состоит она в том, что активным уровнем сброса является высокой уровень, а не низкий, как указано на диаграммах. Если сигнал сброса задать правильно, то и автомат заработает как надо.

Не исключаю, что тов. Лобанов об этом знает, и его "ошибку" просто "заказали". Если же я не прав, и он в самом деле ошибся, то прежде чем извергать патриотизм, гнать пену и стебаться над чужой продукцией, стоит проверить в первую очередь себя. И несколько раз проверить себя перед тем, как дать информацию в журнал.

С уважением, Киселев И.В.

И вот приш╦л долгожданный ответ автора, который мы тут же переадресовали читателям.

Автор выражает читателям глубокую признательность за внимательное прочтение своей статьи ("Chip News", ╧ 1, 2001 г., с. 56√58). Отвечая на письма, выскажу следующие соображения.

  1. Заблуждения оппонентов связаны с тем, что вход сброса в триггерах типа DFF (см. библ. примитивов и HLP) является активно низким.
  2. Защищая честь мундира западной науки, читатель Киселев И.В. невольно способствовал обнаружению ещ╦ одной ошибки в MAX+PLUS II вс╦ в том же самом примере: реакция конечного автомата на сигнал сброса некорректна.
  3. Если читатели проявят интерес к формальному синтезу цифровых устройств, то автор готов в объ╦ме двух статей провести ликбез для инженеров.

С уважением, В.И. Лобанов

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

Данная заметка является попыткой разобраться, насколько правомерны заявления в статье В. Лобанова "Технический минимум пользователя САПР MAX+PLUS II" в журнале "Chip News" ╧ 1 за 2001 год (в дальнейшем "статья").

В статье утверждается, что САПР "MAX+PLUS II" неправильно моделирует работу конечных автоматов, и привед╦н пример "неправильного" моделирования. Поскольку столь серь╦зные ошибки в САПР могут привести к большим потерям времени инженера-разработчика, стоит внимательно проанализировать этот пример и попытаться понять, кто ошибается - САПР или автор статьи. Как показал мой опыт проектирования самых разнообразных устройств, когда программа работает неправильно, не надо торопиться искать ошибки в компиляторе. Сначала стоит внимательно проверить текст программы, прочитать ещ╦ раз описание компилятора, обратиться к справочной системе, не один раз подумать и только в самую последнюю очередь грешить на компилятор.

На рис. 1 привед╦н исходный текст программы на языке AHDL из комплекта поставки САПР, рассматриваемый в статье.

Рисунок 1. Исходный текст программы на языке AHDL из комплекта поставки САПР.

SUBDESIGN moore2
  (
clk : INPUT;
reset : INPUT;
y : INPUT;
z : OUTPUT;
)
VARIABLE
ss: MACHINE WITH STATES (s0, s1, s2, s3);
zd: NODE;
BEGIN
ss.clk = clk;
ss.reset = reset;
z = DFF(zd, clk, VCC, VCC);
TABLE
% current current next next %
% state input state output %
ss, y => ss, zd;
s0, 0 => s0, 0;
s0, 1 => s2, 1;
s1, 0 => s0, 0;
s1, 1 => s2, 1;
s2, 0 => s2, 1;
s2, 1 => s3, 0;
s3, 0 => s3, 0;
s3, 1 => s1, 1;
END TABLE;
END;

Данная программа состоит из конечного автомата "ss", вспомогательной переменной "zd" и D-триггера.

Согласно правилам AHDL, сигнал "reset" не инвертируется.

Рассмотрим, каким должно быть поведение данной программы при входном сигнале "reset" = "1". В соответствии со строками

reset : INPUT;
ss.reset = reset;

конечный автомат "ss" при активном "reset" должен находиться в состоянии "s0".

Согласно таблице состояний, если автомат "ss" находится в состоянии "s0", значение промежуточной переменной "zd" будет асинхронно совпадать с состоянием входной переменной "y", независимо от состояния сигнала "clk", то есть несмотря на то, что состояние конечного автомата неизменно, промежуточная переменная "zd" будет изменяться. После прохождения сигнала через D-триггер, в соответствии со строкой

z = DFF(zd, clk, VCC, VCC);

состояние выхода "z" будет равно значению "zd", синхронизированному с фронтом сигнала CLK. При запуске симулятора мы получим временные диаграммы.

Именно такими они и должны быть, прич╦м в полном соответствии из статьи. Несмотря на то, что на схему подан активный сигнал "reset" и конечный автомат постоянно находится в состоянии "s0", выход схемы будет зависеть от входного сигнала "y", что, возможно, и послужило поводом для "обнаружения ошибки" в статье.

Для того, чтобы проверить работу конечного автомата, естественно, надо установить входной сигнал "reset" = "0", то есть в неактивное состояние.

Запустив симулятор, получим результаты моделирования работы конечного автомата. Опять же, в полном соответствии с результатами ручного моделирования и статьи, с точностью до значения сигнала "reset".

По-видимому, при ручном моделировании поведения програмы в статье использовался правильный алгоритм работы, но с инвертированным сигналом "reset" с активным "0" (что не соответствует исходному тексту).

Стоит заметить, что в зависимости от выбранного семейства ПЛИС и опции "One-Shot State Machine Encoding", конечный автомат может быть реализован как на двух триггерах с состояниями "00", "01", "10", "11", так и на четыр╦х с состояниями "1000", "0100", "0010", "0001". Для полноты картины на рис. 4 приведена схемная интерпретация этой программы. Здесть SSi обозначает вход таблицы (current state), SSo - выход (next state).

Таким образом, можно сделать вывод, что симулятор корректно моделирует работу конечного автомата в данном примере, на рисунках статьи приведены правильные результаты, однако их интерпретация была неверна.

В результате, как и ожидалось, проблема не в САПР, а в недостаточно внимательном изучении текста примера или документации на САПР.

P.S. Обещание В.И. Лобанова о "ликбезе" по формальному синтезу цифровых автоматов оста╦тся в силе.







Ваш комментарий к статье
Суета вокруг RESETa. Или ответ на незаданные вопросы. :
Ваше имя:
Отзыв: Разрешено использование тэгов:
<b>жирный текст</b>
<i>курсив</i>
<a href="http://site.ru"> ссылка</a>