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

 
 
> Моделирование RS-триггера, Создать модель и дать ответ
locas
сообщение Nov 23 2005, 08:03
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 29-07-05
Пользователь №: 7 194



Думаю, что в заданном далее вопросе есть и математика и физика… smile.gif

Схема RS-триггера хорошо известна.
В учебниках приводится таблица истинности (ТИ), описывающая работу триггера. И уже здесь сразу возникает вопрос: RS-триггер – это последовательностная схема, которая описывается моделью конечного автомата(КА), а ТИ описывают только комбинационные схемы – автомат без памяти. Так вот об этом противоречии в учебниках обычно ни слова.

О запрещенной комбинации на входах. С одной стороны, да, она переводит триггер в режим, когда на его выходах будут одинаковые сигнала. С другой стороны, кто запрещает ее? В реальной схеме она всегда может возникнуть, например, в результате гонок сигналов, неправильной работы и т.д. Но почти большинство воспринимают «запрещение» как невозможность такой комбинации. Мол, раз так написано, то «этого не может быть, потому что этого не может быть никогда». Но это в корне не так: и может и бывает.

Все смотрят на таблицу истинности и … верят, что на выходах триггера всегда будут только устойчивые состояния. И мало кто знает, что это не так. Даже если на вход не подавать запрещенную комбинацию.
Прекрасно известно, что при переключении триггера из одного устойчивого состояния в другое на его выходах будут кратковременно две единицы, если это триггер на элементах И-НЕ, и два нуля, если на элементах ИЛИ-НЕ. И, кстати, эту ситуацию легко отловить: подключаем выходы триггера к элементу И-НЕ и на выходе его считаем импульсы.
Такая «правильная» работа триггера (при переключениях) может быть источником ошибок в работе схемы. И это тоже должно быть понятно почему: ожидаем только 01 или 10 (это по ТИ), а тут, откуда ни возьмись – 11!

А теперь то, ради чего все это затевается.
Внимание! Если на вход триггера подать запрещенную комбинацию – 00! То на выходах будет – 11. И то и другое запрещено. Но 11 на выходах появляется и в разрешенных случаях. Так что возникновение 00 на входах триггера ситуация тоже вполне возможная. Например, проинвертируем выходы триггера и подадим на входы другого триггера. Чем не реальная схема! wink.gif
Но мы поступим проще: соберем «в кучу входы триггера» и будем подавать в эту точку сначала 0, а потом 1. Что в этом случае будет (начальные условия: сигналы – двоичные, задержки у элементов триггера – равные, единичные):
1. С формальной моделью?
2. С моделью реализованной в среде моделирования?
3. С реальным триггером?

Интересует ответ на последние три вопроса.
Но больше даже ответ на вопрос 2, который можно получить, создав соответствующую модель.
Почему больше на 2-й? Потому что первый требует владения формальными методами, а это достаточно сложно. Хотя на интуитивном уровне, думаю, можно дать ответ, оперируя значениями сигналов «на пальцах». На третий вопрос тоже не так просто получить ответ. Даже в том случае (с запрещенной выходной комбинацией), который был описан выше. Но если кто-то знает ответы на все три вопроса, то будет только хорошо.

Итак. Может ли кто дать ответ хотя бы на вопрос 2, заданный выше, собрав для этого модель триггера. Для конкретики его входы должны быть соединены в одну точку. В исходном состоянии на ней ноль - 0. Через какое-то время подается «единица» - 1, которая затем держится достаточно длительное время (хоть до бесконечности).
Что будет на выходах RS-триггера?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SM
сообщение Nov 24 2005, 19:42
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



