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

Моделирование RS-триггера

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

 

Схема RS-триггера хорошо известна.

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

 

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

 

Все смотрят на таблицу истинности и … верят, что на выходах триггера всегда будут только устойчивые состояния. И мало кто знает, что это не так. Даже если на вход не подавать запрещенную комбинацию.

Прекрасно известно, что при переключении триггера из одного устойчивого состояния в другое на его выходах будут кратковременно две единицы, если это триггер на элементах И-НЕ, и два нуля, если на элементах ИЛИ-НЕ. И, кстати, эту ситуацию легко отловить: подключаем выходы триггера к элементу И-НЕ и на выходе его считаем импульсы.

Такая «правильная» работа триггера (при переключениях) может быть источником ошибок в работе схемы. И это тоже должно быть понятно почему: ожидаем только 01 или 10 (это по ТИ), а тут, откуда ни возьмись – 11!

 

А теперь то, ради чего все это затевается.

Внимание! Если на вход триггера подать запрещенную комбинацию – 00! То на выходах будет – 11. И то и другое запрещено. Но 11 на выходах появляется и в разрешенных случаях. Так что возникновение 00 на входах триггера ситуация тоже вполне возможная. Например, проинвертируем выходы триггера и подадим на входы другого триггера. Чем не реальная схема! ;)

Но мы поступим проще: соберем «в кучу входы триггера» и будем подавать в эту точку сначала 0, а потом 1. Что в этом случае будет (начальные условия: сигналы – двоичные, задержки у элементов триггера – равные, единичные):

1. С формальной моделью?

2. С моделью реализованной в среде моделирования?

3. С реальным триггером?

 

Интересует ответ на последние три вопроса.

Но больше даже ответ на вопрос 2, который можно получить, создав соответствующую модель.

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

 

Итак. Может ли кто дать ответ хотя бы на вопрос 2, заданный выше, собрав для этого модель триггера. Для конкретики его входы должны быть соединены в одну точку. В исходном состоянии на ней ноль - 0. Через какое-то время подается «единица» - 1, которая затем держится достаточно длительное время (хоть до бесконечности).

Что будет на выходах RS-триггера?

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


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

Итак. Может ли кто дать ответ хотя бы на вопрос 2, заданный выше, собрав для этого модель триггера. Для конкретики его входы должны быть соединены в одну точку. В исходном состоянии на ней ноль - 0. Через какое-то время подается «единица» - 1, которая затем держится достаточно длительное время (хоть до бесконечности).

Что будет на выходах RS-триггера?

Ответов тут куча. Вот собрал я триггер из транзисторов, развел его на кристалле несколькими методами. Потом выдрал при помощи LVS и RCX оттедова его нутряную модель. Самую что ни на есть физическую. И получил для разных вариантов разводки и схемотехники совсем разные результаты - начиная от стабильных нуля или единицы, кончая довольно продолжительной осцилляцией. Так чта - какой триггер себе сделаешь, такой результат и получится. Более того, для одной реализации в "запрещенном" состоянии схема жрала не детский сквозной ток :) который в реалии мог бы ее и вышибить.

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


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

Ответов тут куча. Вот собрал я триггер из транзисторов, развел его на кристалле несколькими методами. Потом выдрал при помощи LVS и RCX оттедова его нутряную модель. Самую что ни на есть физическую. И получил для разных вариантов разводки и схемотехники

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

Собрал я эту схему и получил...

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

И тут сразу вопрос - какой результат правильный? Я-то, например, ожидал генерацию, а она выдает ... "стабильный ноль". Или того хуже - пошла осцилляция, а потом - бац, и стала!

Есть какое-то объяснение столь разных результатов? По рассуждениям-то, казалось бы, должна быть стабильная осцилляция (генерация)?

Так чта - какой триггер себе сделаешь, такой результат и получится. Более того, для одной реализации в "запрещенном" состоянии схема жрала не детский сквозной ток :) который в реалии мог бы ее и вышибить.

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

Я уже сказал, что в данном случае не хотелось бы опускаться до уровня транзисторов, а создавать схему из уже готовых логических элементов И-НЕ. Но мне почему-то казалось, что даже если мы строим схему на транзисторах, то когда элементы абсолютно идентичны, то на уровне моделирования все равно должна быть генерация. И она у тебя в одном варианте есть! Опять же - "где собака порылась", что триггеры в разных вариантах работают по-разному? Но, кстати, я надеюсь, что и в этих разных вариантах схема абсолютно симметрична, т.е. ее элементы одинаковы по всем мыслимым в данном случае параметрам (схема элементов, характеристики транзисторов, режимы их работы и т.д. и т.п.)

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


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

Ну Вы прямо как в детском саду. Не опускаясь до транзисторов, эту проблему Вам не разрешить. Ведь Вы считаете логические элементы черными ящиками... Причем логическими. Единица/ноль. А они вовсе не логические. Они имеют коэффициент передачи, АЧХ/ФЧХ... Соединив вход с выходом, вы получаете систему с обратной связью. АНАЛОГОВУЮ!!!! Любая цифровая схема, если вникнуть, аналоговая. Теперь возникает вопрос - а каково условие генерации в системе с обратной связью? Ну и ответ на него (точнее подсказка) - коэффициент передачи системы.... коэффициент передачи цепи ОС... Фазовый сдвиг там и тут... Узнав все это, Вы узнаете, загенерит ли данная схема, или не загенерит.

 

