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

Здравствуйте вам.

 

Читая книжку по проектированию цифровых устройств, решил (из любопытства) "наваять" на VHDL'е SR-защелку.

Вот что я написал:

ENTITY sr_latch IS
PORT (
	s_inp	: IN STD_LOGIC;
	r_inp	: IN STD_LOGIC;
	q_outp	: BUFFER STD_LOGIC;
	qn_outp	: BUFFER STD_LOGIC
	);
END sr_latch;

ARCHITECTURE sr_latch_arch OF sr_latch IS

BEGIN
q_outp	<=	r_inp NOR qn_outp;
qn_outp	<=	s_inp NOR q_outp;
END sr_latch_arch;

А вот это я увидел в Technology Map Viewer'е (Quartus 8.1) после синтеза:

post-35384-1295008657_thumb.jpg

Но, позвольте, таблица истинности этого творения не соответствует SR-защелке! При этом, в симуляторе (Simulator Tool) проект ведет себя корректно...

Подскажите, где я неправ?? :05:

 

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


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

Но, позвольте, таблица истинности этого творения не соответствует SR-защелке!

Ну почему же "не соответствует"? Обратная связь есть.

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

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


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

Связь-то есть, НО...

Если рассматривать нижний блок, то:

S R Q

0 0 last Q

0 1 1

1 0 0

1 1 1

т.е. всё как-бы "перевернуто" с ног на голову - Set сбрасывает сигнал, а Reset выставляет :wacko:

 

при этом, языковое описание соответствует определению SR-защелки:

post-35384-1295011615.jpg

Изменено пользователем jb83

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


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

т.е. всё как-бы "перевернуто" с ног на голову - Set сбрасывает сигнал, а Reset выставляет

Посмотрите в остальных блоках - входных, выходных. Может быть, сигналы где-то инвертируются?

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


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

Посмотрите в остальных блоках - входных, выходных. Может быть, сигналы где-то инвертируются?

 

 

Да, я тоже об этом подуал поначалу, но, похоже, не додумал до конца... В блоках s_inp и r_inp инверсии не наблюдается (да и чем она поможет?), а если инвертировать в блоке q_outp, тогда всё сходится (но он, правда, не открывается, чтобы узнать наверняка :laughing: ).

Не подскажете как это выяснить?

Изменено пользователем jb83

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


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

В VHDL я не силен, попробовал сделать то же в Verilog, в Quartus 9.1

module exsRSlatch
(input wire     sin, rin,
  output logic   qp, qn);

assign qp = !(rin ^ qn);
assign qn = !(sin ^ qp);
endmodule

Вот какая схема получилась. Как видите, есть отличия. Не знаю, в чем дело.

Еще посмотрите в RTL Viewer, узнаете, что вы задумали, когда писали код.

 

 

post-10362-1295128619_thumb.jpg

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


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

В RTL-вьювере картинка была, как раз, вполне узнаваема. Что-то типа этого (quartus сейчас не под рукой):

post-35384-1295183991_thumb.jpg

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


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

У вас на самой первой картинке точки имеются, это, наверное, что-то написано мелким шрифтом. Попробуйте его изменить в настройках, и прочитать, что написано.

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


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

Попробую посмотреть, но, по-моему, эти точки - это просто места соединений (чего-то). У вас они, кстати, тоже присутствуют на схеме.

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


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

Попробую посмотреть, но, по-моему, эти точки - это просто места соединений (чего-то). У вас они, кстати, тоже присутствуют на схеме.

Да, правильно. Но у меня еще есть и названия цепей. Попробуйте их включить в настройках.

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


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

Посмотрел еще раз на вашу схему и сообразил - у меня все порты (входные и выходные) в проекте заассигнены как Virtual pin, а у вас - нет. Это видно по наличию в вашей схеме iobuf'ов. Когда убрал у себя виртуальность, получил такую картинку:

post-35384-1295241173_thumb.jpg

Теперь всё сходится :biggrin:

Интересно - различие схематических реализаций (у меня и у вас) связано с выбором устройства?? Я проект делал на Cyc III, а вы?

Кстати, в первом посте я немного наврал про версию Квартуса (написал по старой памяти) - на самом деле у меня тоже v9.1

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


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

Теперь всё сходится :biggrin:

Интересно - различие схематических реализаций (у меня и у вас) связано с выбором устройства?? Я проект делал на Cyc III, а вы?

Кстати, в первом посте я немного наврал про версию Квартуса (написал по старой памяти) - на самом деле у меня тоже v9.1

Ну, вот и решилось :)

Я тоже на 9.1, про SP не помню, что там дома стоит. Думаю, это несущественно. Для Cyclone III, и там был выбран конкретный тип. Похоже, различие именно в восприятии языковых конструкций, в компиляторах языков.

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


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

Похоже, различие именно в восприятии языковых конструкций, в компиляторах языков.

 

Я, в общем-то, тоже сперва подумал на компиляторы (синтезаторы). Но потом пришла в голову такая мысль: если устройства идентичные, то не должен ли компилятор (любой) в итоге воспользоваться одинаковым набором вентилей (пусть и по-разному их скомпоновав, если это возможно). Ведь строение логической ячейки фиксировано... А у нас с вами схемы получились совсем непохожими по содержанию.

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


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

А у нас с вами схемы получились совсем непохожими по содержанию.

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

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


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

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

 

Да, действительно - не углядел:

у вас - NOT (r XOR q)

у меня - NOT (r OR q)

 

Но для SR-latch'а нужно именно OR. ;)

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


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

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

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

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

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

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

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

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

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

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