1). Про то, как моделирую я. В принципе. Сначала я моделирую на верилоге. "чиста цифровым методом". Как Вы. Это так, прикидочная модель. Которой доверять нельзя. На ней можно сказать, соответствует цифровая схема поставленной задаче или нет на уровне логики. В процессе такого моделирования я исправляю неточности в нетлисте, которые бывают у синтезаторов. Затем все ложится на кристалл. Синтезируются деревья клоков, делается разводка. После этого делаю экстаркцию паразитов, тоже прикидочную, получаю на основе этого SDF-файл, и опять прогоняю тест-бенч на верилоге. Опять это прикидочное моделирование! Я ни за что не отправлю такое изделие, проверенное таким образом, на фабрику. Затем я собираю из вериложного нетлиста и спайс-моделей ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ аналоговую схему. Запускаю процесс верификации, который сравнивает эту схему на транзисторном уровне с тем, что разведено на кристалле. Затем делаю еще одну экстракцию паразитов, уже более точную, чем была та, которая для SDF'а, и моделирую схему в спайс-моделяторе на транзисторном уровне. Там я уже вижу все реальные задержки, все перекосы фронтов, все нарушения в скорости нарастания фронтов (ведь и такая проблема есть!). Такую симуляцию я делаю для трех точек по температуре и питанию. И только когда именна эта симуляция показала работоспособность схемы, я ее отправляю в производство. Так что окончательно симулирую я цифровые схемы именно в аналоге. Основную симуляцию. Остальные так, для скорости, так как они могут показать только очень грубые ошибки.

Я совершенно не разделяю вашего подхода к моделированию процессов, зависящих ИСКЛЮЧИТЕЛЬНО от внутренней схемотехники транзисторного уровня. Это все равно, что построить модель однотранзисторного усилителя на транзисторе, у которого из параметров задан только h21э и на такой моделе пытаться анализировать зависимость точки покоя от температуры. Вы ничего не получите! Точно также и у Вас - вы сами навесите на элементы какие-то задержки, и естественно, если захотите, оно загенерит, если не захотите - не загенерит. Это не моделирование. Это, извините за выражение, онанизм - сам задам, что схема должна генерить, и посмотрю, о!, в натуре генерит... Ай как правильно моделятор смоделировал. Но, повторю, ничего он не смоделировал. И не надо пытаться упрощать себе жизнь упрощением моделей. Не существует в природе идеальных фронтов сигналов. Не бывает их одинаковых у двух элементов. Кстати, при замыкании того-же реле еще и дребезг есть, и скорость нарастания фронта тоже вполне конечная, я уж не говорю что там при размыкании, особенно если в нагрузке еще одно реле (точнее индуктивность). В общем - моделируйте процессы в тех средах моделирования, которые смогут корректно их смоделировать, и на тех уровнях, на которых они происходят. Вы пытаетесь, грубо говоря, используя исключительно математику целых чисел с операциями + - * / доказать какую нибудь интегральную теорему и ТФКП. Не выйдет.

Про мой триггер - у него никогда не было двух выходов. У него один выход. Инверсный. Прямой выход выходом не является, это всего лишь цепь обратной связи, выполняемая на транзисторах с большим L. На такой "выход" нагрузку подключать категорически запрещено. И не надо тут придумывать запрещенные состояния на выходах, ибо он один. А на входе у него запрещенных состояний нет.

Про автомат - это где же я сказал про переход в соседний автомат? angry.gif Я говорил про два состояния, и про то, что из каждого из них есть по два перехода в себя, и по одному - в соседнее.

И про воздействия. Причем тут КА и логические уровни? При описании КА я события (воздействия) описывать имею право хоть словами, хоть рисунками. И три слова - ноль, один и обрыв это вполне полноправные внешние воздействия на конечный автомат.

Цитата
Причем он должен (или я так полагаю) генерировать в любой ситуации, если элементы его абсолютно одинаковы: в математических формулах нет "паразитных емкостей", "тепловых шумов" и т.п.


Еще раз повторю. Есть давно и не мной сформулированный критерий генерации в системе с ОС. Если он выполнен - загенерит. Если нет - не загенерит. А если в математических формулах, описывающих модель, нет паразитных емкостей и тепловых шумов, то это модель, не пригодная для моделирования данного процесса. А именно охвата триггера обратной связью. Такая модель не достаточна, она не описывает того, из-за чего возникает или не возникает генерация.
Go to the top of the page
 
+Quote Post
locas
сообщение Nov 25 2005, 08:03
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 29-07-05
Пользователь №: 7 194



Цитата(SM @ Nov 24 2005, 22:42) *
1). Про то, как моделирую я. В принципе. Сначала я моделирую на верилоге. "чиста цифровым методом". Как Вы. Это так, прикидочная модель.

Вот! Вот такая "прикидочная модель" меня и интересует. И очень (!) интересует поведение Вашего триггера именно на этом уровне. Поэтому сообщите, если не трудно wink.gif
Цитата(SM @ Nov 24 2005, 22:42) *
Которой доверять нельзя. На ней можно сказать, соответствует цифровая схема поставленной задаче или нет на уровне логики.