Где собака порылась? А в схемотехнике. В одном триггере задержка от входа R больше, чем от S. Вот он и встает постоянно в одно состояние. В другом - наоборот. Встает в другое. В третьем - задержка абсолютно идентична, да паразитная емкостишка где-то подкачала... Вот и заосциллировал. А в четвертом вообще топология другая - пара последовательных инверторов, выход второго слабый (или через резистор) идет на вход первого. И на этот же вход подаем жесткий ноль для переброса в ноль, жесткую 1 для переброса в 1 и обрыв (Z-состояние) для хранения. Тоже RS-триггер... И применяется он в реальных изделиях. Вот вам и ответ на вопрос #2. Про "в реальной среде моделирования". Возьмите такую реальную среду (Microcap,Spectre,HSpice, PSpice и много-много других), да помоделируйте. потыкайте кондерчиков-резючков паразитных туда-сюда, посмотрите поведение. И вопросы эти сами отпадут.

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


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

Но мне почему-то казалось, что даже если мы строим схему на транзисторах, то когда элементы абсолютно идентичны, то на уровне моделирования все равно должна быть генерация. И она у тебя в одном варианте есть! Опять же - "где собака порылась", что триггеры в разных вариантах работают по-разному? Но, кстати, я надеюсь, что и в этих разных вариантах схема абсолютно симметрична, т.е. ее элементы одинаковы по всем мыслимым в данном случае параметрам (схема элементов, характеристики транзисторов, режимы их работы и т.д. и т.п.)

Найдите два абсолютно идентичных транзистора - тогда и поговорим. На уровне физики ничего, абсолютно идентичного не существует. И у RS-триггера комбинация 11 потому и запрещена, что она приводит к непредсказуемым и неповторимым в серии последствиям. На одном экземляре может быть один результат, на другом экземпляре той же серии - другой

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


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

Ну Вы прямо как в детском саду. Не опускаясь до транзисторов, эту проблему Вам не разрешить.

Почти что :) Только я том "саду", где ... нет транзисторов. Ну, например, я лично держал в руках логический элемент И-НЕ на воздушных клапанах. Это применяется там, где нужы особые требования к пожаробезопасности.

Ведь Вы считаете логические элементы черными ящиками... Причем логическими. Единица/ноль.

Конечно, - ЧЯ. И эти ЧЯ допускают любую реализацию, а не только на транзисторах. В дополнении к "воздушному" можно, например, на реле и т.д. и т.п. Здесь для меня важно чтобы та или иная реализация ЧЯ как можно точнее реализовывала мое достаточно абстрактное понимание этого ЧЯ как логической функции.

Но есть реальные вещи, которые как бы мы не абстрагировались, скажутся и на нашем абстрактном понимании. Ну, например, ничто не происходит мгновенно. Поэтому если мы напишем y = !(x1^x2) (это я так записал И-НЕ), то между изменениями входных переменных (x1, x2) и изменением выхода будет какое-то время. Хоть умри! Оно будет сколь угодно малым, но никогда не будет равным нулю.

Эти нюансы в синтезе цифровых схем на уровне формальных моделей отражены в двух моделях - комбинационной и последовательностной. В комбинационной модели временем пренебрегают, в последовательностной (модель КА) его учитывают.

Все это я не к потому, что думаю, что Вы это не знаете, а к тому, чтобы пояснить почему к вашему "Единица/ноль" в случае с КА нужно добавить еще - задержка, которая определяется в этом случае числом тактов дискретного времени.

Хорошая схемотехника, насколько мне известно, тем лучше, чем ближе она реализует наше абстрактное представление. Например, двоичное кодирование с идеальными фронтами - 0 и 1, задержку, которая чем меньше, тем лучше и т.д. и т.п. Как это достигает - вот это уже уровень транзисторов, воздухопровода, катушек и контактов реле и т.д. и т.п.

А они вовсе не логические. Они имеют коэффициент передачи, АЧХ/ФЧХ...

И да и нет. Логические, т.к. обязаны реализовывать некоторую логическую функцию, т.к. именно для этого и созданы (согласны?). То, что имеют АЧХ/ФЧХ? Возможно, но в идеале не должны иметь, т.к. есть на уровне определения 0, 1 и, если не принебрегать совсем уж реалиями, - задержка (как можно меньше). И в тех или иных рамках рабочего диапазона все это условно так и есть: фронты 0, 1 - идеальные, задержка - известная... Поэтому речь именно о такой работе, когда реальная работа физического элемента соответствует его абстрактному представлению.

Соединив вход с выходом, вы получаете систему с обратной связью. АНАЛОГОВУЮ!!!! Любая цифровая схема, если вникнуть, аналоговая. Теперь возникает вопрос - а каково условие генерации в системе с обратной связью? Ну и ответ на него (точнее подсказка) - коэффициент передачи системы.... коэффициент передачи цепи ОС... Фазовый сдвиг там и тут... Узнав все это, Вы узнаете, загенерит ли данная схема, или не загенерит.

Интересный вопрос. Попробуем соединить комбинационную логическую функцию И-НЕ. Получим:

y = !(x1^y);

Явно что-то не то! :) Если x1 будет 0, то ... y должен быть 1. А если x1 станет равным 1? Будет противоречие. Т.к. если взять текущий y=1, то справа будет 0, но слева-то 1.

Но если мы "нарисуем" наш И-НЕ в форме КА, то ... схема должна генерировать. Без всякого противоречия.

Выше я сочинял прямо по ходу. И поэтому было бы интересно проверить работу генератора на элементе И-НЕ. Тут уже не будет разных задержек, но, думаю, скажется АЧХ/ФЧХ. Но как? Т.к. по формальным признакам элемент схема обязана генерировать на частоте соответствующей задержке, вносимой элементом. Проверьте, если не сложно.

Кстати, если мы возьмем просто элемент И, то и противоречия не будет, но ... не будет и генерировать, т.к. нет условий для генерации. Хотя есть обратная связь и все эти АЧХ/ФЧХ. Запрещает генерацию сам смысл реализуемой логической функции. Так что условия генерации определяются еще и смыслом реализуюемой объектом функции?

Где собака порылась? А в схемотехнике. В одном триггере задержка от входа R больше, чем от S. Вот он и встает постоянно в одно состояние. В другом - наоборот. Встает в другое.

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

В третьем - задержка абсолютно идентична, да паразитная емкостишка где-то подкачала...

Вот и заосциллировал.

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

А в четвертом вообще топология другая - пара последовательных инверторов, выход второго слабый (или через резистор) идет на вход первого. И на этот же вход подаем жесткий ноль для переброса в ноль, жесткую 1 для переброса в 1 и обрыв (Z-состояние) для хранения. Тоже RS-триггер... И применяется он в реальных изделиях.

Тут я даже задумался Такой триггер мне не попадался еще ;) Спасибо. :cheers: Я их коллекционирую. :biggrin:

Да, это скорее всего RS-триггер. Хотя... Хотя у последнего два установочных входа, а тут один. Но, с другой стороны, выхода тоже два. Да и связи перекрестные, но только вот этот резистор. По сути в рабочем режиме он не работает (из-за жесткости установочного сигнала), а потому получаем схему, где вторая (на которую подается сигнал) определяет выход первой. Меняем сигнал - меняется состояние триггера. Кстати, в этом случае у него и переходные процессы будут иными, чем у обычного триггера. Если у обычного триггера переходное состояние одно (у триггера на И-НЕ - 11), то тут будет два - 00 или 11.

Сохраняет состояние триггера - "разрыв". И вот в этой ситуации (при разрыве) связь между элементами как бы появляется: выход первого элемента поддерживает состояние второго и тем самым сохраняется устойчивость системы.

Привлекает эта схема еще и тем, что я не вижу в ней ... генерации. Т.е. того режима, который возможен в обычном триггере. Что вызывает сомнение - это еще одно состояние сигнала - "разрыв". Его еще нужно создавать. С ноликами-единичками привычные. Потом у обычного триггера "трепыхание" одного сигнала при единичном втором не вызовет переключение триггера. Здесь триггер откликнется на любое изменение сигнала. Значит, и на ложное. Я бы даже сказал, что обычный триггер переключается фронтом сигнала, а тут будет "потенциальное" переключение (хотя это скорее условно).

Вот вам и ответ на вопрос #2. Про "в реальной среде моделирования". Возьмите такую реальную среду (Microcap,Spectre,HSpice, PSpice и много-много других), да помоделируйте. потыкайте кондерчиков-резючков паразитных туда-сюда, посмотрите поведение. И вопросы эти сами отпадут.

В том-то и дело, что хотелось бы проектировать систему на формальном уровне. В последнем триггере, например, сразу возникают вопросы с формализацией решения. Уже, например, о булевой алгебре, автоматах говорить сложно (нужно все же подумать ;), т.к. появляется третье состояние сигнала - "разрыв". Это уже специфика. Может, потому я об этом триггере впервые и услышал от Вас. И уже это хорошая компенсация за то, что я решился на постановку здесь вопроса о триггере. Не думал, что услышу что-то новое ;) Век живи - век ... мучайся ;)

А вопросы ... всегда останутся. Мне кажется, что их будет еще больше, если лезть во внутрь черных ящиков. Нужно, наверное, разделять труд. Я, например, проектирую схему в некотором идеализированном базисе (0/1, единичные задержки и т.п.), а Вы, к примеру, создаете реализацию этого базиса. Желательно без отклонений и добавлений (типа еще одного уровня сигнала "разрыв"). Хотя в данном случае мне удалось построить модель поведения последнего триггера. Но если появится еще один уровень сигнала, то ... не знаю как я вывернусь. По крайней мере тут уже будет другое проектирование на уровне формальной модели. А нынешнее проектирование, насколько я представляю, основные проблемы стремится решить именно здесь - на уровне модели устройства. Так дешевле, быстрее (с точки зрения времени проектирования), надежней (с точки зрения последующего функционирования устройства).

 

Найдите два абсолютно идентичных транзистора - тогда и поговорим. На уровне физики ничего, абсолютно идентичного не существует.