Ей можно и нужно доверять, но, как правильно Вы заметили, на уровне логики. Но это и есть основной уровень отлавливания ошибок. Все остальное, что далее (здесь ниже), чтобы обеспечить правильность работы логического уровня. Я так это понимаю. Но, главное, что я нахожу подтверждение этим моим мыслям. Цитирую: "уровень логических вентилей, традиционно играет основную роль при проектировании цифровых схем и систем..." (Армстронг. Моделирование цифровых систем на языке VHDL". На этом уровне и нужно вылавливать максимум ошибок. Да, реальный триггер может и не будет генерировать, но если на вентильном уровне для этого есть предпосылки, то их нужно или устранить (на этом же уровне) или ... перенести решение этого вопроса на следующие уровни (например, создав триггера с заведомо разными задержками)...
Цитата(SM @ Nov 24 2005, 22:42) *
В процессе такого моделирования я исправляю неточности в нетлисте, которые бывают у синтезаторов. Затем все ложится на кристалл....
Синтезируются деревья клоков, делается разводка. После этого делаю экстаркцию паразитов, тоже прикидочную, получаю на основе этого SDF-файл, и опять прогоняю тест-бенч на верилоге. Опять это ... Так что окончательно симулирую я цифровые схемы именно в аналоге. Основную симуляцию. Остальные так, для скорости, так как они могут показать только очень грубые ошибки.

Такое тщательное проектирование нужно, как мне представляется, когда логика (вентили) работают на пределе своих возможностей, когда "паразиты" имеют влияние и т.д. и т.п. Для Вас, видимо, это важно. Но если, к примеру, я работаю с готовой логикой ("рассыпухой"), то мне будет достаточно и вентильного уровня. И тех проверок, которые могут быть там заложены. На этом уровне основные "паразиты" часто это просто гонкт сигналов, который сильно зависят от разброса задержек.
Цитата(SM @ Nov 24 2005, 22:42) *
Я совершенно не разделяю вашего подхода к моделированию процессов, зависящих ИСКЛЮЧИТЕЛЬНО от внутренней схемотехники транзисторного уровня.

Я здесь Вас не понял. Как раз внутреннюю схемотехнику я не трогаю. Я в этой ситуации могу только выбрать те микросхемы, которые проектируете именно Вы, зная с какой тщательностью Вы это делаете. А как Вы это делаете - я тут целиком доверяюсь Вам wink.gif
Цитата(SM @ Nov 24 2005, 22:42) *
Это все равно, что построить модель однотранзисторного усилителя на транзисторе, у которого из параметров задан только h21э и на такой моделе пытаться анализировать зависимость точки покоя от температуры. Вы ничего не получите!

Одно уточнение. Я могу создать и эту модель и модель любой другой сложности.
Цитата(SM @ Nov 24 2005, 22:42) *
Точно также и у Вас - вы сами навесите на элементы какие-то задержки, и естественно, если захотите, оно загенерит, если не захотите - не загенерит.

Тут Вы ошибаетесь. Я стараюсь делать не как мне нужно, а как должно быть. Оттого я так долго например выяснял вопрос с генерацией триггера. Теперь мне ясно - модель логического элемента должна включать задержку инерционного типа. Я ее сделал. Теперь триггер работает не так как я хочу, а примерно так, как Вы описываете.
Цитата(SM @ Nov 24 2005, 22:42) *
Это не моделирование. Это, извините за выражение, онанизм - сам задам, что схема должна генерить, и посмотрю, о!, в натуре генерит... Ай как правильно моделятор смоделировал.

Ситуация иная. Генерацию я рассчитываю строго математически (примерно, но немного не так как описано у упомянутого Шалыто). Тут как с 2x2. Как ты не хоти, но будет всегда четыре. Так и с триггером. При правильной модели элементов он при разных задержках не загенерирует ни в жизнь как бы мне этого не хотелось!
Цитата(SM @ Nov 24 2005, 22:42) *
Но, повторю, ничего он не смоделировал. И не надо пытаться упрощать себе жизнь упрощением моделей.

Я не упрощаю, а задаю условия работы своей системы, за которые я не должен выходить, чтобы гарантировать работоспособность.
Цитата(SM @ Nov 24 2005, 22:42) *
Не существует в природе идеальных фронтов сигналов. Не бывает их одинаковых у двух элементов.

Все зависит от скорости на которой работает элемент. Вы же это знаете и без меня.
Цитата(SM @ Nov 24 2005, 22:42) *
Кстати, при замыкании того-же реле еще и дребезг есть, и скорость нарастания фронта тоже вполне конечная, я уж не говорю что там при размыкании, особенно если в нагрузке еще одно реле (точнее индуктивность). В общем - моделируйте процессы в тех средах моделирования, которые смогут корректно их смоделировать, и на тех уровнях, на которых они происходят. Вы пытаетесь, грубо говоря, используя исключительно математику целых чисел с операциями + - * / доказать какую нибудь интегральную теорему и ТФКП. Не выйдет.

Да нет же. Я просто не лезу в ту область, где все это начинает сказываться.
Цитата(SM @ Nov 24 2005, 22:42) *
Про мой триггер - у него никогда не было двух выходов. У него один выход. Инверсный. Прямой выход выходом не является, это всего лишь цепь обратной связи, выполняемая на транзисторах с большим L. На такой "выход" нагрузку подключать категорически запрещено. И не надо тут придумывать запрещенные состояния на выходах, ибо он один.

На вентильном уровне все это не имеет значения. Но, безусловно, зная условия дальнейшей реализации Вы все это о чем написали будете учитывать в своей схеме. Я же вел речь о той схеме, которую Вы дали. На этом уровне - это система из двух элементов, как и обычный триггер. Как для триггера я строю и ее модель. И потому, если не выходов, то множеств состояний у Вашего триггера столько же сколько и у обычного RS-триггера - т.е. четыре (00, 01, 10, 11) и функция переходов будет такая:
00 = {11(^x1/-), 10(x1/-)},
01 = {00(x1/-)},
01 = {11(^x1/-)},
11 = {00(x1/-)}.
Это автомат Мили, знак ^ означает отрицание.
Цитата(SM @ Nov 24 2005, 22:42) *
А на входе у него запрещенных состояний нет.

Нет, конечно. А вот на выходах (не на одном выходе!) есть.
И еще раз для ясности. Речь идет об анализе данной схемы, как системы из двух вентилей. На этом уровне нагрузка учитывается лишь в том плане, что ее можно подключать или нет. Кстати, если у RS-триггера рассматривать только выход Q, то у него тоже не будет "запрещенных выходов". С той лишь разницей, что на второй выход триггера нагрузку можно подключать.
Цитата(SM @ Nov 24 2005, 22:42) *
Про автомат - это где же я сказал про переход в соседний автомат? angry.gif Я говорил про два состояния, и про то, что из каждого из них есть по два перехода в себя, и по одному - в соседнее.

Убейте, но я Вас не понимаю. Как - "в соседнее". Выше я нарисовал результирующий автомат для всей системы. Там есть и свое и соседнее состояние. Но в эту Вашу фразу я не могу врубиться. Если не сложно, то можно это как-то описать в автоматной форме?
Цитата(SM @ Nov 24 2005, 22:42) *
И про воздействия. Причем тут КА и логические уровни? При описании КА я события (воздействия) описывать имею право хоть словами, хоть рисунками. И три слова - ноль, один и обрыв это вполне полноправные внешние воздействия на конечный автомат.

Тут есть тонкий момент. Кодирование сигнала. У Вас оно троичное. Будет и другая модель и другая математика. Может, и отличия будут небольшими, но я бы пока эти вопросы оставил на потом...
Цитата(SM @ Nov 24 2005, 22:42) *
Еще раз повторю. Есть давно и не мной сформулированный критерий генерации в системе с ОС. Если он выполнен - загенерит. Если нет - не загенерит. А если в математических формулах, описывающих модель, нет паразитных емкостей и тепловых шумов, то это модель, не пригодная для моделирования данного процесса. А именно охвата триггера обратной связью. Такая модель не достаточна, она не описывает того, из-за чего возникает или не возникает генерация.

В том то и дело, что генерация может возникать и на уровне логических вентилей. Например, в книге Гивоне, Россер "Микропроцессоры и микрокомпьютеры" в пар. 5.1 в разделе MS-триггер проблемы колебательных значений рассматриваются. См. рис.5.4 Схема с RS-триггером, в которой могут возникать колебания значений. Тут не "паразитов", шумов ни слова о критериях генерации в системе с ОС (да и ОС ли там?), а генерация (колебания) возникают. И выясняют все это на вентильном уровне.
И пробуют уйти от этой проблемы, рассматривая MS-триггер...

ЗЫ
Но мне очень интересно поведение Вашей "прикидочной модели" (см. начало ответа)

Что-то перестало работать выделение цитат. sad.gif Вроде делаю, как и раньше. В чем промашка?


Цитата(vetal @ Nov 24 2005, 23:18) *
В принципе, решение может быть простейшим - поставьте симулятор Modelsim или Active-HDL(несколько проще в освоении, с моей точки зрения).
И далее создавайте модификации RS триггера, с разной начинкой.

Не знаю найду ли время. Да и хотелось бы чтобы это сделали те, кто знают эти системы. У них это получится и быстрее и качественнее. Все это в строне от моей основной работы.
Но на всякий случай - вдруг...
В двух словах. В какой системе (меня интересует в основном Windows)? Где взять? (здесь на сайте?)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- locas   Моделирование RS-триггера   Nov 23 2005, 08:03
- - SM   Цитата(locas @ Nov 23 2005, 11:03) Итак. ...   Nov 23 2005, 08:19
|- - locas   Цитата(SM @ Nov 23 2005, 11:19) Ответов т...   Nov 23 2005, 12:27
|- - Al Volovich   Цитата(locas @ Nov 23 2005, 17:27) Но мне...   Nov 24 2005, 08:05
- - SM   Ну Вы прямо как в детском саду. Не опускаясь до тр...   Nov 23 2005, 20:50
|- - locas   Цитата(SM @ Nov 23 2005, 23:50) Ну Вы пря...   Nov 24 2005, 08:49
- - SM   Насчет логических/нелогических. Они логические, по...   Nov 24 2005, 09:56
|- - locas   Цитата(SM @ Nov 24 2005, 12:56) ...Вы обя...   Nov 24 2005, 12:44
- - Vic1   Locas, может поясните - зачем Вам такая упрощенная...   Nov 24 2005, 13:01
|- - locas   Цитата(Vic1 @ Nov 24 2005, 16:01) Locas, ...   Nov 24 2005, 14:07
|- - vetal   Цитата(locas @ Nov 24 2005, 17:07) Цитата...   Nov 24 2005, 18:13
|- - locas   Цитата(vetal @ Nov 24 2005, 21:13) А.А. Ш...   Nov 24 2005, 19:53
|- - locas   Цитата(SM @ Nov 24 2005, 22:42) 1). Про т...   Nov 24 2005, 20:30
- - vetal   В принципе, решение может быть простейшим - постав...   Nov 24 2005, 20:18
- - SM   ЦитатаВот! Вот такая "прикидочная модель...   Nov 25 2005, 11:46
|- - locas   Цитата(SM @ Nov 25 2005, 14:46) Я на этом...   Nov 26 2005, 13:16
- - SM   ЦитатаС одной строны, Вы правы. А с другой, все оп...   Nov 26 2005, 20:46
- - SM   ЦитатаС одной строны, Вы правы. А с другой, все оп...   Nov 26 2005, 20:47
|- - locas   Цитата(SM @ Nov 26 2005, 23:47) Так, если...   Nov 27 2005, 14:46
- - SM   Сорри за два одинаковых сообщения - я не виноватая...   Nov 26 2005, 20:51
- - SM   ЦитатаОстается один невыясненный момент: по теории...   Nov 27 2005, 21:51
|- - monya   Цитата(SM @ Nov 27 2005, 21:51) И опишем ...   Nov 28 2005, 10:53
||- - SM   Цитата(monya @ Nov 28 2005, 13:53) SM Мож...   Nov 28 2005, 11:01
|- - locas   Цитата(SM @ Nov 28 2005, 00:51) Вот тепер...   Nov 28 2005, 12:09
- - SM   ЦитатаЭто проще, но для меня почти неприемлемо П...   Nov 28 2005, 14:13
|- - locas   Цитата(SM @ Nov 28 2005, 17:13) Вот! ...   Nov 28 2005, 17:26
- - SM   ЦитатаЭто интересный момент. Как замкнуть? Как это...   Nov 28 2005, 19:31
- - locas   Цитата(SM @ Nov 28 2005, 22:31) P.S. Чест...   Nov 28 2005, 20:49


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

 


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


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