Согласен. Даже не буду искать ;)

И у RS-триггера комбинация 11 потому и запрещена, что она приводит к непредсказуемым и неповторимым в серии последствиям. На одном экземляре может быть один результат, на другом экземпляре той же серии - другой

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

Могу даже признаться, что таких реальных экспериментов не делал, но есть твердая уверенность, что так и будет. По крайней мере, если я это смоделирую у себя. Думаю, что это будет также и в других системах моделирования цифровых схем. Надеюсь, конечно, что так будет ;)

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


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

Насчет логических/нелогических. Они логические, пока Вы их используете в качестве логических. Но когда хотите (или наоборот, не хотите) генерации, когда рассматриваете метастабильность, и т.п., Вы обязаны их рассматривать как аналоговые. Так как условие генерации в системе с ОС, про которое я намекал, применимо исключительно к аналоговым моделям. В цифровой моделе Вы никогда не узнаете реального ответа - загенерит/не загенерит, так как задержка это условность, не учитывающая реальных пороговых напряжений, паразитов. Точно так же - модель на основе КА. Такая модель может показать генерацию единиц и нулей, а правильная, учитывающая все нюансы, в том числе сдвиг фазы в системе на тех частотах, на кторох коэфф. передачи >1, показать генерацию синусоиды, или наоборот, вход в устойчивый режим (усиления) с установлением выхода в некую среднюю точку между питанием и землей. Я естественно рассматриваю электрические (и аналогичные) схемы, где возможны состояния, отличные от 0 и 1. Тот-же воздух, клапан можно и не до конца открыть.

 

Про задержку. Что такое задержка? Нужно определение. Ну естественно, это производная фазового сдвига по частоте. Задержка на каждой частоте у элемента может быть своя, и обычно так оно и есть. Ну нельзя сделать аналоговый элемент с линейной ФЧХ вплоть до бесконечности по частоте. Природа так устроена. Посему можно предложить такие модель, чтобы охватить больше вариантов.

- ключ, который имеет сопротивление в открытом состоянии, сопротивление в закрытом, скорость открытия/закрытия и емкость входа (такая условная, показывающая сколько на вход должно поступить/уйти чего-то несущего, чтобы ключ начал открываться или закрываться), предполагая что сопротивление меняется линейно в процессе открытия/закрытия.

- линию передачи (условно согласованную), характеризующуюся сопротивлением и задержкой.

Все. Из этого в симуляторе собирать разные логические схемы и их анализировать. Формально. Не привязываясь к тому, что "носитель" это электрический ток. (не напряжение! а ток! Именно он перезаряжает емкости ключей! и именно он определяет работу логической схемы.) Это может быть любой [по]ток. Того-же воздуха.

 

Про элемент И-НЕ. Если соединить вход с выходом, и на другой вход подать 1, получим грубо говоря элемент НЕ со 100% ООС. Что мы имеем. Элемент НЕ это инвертирующий усилитель. Проанализируем его АЧХ и ФЧХ. АЧХ (я это просто знаю) будет спадать с частотой. Начиная от довольно большого усиления, кончая усилением, меньшим единицы. Нас интересует точка, где КУ=1. Смотрим там на ФЧХ. Если сдвиг фазы перешкалил за 180 град., то генерить будет. Если не перешкалил, встанет в устойчивое состояние с полпитанием на выходе. В терминах анализа усилителей разница между 180град. и фазой в точке с КУ=1 называется запас по фазе. И определяет устойчивость усилителя. А вот Вам задачка - берем элемент НЕ. Соединяем выход с входом через резистор. Через другой резистор подаем на вход внешний сигнал. Что имеем? Цифровая модель ни в жизни не даст ответа. А в реальности такой усилитель используется, и довольно широко. Например в схемах кварцевого генератора.

 

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

 

Про RS-триггер с "разрывом". Одно его реальное применение - это блоки ОЗУ. Очень грубо говоря, при считывании подключаем ему на вход конденсатор, на котором хранится значение бита ОЗУ. Заряд (или его отсутствие) перебрасывает триггер в какую-то сторону, а потом обратная связь дозаряжает этот кондер в нужную сторону, осуществляя регенерацию. Потом отключаем ключ, значение бита сохраняется. Второе реальное применение "bus holder". Когда на шине есть кто-то активный, значение шины определяется им. Когда все отвалились, значение шины остается таким, каким его задал последний активный. Ну и т.д. Самое главное, что это все таки триггер. Который может хранить, может быть сброшен и установлен. Кто сказал, что у триггера должно быть два входа :) С вашей, логической, точки зрения, он должен управляться внешними воздействиям, а через сколько входов они туда попадут, это вопрос второй. Именно рассмотрение его как автомата вполне справедливо. У него два состояния - один и ноль. И три воздействия - ноль, один, обрыв. Соответственно из каждого состояния три перехода. Два в себя, один в соседа. Самое главное - у этого триггера нет запрещенного состояния!

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


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

...Вы обязаны их рассматривать как аналоговые.

Все же мне хотелось работать в том диапазоне частот/скоростей, где элементы в рамках определенных допущений являются дискретными. Чтобы не стоял вопрос с АЧХ/ФЧХ. У дискретного элемента все эти вещи константы: какая бы ни была частота на входе такого элемента на выходе всегда будет 0 или 1. Но у реального элемента, конечно, будет предел, когда это будет нарушаться.

Так как условие генерации в системе с ОС, про которое я намекал, применимо исключительно к аналоговым моделям.

Можно создать дискретный элемент, который тоже будет генерировать. В конце концов я это делаю программно: выбрасываю из ЧЯ микросхему И-НЕ и вставляю туда свой компьютер и все - пошла генерация. А кто знает, что там внутри ЧЯ, если он "законопачен"? ;)

В цифровой моделе Вы никогда не узнаете реального ответа - загенерит/не загенерит, так как задержка это условность, не учитывающая реальных пороговых напряжений, паразитов.

Но я же узнаю... ;) Я даже открою "секрет". На проблемы с триггером я вышел исключительно столкнувшись с цифровыми моделями (автоматами). А уж потом взял в руки паяльник. Точнее я его и раньше держал...

Точно так же - модель на основе КА. Такая модель может показать генерацию единиц и нулей

В том-то и дело, что показывает. И из цифровой модели выходило, что тригер должен генерировать. Но он не генерировал. Для меня это было загадкой до тех пор пока я не внил (изучая VHDL), что причина в типе задержек. У меня в модели были транспортные задерки, а потому триггер всегда генерировал. Когда я узнал, что есть еще инерционные задерки, сделал ее модель, то все стало "тип-топ". При одинаковых задержках генерирует при разных может лишь дернуться, но не генерировать.

, а правильная, учитывающая все нюансы, в том числе сдвиг фазы в системе на тех частотах, на кторох коэфф. передачи >1, показать генерацию синусоиды, или наоборот, вход в устойчивый режим (усиления) с установлением выхода в некую среднюю точку между питанием и землей. Я естественно рассматриваю электрические (и аналогичные) схемы, где возможны состояния, отличные от 0 и 1. Тот-же воздух, клапан можно и не до конца открыть.

По-моему есть уровни логического и вентильного проектирования. Я все время остаюсь на уровне логического, а Вы, как мне кажется, - вентильного. На логическом нет ни АЧХ ни ФЧХ. Там импульс идеальной прямоугольной формы. Ключ (транзисторный) идеально передает сигнал (с какой-то задержкой) и не нарушает при этом идеальность фронтов. И думаю, что до какой-то частоты (дискретизации) все это справедливо.

Про задержку. Что такое задержка? Нужно определение. Ну естественно, это производная фазового сдвига по частоте. Задержка на каждой частоте у элемента может быть своя, и обычно так оно и есть.

Задержка - это и есть задержка фронта импульса на какое-то время. На всех (рабочих) частотах.

Ну нельзя сделать аналоговый элемент с линейной ФЧХ вплоть до бесконечности по частоте. Природа так устроена.

Ну да. Так вот там где ФЧХ линейна там мы и "пашем";) Выше частота - ни шагу!

Посему можно предложить такие модель, чтобы охватить больше вариантов.

- ключ, который имеет сопротивление в открытом состоянии, сопротивление в закрытом, скорость открытия/закрытия и емкость входа (такая условная, показывающая сколько на вход должно поступить/уйти чего-то несущего, чтобы ключ начал открываться или закрываться), предполагая что сопротивление меняется линейно в процессе открытия/закрытия.

В данном случае для меня ключ как контакты реле: сопротивление - 0 и "бесконечность" и время на срабатывание контакта.

- линию передачи (условно согласованную), характеризующуюся сопротивлением и задержкой.

Линия передачи - "мгновенная". Они просто линия и ни чего более.

Все. Из этого в симуляторе собирать разные логические схемы и их анализировать. Формально. Не привязываясь к тому, что "носитель" это электрический ток. (не напряжение! а ток! Именно он перезаряжает емкости ключей! и именно он определяет работу логической схемы.) Это может быть любой [по]ток. Того-же воздуха.

Я бы хотел так как сказал. Уровень 0,1, задержка - в единицах тактов (так - любое реальное значение времени, но не равное нулю). Линии передачи/соединения - идельны: сопротивление - 0, задержка - 0, о сопротивлении, емкостях и т.п. и речи нет ;)

Про элемент И-НЕ. Если соединить вход с выходом, и на другой вход подать 1, получим грубо говоря элемент НЕ со 100% ООС.

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

Что мы имеем. Элемент НЕ это инвертирующий усилитель. Проанализируем его АЧХ и ФЧХ. АЧХ (я это просто знаю) будет спадать с частотой. Начиная от довольно большого усиления, кончая усилением, меньшим единицы. Нас интересует точка, где КУ=1. Смотрим там на ФЧХ. Если сдвиг фазы перешкалил за 180 град., то генерить будет. Если не перешкалил, встанет в устойчивое состояние с полпитанием на выходе. В терминах анализа усилителей разница между 180град. и фазой в точке с КУ=1 называется запас по фазе. И определяет устойчивость усилителя.

Возможно. Но уже на моем уровне допущений эта схема должна генерировать. На цифровом. И тут только одна проблема - перейдет ли эта генерация на физический элемент, т.к. частота будет большая и тут полезут все эти АЧХ/ФЧХ и все "паразитное" ;)

А вот Вам задачка - берем элемент НЕ. Соединяем выход с входом через резистор. Через другой резистор подаем на вход внешний сигнал. Что имеем? Цифровая модель ни в жизни не даст ответа. А в реальности такой усилитель используется, и довольно широко. Например в схемах кварцевого генератора.

Цифровую модель всегда можно создать. Вы же моделируете не на аналоговой технике?

Другое дело цифровую модель чего - идеального логического элемента или созданного на его базе усилителя. Я подозреваю, что резисторами (делителем) мы уже сместили рабочую точку транзистора и он из ключа стал усилителем. Но если его вернуть в ключевой режим, как до этого, когда он был элементом И-НЕ (кстати, превратить И-НЕ в НЕ можно "скрутив" его входы в узелок ;), то все рассуждения останутся прежними.

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

Все это понятно. На вентильном уровне. К идеальному элементу (на логическом уровне) паразиты как- то ... (видимо зараза к заразе не пристает ;)

Про RS-триггер с "разрывом". Одно его реальное применение - это блоки ОЗУ. Очень грубо говоря, при считывании подключаем ему на вход конденсатор, на котором хранится значение бита ОЗУ. Заряд (или его отсутствие) перебрасывает триггер в какую-то сторону, а потом обратная связь дозаряжает этот кондер в нужную сторону, осуществляя регенерацию. Потом отключаем ключ, значение бита сохраняется. Второе реальное применение "bus holder". Когда на шине есть кто-то активный, значение шины определяется им. Когда все отвалились, значение шины остается таким, каким его задал последний активный. Ну и т.д.

Тут я Вам верю просто на слово ;)

Самое главное, что это все таки триггер. Который может хранить, может быть сброшен и установлен.

Так оно и есть

Кто сказал, что у триггера должно быть два входа :)

И с этим согласен ;)

С вашей, логической, точки зрения, он должен управляться внешними воздействиям, а через сколько входов они туда попадут, это вопрос второй. Именно рассмотрение его как автомата вполне справедливо. У него два состояния - один и ноль. И три воздействия - ноль, один, обрыв.

Вот насчет трех воздействий - пока воздержусь... Не знаю куда "уложить" третье. Ведь до этого была двоичная логика. Тут надо вводить или троичную или ... игнорировать, ну, может, даже моделировать...

Соответственно из каждого состояния три перехода. Два в себя, один в соседа.

Насчет в соседа - тоже... ? Уж если у автомата есть переходы, то только в себя. Других автоматов я не знаю.

Самое главное - у этого триггера нет запрещенного состояния!

А вот тут давайте смотреть. Если рассматривать и снимать сигналы с обоих элементов (как у обычного RS-триггера), то запрещенные состояния есть. Кстати, такое парное кодирование сигналов, кажется, используется в схемотехнике, которая расчитана на надежное функционирование.

Так вот. Моя цифровая модель показывает, что этого триггера не будет генерации, но будет даже на одно запрещенное состояние больше. Например, из 01 в 10 он будет проходить через состояние 00 (запрещенное), а из 10 в 01 - через 11 (второе запрещенное). Есть, кстати, и переходы из 00 в 11 и из 11 в 00, но это если мы будем очень активно "дергать" вход установки. Т.е. моя цифровая модель (из идеальных логических элементов, конечно) работала бы именно так. Думаю, так будет у реального элемента. Вот только переходы между 00 и 11 за счет переключения сигнала установки будет сделать сложно (нужна будет большая частота)

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


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

Locas, может поясните - зачем Вам такая упрощенная модель RS- триггера? Где она будет использоваться?

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


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

Locas, может поясните - зачем Вам такая упрощенная модель RS- триггера? Где она будет использоваться?

Могу.

Собственно проектированием цифровых схем я не занимаюсь. Хотя было время. Оттуда этот триггер и появился. Тем не менее, мне не часто, но приходится моделировать работу цифровых схем и тогда я использую свои наработки, которые я "таская за собой" ;) тестирую часто этой простой задачкой.

Мои "наработки" - это параллельное ядро, в котором все процессы автоматы. Я прото так программирую. Все. Раньше программировал железо, потом АСУ ТП, бугалтерию и все-все. Сейчас опять есть вариант возврата к железу (см. мои мольбы по поводу CodeWarrior).

Т.е. для меня сейчас RS-триггер это достаточно объективный тест моих средств на правильное моделирование параллелизма. Любого. И здесь цифровые схемы подходят больше всего. Ведь, каждый элемент - это параллельный процесс.

На RS-триггере я отточил и свою теорию. Точнее ее расширение, связанное с параллельными автоматами. И здесь я столнулся со странностями, что в нанешнем преподавании триггер дают в корне не правильно. Выше я писал по поводу ее таблицы истинности. Я знаю только один источник, где он рассмотрен близко к тому, как рассматриваю я.

RS-триггер и реальная система, на котрой я могу оценить справедливость своей параллельной модели. Если формальные результаты совпадают с реальными, то ... "что еще надо для хорошей жизни" ;) До последнего времени все совпадало кроме этой самой генерации. Одни ее отвергали напрочь, не поясняя при этом почему. Другие просто отмалчивались. А мой триггер ... упорно генерировал. Меня это тоже нервировало, пока я не разобрался, что есть разные типы задержек (почерпнул из VHDL). Теперь все "хоккей": я знаю почему он генерировал, знаю почему не генерировал, знаю когда может генерировать ;)

Собственно зачем я тогда затеял весь разговор т.к. все уже знаю? Во-первых, конечно хочется чтобы это знали и другие ;) Знали, что современное образование "вешает лапшу", говоря про запрещеные состояния, что триггно устанавливается в неопределенное состояние и т.д. и т.п. Т.к. знаю как все это опровергнуть на формальном уровне (т.е. математически).

Знаю, что триггером можно проверять любые другие средства моделирования цифровых схем на уровне логики (вентили - это все же отдельная история). И вот здесь мне хотелось бы собрать информацию, о его моделировании в других системах. Т.е. четко знать где он генерирует, а где, возможно, и нет. Собственно в данной ситуации это, может быть, и есть основная цель затеянного разговора, т.к. лично я не могу такую работу сделать. Просто потому что не работаю с теми или иными средствами. Ну а тем, кто работает, надеюсь, не составит большого труда такою проверку - моделирование RS-триггера сделать. Т.е. примерно так, как это сделал SM. Только вот его результаты пока еще не очень меня устраивают. Во-первых, не нужен такой детальный уровень моделирования (транзисторный), во-вторых, - разнобой, как Вы видите в результах. То генерирует, то нет.

Причем он должен (или я так полагаю) генерировать в любой ситуации, если элементы его абсолютно одинаковы: в математических формулах нет "паразитных емкостей", "тепловых шумов" и т.п. Если их, конечно, не ввести туда сознательно (что и делал SM). Но так этого и не нужно делать. На том уровне, который обычно дается он в преподавании все ограничивается 0, 1 и задержка, которую обычно забывают, как забывают, что триггер - это КА, а не комбинационная схема. Это важно. Важно для понимания работы триггера.

И очень важно понимание триггера, как маленькой, но очень хитрой параллельной системы. Которая как дискретная и детерминированная система должна вести себя однозначно. Но обычно с программистами на эту тему говорить тяжело. Для них электроника, даже цифровая, - чума. Хотя вот недавно попалась на глаза очень интересная книжка Алгоритмы: проектировани и анализ. Она для програмистов. Там рассматриваются сортирующие сети и арифметические схемы. Но все это, так сказать, цифровые схемы без обратных связей. Там триггер не сделаешь. Но программистам, думаю, доказать это будет сложно. Если только не сунуть под нос триггер. Лучше если в форме модели. Лучше, если в разных системах моделирования. Тут чем больше независимых источников с одинаковыми результатами работы, тем больше доверия к этим результатам.

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

 

Вот так длинно о такой "короткой" схеме. Но на мой взгяд очень важной. Оттого и такое мое многословие... ;) Наверное, проще взять и смоделировать :) Вот об этом и мои просьбы к тем, кто это может сделать ... Сделать свой вклад в "науку о RS-триггере", а по большому счету - в науку о параллельных системах. Так как на мой вгляд в будущем программирование, когда станет истинно параллельным, во многом будет походить на проектирование цифровых схем. Собственно я так уже и работаю ;)

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


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

Locas, может поясните - зачем Вам такая упрощенная модель RS- триггера? Где она будет использоваться?

Могу.

Собственно проектированием цифровых схем я не занимаюсь. Хотя было время. Оттуда этот триггер и появился. Тем не менее, мне не часто, но приходится моделировать работу цифровых схем и тогда я использую свои наработки, которые я "таская за собой" ;) тестирую часто этой простой задачкой.

Мои "наработки" - это параллельное ядро, в котором все процессы автоматы. Я прото так программирую. Все. Раньше программировал железо, потом АСУ ТП, бугалтерию и все-все. Сейчас опять есть вариант возврата к железу (см. мои мольбы по поводу CodeWarrior).

Т.е. для меня сейчас RS-триггер это достаточно объективный тест моих средств на правильное моделирование параллелизма. Любого. И здесь цифровые схемы подходят больше всего. Ведь, каждый элемент - это параллельный процесс.

На RS-триггере я отточил и свою теорию. Точнее ее расширение, связанное с параллельными автоматами. И здесь я столнулся со странностями, что в нанешнем преподавании триггер дают в корне не правильно. Выше я писал по поводу ее таблицы истинности. Я знаю только один источник, где он рассмотрен близко к тому, как рассматриваю я.

RS-триггер и реальная система, на котрой я могу оценить справедливость своей параллельной модели. Если формальные результаты совпадают с реальными, то ... "что еще надо для хорошей жизни" ;) До последнего времени все совпадало кроме этой самой генерации. Одни ее отвергали напрочь, не поясняя при этом почему. Другие просто отмалчивались. А мой триггер ... упорно генерировал. Меня это тоже нервировало, пока я не разобрался, что есть разные типы задержек (почерпнул из VHDL). Теперь все "хоккей": я знаю почему он генерировал, знаю почему не генерировал, знаю когда может генерировать ;)

Собственно зачем я тогда затеял весь разговор т.к. все уже знаю? Во-первых, конечно хочется чтобы это знали и другие ;) Знали, что современное образование "вешает лапшу", говоря про запрещеные состояния, что триггно устанавливается в неопределенное состояние и т.д. и т.п. Т.к. знаю как все это опровергнуть на формальном уровне (т.е. математически).

Знаю, что триггером можно проверять любые другие средства моделирования цифровых схем на уровне логики (вентили - это все же отдельная история). И вот здесь мне хотелось бы собрать информацию, о его моделировании в других системах. Т.е. четко знать где он генерирует, а где, возможно, и нет. Собственно в данной ситуации это, может быть, и есть основная цель затеянного разговора, т.к. лично я не могу такую работу сделать. Просто потому что не работаю с теми или иными средствами. Ну а тем, кто работает, надеюсь, не составит большого труда такою проверку - моделирование RS-триггера сделать. Т.е. примерно так, как это сделал SM. Только вот его результаты пока еще не очень меня устраивают. Во-первых, не нужен такой детальный уровень моделирования (транзисторный), во-вторых, - разнобой, как Вы видите в результах. То генерирует, то нет.

Причем он должен (или я так полагаю) генерировать в любой ситуации, если элементы его абсолютно одинаковы: в математических формулах нет "паразитных емкостей", "тепловых шумов" и т.п. Если их, конечно, не ввести туда сознательно (что и делал SM). Но так этого и не нужно делать. На том уровне, который обычно дается он в преподавании все ограничивается 0, 1 и задержка, которую обычно забывают, как забывают, что триггер - это КА, а не комбинационная схема. Это важно. Важно для понимания работы триггера.

И очень важно понимание триггера, как маленькой, но очень хитрой параллельной системы. Которая как дискретная и детерминированная система должна вести себя однозначно. Но обычно с программистами на эту тему говорить тяжело. Для них электроника, даже цифровая, - чума. Хотя вот недавно попалась на глаза очень интересная книжка Алгоритмы: проектировани и анализ. Она для програмистов. Там рассматриваются сортирующие сети и арифметические схемы. Но все это, так сказать, цифровые схемы без обратных связей. Там триггер не сделаешь. Но программистам, думаю, доказать это будет сложно. Если только не сунуть под нос триггер. Лучше если в форме модели. Лучше, если в разных системах моделирования. Тут чем больше независимых источников с одинаковыми результатами работы, тем больше доверия к этим результатам.

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

 

Вот так длинно о такой "короткой" схеме. Но на мой взгяд очень важной. Оттого и такое мое многословие... ;) Наверное, проще взять и смоделировать :) Вот об этом и мои просьбы к тем, кто это может сделать ... Сделать свой вклад в "науку о RS-триггере", а по большому счету - в науку о параллельных системах. Так как на мой вгляд в будущем программирование, когда станет истинно параллельным, во многом будет походить на проектирование цифровых схем. Собственно я так уже и работаю ;)

 

А.А. Шалыто "Логическое управление. Методы аппаратной и программной реализации алгоритмов."

 

Если пороетесь в этой книжке, то возможно найдете ответы на свои вопросы.

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


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

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

 

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

 

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

 

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

 

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

 

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

 

Еще раз повторю. Есть давно и не мной сформулированный критерий генерации в системе с ОС. Если он выполнен - загенерит. Если нет - не загенерит. А если в математических формулах, описывающих модель, нет паразитных емкостей и тепловых шумов, то это модель, не пригодная для моделирования данного процесса. А именно охвата триггера обратной связью. Такая модель не достаточна, она не описывает того, из-за чего возникает или не возникает генерация.

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


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

А.А. Шалыто "Логическое управление. Методы аппаратной и программной реализации алгоритмов."

 

Если пороетесь в этой книжке, то возможно найдете ответы на свои вопросы.

В этой не найду. Но найду в другой: "SWITCH-технология. Алгоритмизация и программирование задач логического управления" в 4.2. Функциональные схемы. (см. там также граф на рис. 4.23). Это близко к тому, как я представляю. Близко, но не точно.

Т.е. я знаю хорошо не только книги Шалыто, но и его самого. Как, кстати, и он меня ;)

 

Еще раз хочу повторить. Сейчас меня очень интересуют результаты моделирования RS-триггера в различных системах моделирования. И прежде всего испытания на генерацию. И сначала для идентичных элементов триггера, а потом для элементов с отличающимися задержками.

 

Безусловно, если всплывет что-то интересное типа триггера описанного SM, то и это очень интересно. Или доказательства типа того, что у Шалыто... Но основная цель все же сформулирована выше. Потому большая просьба к тем, кто занимается подобым моделированием, не отказать в помощи. Да и результаты такого тестирования, думаю, будут интересны не только мне ;)

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


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

В принципе, решение может быть простейшим - поставьте симулятор Modelsim или Active-HDL(несколько проще в освоении, с моей точки зрения).

И далее создавайте модификации RS триггера, с разной начинкой.

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


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

1). Про то, как моделирую я. ...

Вам постараюсь ответить завтра. Сейчас - валюсь. Да и заглянуть надо кой-куда ;)

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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