• Может кто знает приложения Windows для разработки интегральных микросхем?

    @atereffigies
    Electric VLSI Design System -- она бесплатна.
    Ответ написан
    Комментировать
  • Можете подсобите с описанием схемы с управляющим источником тока?

    @atereffigies
    Эх. Вы бы сперва разобрались с более простой схемой, а уже потом говорили, что вам подходит. Я за вами наблюдаю уже достаточно давно, и в упор не понимаю, почему вы не хотите разбираться в сути, а ищите готовое решение...
    Налицо непонимание работы ОУ в принципе и закона Ома.
    Схема эта ничем по принципу работы не отличается от той, что приводят в учебниках: https://tinyurl.com/2yahhns6
    636bcda3a2678028702628.png

    Каков самый главный принцип работы ОУ? Не знаете. А звучит он так -- ОУ пытается ВЫРОВНЯТЬ потенциал на своих входах посредством ОТРИЦАТЕЛЬНОЙ ОБРАТНОЙ СВЯЗИ (ООС). Это значит, что если у вас есть петля ООС и вы, скажем, подали на вход "+" 1В, то посредством этой самой ООС операционный усилитель на своём выходе выставит такое напряжение, при котором на входе "-" тоже будет 1 В.
    Это всё, что нужно знать о работе ОУ.
    Возвращаемся к схеме. Если на входе "+" будет 1 В, и мы видим что ООС есть (Выход ОУ - транзистор - токосъёмный резистор - вход "-"), это значит, что на входе "-" так же будет 1 В.
    Что из этого следует?
    А то, что через резистор будет протекать такой ток, который создаст падение напряжения на нём в 1 В.
    А это значит, что транзистор открыт так, что пропускает через себя именно такой ток.
    А это уже значит, что ОУ подаёт на затвор транзистора такое напряжение, при котором транзистор открывается именно так. Ведь цель ОУ -- сделать потенциал на входе "-" равным потенциалу входа "+".
    Вот это и есть принцип работы стабилизатора (источника) тока на ОУ.
    Нагрузка же включается в цепь стока (коллектора), и стоит понимать, что она будет не заземлена -- у вас это разъём ХР2.
    На вашей схеме явная ошибка -- диод VD2 анодом подключен к стоку транзистора, хотя должен быть подключен к плюсу источника питания.
    Разъём ХР3 вам нужен, если вы хотите контролировать ток при помощи АЦП, например, и вам надо знать его текущее значение.
    Схемы не с небес приходят, их делают люди под конкретную задачу и искать схему, которая вам подойдет, не разбираясь в вопросе -- глупо.
    Что вы должны знать при разработке такой схемы?
    1. максимальный ток в нагрузке;
    2. диапазон управляемых напряжений;
    3. максимальное падение напряжения на нагрузке и напряжение питания;
    4. диапазон управляемых напряжений;
    5. режим работы схемы (перменный или постоянный);
    6. требуемые точностные характеристики схемы;

    Зная эти условия, вы должны найти компромисс. Если у вас ток, скажем 10 А, а вы выбрали токосъемный резистор 1 Ом, то это явно перебор. Ведь при таком токе, на нём будет падать 10 В, а рассеиваемая мощность будет 100 Вт!
    Вы должны исходить из мощности токосъёмника. Скажем, если допустимо использовать резистор мощностью 1 Вт, то учитывая некоторый запас, можно прикинуть его номинал -- например 5 мОм. При токе в 10 А на нём будет падать 50 мВ. Это означает, что сигнал на входе у вас должен быть от 0 до 50 мВ.
    Теперь вы переходите к следующему шагу -- согласованию управляющего сигнала.
    Допустим, вы хотите управлять источником тока с ЦАПа. При этом, знаете, что выходное напряжение ЦАП от 0 до 3 В.
    Для этого вы подбираете номиналы делителя напряжения на входе, чтобы из 3 В на входе схемы получалось 50 мВ: https://tinyurl.com/2689aufo
    636bd6e536227242670579.png
    Разобравшись с этим, вы должны прикинуть, хватит ли вам напряжения питания. Для этого вы должны знать падение напряжения на нагрузке. Например, пусть оно будет 2 В.
    Чтобы прикинуть оптимальное напряжение питания, вам нужно сложить максимальное падение на токосъемном резисторе, падение напряжения на полевике при полностью открытом канале (+ некоторый запас, т.к. полевик от нагрева проводит хуже) и плюс то самое падение на нагрузке. Сопротивление канала транзистора можно посмотреть в даташите. Я возьму от балды для примера -- 10 мОм, с запасом в 1,5.
    Итак, при токе в 10 А, на резисторе упадёт 50 мВ, на транзисторе упадёт 0,01 Ом * 1,5 * 10 А = 150 мВ и на самой нагрузке 2 В, итого: 0,05 + 0,15 + 2 = 2,2 В. Т. е. оптимально было бы для нашего примера, если бы на плюсовой вывод нагрузки подавалось около 2,2 В или чуть выше.
    Здесь нужно понимать, что бОльшее напряжение питания вызовет излишнее падение на транзисторе, из-за чего он будет перегреваться, а меньшее напряжение питания не позволит на полную "раскачать" нагрузку.
    Это только один конкретный случай я описал, но суть та же -- вы должны понимать, что делаете.
    В приведённой вами схеме есть еще один недостаток -- отсутствие каких-либо цепей, препятствующий самовозбуждению схемы. Ведь у вас в цепи ООС присутствует ОУ, который вносит свою задержку. Пока по всей цепи ООС дойдет сигнал с выхода на вход "-" верхнего ОУ, условия уже поменяются, и ОУ снова начнёт изменять значение на выходе, и сигнал по ветви ООС опять будет "устаревшим" -- схема самовозбудится, т.к. ОУ всегда будет пытаться выровнять потенциалы и всегда будет некоторый момент запаздывания. Поэтому я бы сделал некоторую частотную коррекцию схемы в своём примере: https://tinyurl.com/262s8e84
    636bdb2b1e713710481088.png
    В общем, появилась RC-цепь между выходом и токосъёмным резистором. Номиналы можете взять примерно такие же, при условии, что режим работы схемы постоянный, а не переменный. С переменным придётся подбирать номиналы RC-цепочки и выбирать ОУ с достаточно быстрой скоростью нарастания выходного сигнала, естественно опираясь на нужное быстродействие.
    Даллее следует учесть момент входного напряжения смещения ОУ. Если критично, чтобы в нагрузке не протекал ток, когда на управляющем входе 0 В, то нужно добавить некотрую коррекцию напряжения смещения (как известно, напряжение смещения можно представить как источник напряжения, включенный последовательно с входом ОУ): https://tinyurl.com/2bl87tus
    636bddc8eee92221394194.png
    Здесь я добавил источник 5 мВ, чтобы сымитировать напряжение смещения ОУ и это привело к тому, что при 0 В на входе схемы в нагрузке протекает ток 1 А! А это недопустимо.
    Для коррекции нужно добавить некоторое смещение и на вход "-": https://tinyurl.com/2cq64z7t
    636bdef384024562775879.png
    Мне пришлось подключить резистор между 5 В и входом "-", чтобы добиться незначительного тока в нагрузке. Более того, пришось подгонять номинал верхнего резистора делителя напряжения (59 кОм -> 58 кОм), чтобы максимальный ток в нагрузке мог снова достигать 10 А.
    Т. е. столько нюансов, а вы хотите без понимания сути взять готовое и чтобы работало. И это ещё далеко не всё.
    Можете взять за пример приведенную мной в итоге схему и подогнать под свои условия. И не стоит ставить ОУ в ООС, если вы не понимаете что делаете, иначе заколебётесь глюки ловить.
    Дальше уже расписывать не буду, т. к. пошёл спать. Доброй ночи.
    Ответ написан
  • Как работает сканирующая цепочка в цифровых схемах?

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

    Опять же, в примере сказано, что для 32-разрядного счётчика вам потребуется прогнать его до конца, а это 2 в степени 32, т.е. более 4 миллиардов тактов надо на полный прогон. Но в тестовом режиме, вы можете полностью перегрузить счётчик за 32 такта.
    Ответ написан
    Комментировать
  • Я правильно понимаю?

    @atereffigies
    Для построения в базисе И-НЕ нужно выделять термы с единичками:
    63161f6fa50f5304605272.jpeg
    Ответ написан
    22 комментария
  • Как правильно записывать логическое выражение по таблице истиности?

    @atereffigies
    Это не таблица истинности, это таблица переходов-выходов для конечного автомата.
    Ответ написан
    3 комментария
  • Каким образом физически устроена модель памяти? И физическая реализация простых логических операций?

    @atereffigies
    1. ПЗУ и ОЗУ бывают разных типов, и хранится информация там по-разному. Статическое ОЗУ, например, это матрица, состоящая из D-защёлок. Динамическое ОЗУ хранит инфу в емкости затвора транзистора, как и память типа ФЛЕШ, но флеш устроена по-другому. Классические ПЗУ вообще просто имеют матрицу соединений, которые пережигаются однократно при прошивке.
    2. 0 и 1 -- это не про ток, а про напряжение. Обычно, низкий уровень напряжения это нуль, а высокий -- единица. Синусоиды -- это вообще аналоговый сигнал, при чем здесь логика?
    3. Если инфа зашита жестко в кремнии, то она просуществует долго. Если это флеш-память, то через какое-то время она станет нечитаемой.
    4. Используется где?
    5. Если вы не знаете, как работает обычный транзистор, то не имеет смысла задавать подобные вопросы, иначе отвечающему придётся вас погрузить в изучение электроники с нуля. О каких переключателях идёт речь? О мультиплексорах? Об обычных ключевых схемах? О выключателях света на стенах квартир? О чём?) Покажите схему и ткните пальцем с вопросом "что это?", так будет проще.
    Ответ написан
    Комментировать
  • Алгебра логики. Логические функции.?

    @atereffigies
    Кхм, просто посмотрите симуляцию исходного уравнения и приведённого уровнения к базису ИЛИ-НЕ: https://tinyurl.com/2g8jwdh5
    Возможно, это вам поможет понять.
    Ответ написан
    Комментировать
  • Как flatpack-приложению разрешить доступ к каталогу /media?

    @atereffigies Автор вопроса
    Всё оказалось достаточно просто, и как всегда -- разобрался сам.
    Мне нужно было дать разрешение эмулятору Kega Fusion, для этого я проделал вот что:
    Вывел все flatpack-пакеты командой "flatpak list":
    ~$ flatpak list
    Имя               ID Приложения                 Версия  Ветка      Источник             Тип установки
    Kega Fusion       com.carpeludum.KegaFusion     3.63x   stable     flathub              system
    Freedesktop Plat… org.freedesktop.Platform      21.08.9 21.08      flathub              system
    i386              …desktop.Platform.Compat.i386         21.08      flathub              system
    Mesa              …edesktop.Platform.GL.default 21.3.3  21.08      flathub              system
    default           …esktop.Platform.GL32.default         21.08      flathub              system
    ...


    Затем вбил команду:
    sudo flatpak override --filesystem=host:rw com.carpeludum.KegaFusion

    где "--filesystem=host:rw" -- разрешение на чтение и запись ко всей файловой системе, "com.carpeludum.KegaFusion" -- ID приложения.
    Инфа взята отсюда: https://www.altlinux.org/Flatpak
    и отсюда: https://docs.flatpak.org/en/latest/sandbox-permiss...
    Ответ написан
    Комментировать
  • Как понять D защелку с буферами?

    @atereffigies
    Короче, до меня дошло, почему, возможно, в книге так написано. В оригинале написано:
    A compact D latch can be constructed from single transmission gate, аs show in Figure 3.12.

    Наши надмозги перевели это так:
    Как показано на Рис. 3.12 (а), компактная D-защёлка может быть
    спроектирована с использованием одного проходного ключа.


    В оригинале говорится, про ключ, показанный на рисунке 3.12, а в переводе говорится, что защёлка показана на рис. 3.12 -- отсюда и путаница.
    Имеется ввиду, что с применением одного ключа в принципе можно сделать защёлку, которая бы выглядела вот так:
    62a5662cc8556803377752.png
    Но, как и говорится по тексту, она ненадёжна, поэтому на вход и выход намазали дополнительные буферы для помехоустойчивости.
    Ответ написан
  • Какой микроконтроллер выдержит напряжение 24v и будет исправно ШИМить?

    @atereffigies
    НИКАКОЙ.
    То, что Вы хотите сделать -- делать нужно не так.
    Вам надо:
    1. Блок питания на 24 В и достаточной мощности;
    2. Понижающий преобразователь из 24 в 5 (или 24 в 3,3, если будите брайть не ###дуину, а, например, STM32);
    3. Микроконтроллер (на ваш вкус и цвет);
    4. Его величество -- ПОЛЕВОЙ ТРАНЗИСТОР. Брать надо те полевики, которые способны открываться от логических уровней. Ну и, естественно, брать надо на подходящий ток с запасом.

    Частота ШИМа у вас должна быть небольшая, но лучше делать чуть больше верхней границы слышимости (>22 кГц), вполне хватит 30 кГц.

    В итоге должно быть как-то так:
    62886375587a0302942838.png
    https://tinyurl.com/y53l34su
    Ответ написан
    6 комментариев
  • Как реализовать исключающее или на мультиплексоре?

    @atereffigies
    Это обычный сдвоенный мультиплексор со стробируемым выходом.
    Для реализации любой логической функции на мультиплексоре нужно задать таблицу истинности этой функции на входах данных, а адресные входа будут входами функции.
    Если вообще для самых маленьких, то для исключающего или нужно подать на входа 6, 5, 4, 3 комбинацию 0, 1, 1, 0 соответственно. Входа 2 и 14 будут входами функции XOR, а вывод 7 -- будет выходом функции.
    Я сперва это написал, но потом увидел, что у вас на схеме как раз-таки так и сделано -- на входа 3 и 6 подан нуль, а на входа 5 и 4 подана единица, в чём тогда вопрос заключается?)
    Ответ написан
    5 комментариев
  • Нужно найти транзистор или аналог?

    @atereffigies
    Это тиристор.
    BTA16-800B
    Ответ написан
    Комментировать
  • Как к управляющему транзистором напряжению, добавить напряжение открытия?

    @atereffigies
    Как я понял, вы хотите, чтобы транзистор не переходил в режим полного закрытия?
    Просто подключите резистор между затвором и плюсом питания -- так вы зададите смещение вверх (Пример https://tinyurl.com/y5t9mw9k).
    Только если отключится источник сигнала, транзистор откроется полностью.
    Но вообще, лучше бы вы сказали, с какой целью вам это надо.
    Ответ написан
    Комментировать
  • Как собрать принципиальную схему имея структурную?

    @atereffigies
    На структурной схеме отображаются узлы. Вы же их сами и расписали.
    Узел -- это некая самодостаточная часть схемы, у которой, как правило, есть вход и выход.
    Вот например, есть у вас узел под названием "управляемый источник тока", что вы должны о нем знать?
    Навскидку, вы должны знать его входные и выходные параметры. Входными будут: тип сигнала -- аналоговый или цифровой, если аналоговый, то что это -- ток или напряжение и какой диапазон; если цифровой, то разрядность, логические уровни, частота передачи. Выходными будут: диапазон токов, выдаваемых на нагрузку, режим работы -- постоянный/переменный (импульсный), заземлённая или незаземлённая нагрузка. Исходя из этого вы выбираете, какая схема вам больше подходит. Например, схема может быть сделана как на нескольких транзисторах, так и на ОУ или линейном стабилизаторе.
    И вот так по всем узлам проходитесь. Некоторые могут состоять из одного комопнента/микросхемы, некоторые могут быть очень сложными.
    И еще важно учитывать погрешность (но для курсача, думаю -- пофиг).
    Ответ написан
    2 комментария
  • Что будет если у сумматора отключить элемент "И"(DD3) и замкнем переносы P и C?

    @atereffigies
    Замыкая выход переноса на вход переноса Вы создадите петлю обратной связи)
    Сумматор -- это комбинаторный элемент, т. е. состояние его выходов зависит только лишь от состояния входов.
    Вводя петлю обратной связи, вы образуете в нем триггер, т. е. это уже будет последовательностное устройство (устройство с памятью).
    Вот, посмотрите пример в онлайн-симуляторе состоящий из однобитного сумматора с такой петлёй обратной связи: https://tinyurl.com/ybptoom7.
    Обратите внимание на то, как меняется выход при наличии и отсутствии обратной связи. При наличии обратной связи выход переноса хранит состояние единицы до тех пор, пока на обоих входах данных не будет нуля, но при отсутсвии её (обратной свзяи) -- выход переноса сразу переходит в нуль, если на входах только лишь одна единица.
    Ответ написан
    Комментировать
  • Как определить к какому типу принадлежит демультиплексор? И как их отличать по схеме?

    @atereffigies
    О, это опять Вы со своими демультиплескорами)
    На самом деле, по конкретно этой схеме нельзя однозначно сказать, что это за демультиплексор.
    Но, скорее всего, он цифровой, т.к. на вход "Е" вы подаёте либо нолик, либо единичку -- т.е. дискретный (цифровой) сигнал.
    Если бы у вас на входе был аналоговый сигнал, то тогда можно было бы судить о том, что демультиплексор -- аналоговый.
    Ответ написан
    7 комментариев
  • Как определить по таблице истинности и схеме, какие логические функции присутствуют?

    @atereffigies
    Таблица истинности выражает одну логическую функцию, которую можно описать по-разному (совершенная дезъюнктивная нормальная форма или соврешенная конъюнктивная нормальная форма, например, или их смешные варианты).

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

    По самой таблице истинности структуру нельзя восстановить, если таблица не описывает какой-либо простейший логический элемент (и, или, не, и-не и т. д.).
    Нельзя восстановить структуру по той причине, что одну и ту же логическую функцию можно описать по-разному (как я уже сказал выше СДНФ, СКНФ и т. д.).

    Из таблицы истинности можно восстановить её функцию разными методами, один из распространённых и наглядных методов -- картами Карно. На первый взгляд выглядит как чёрная магия, но надо чуточку напрячь мозг -- и всё встаёт на свои места. Если надо, могу объяснить, как им пользоваться.
    Ответ написан
  • Как в EPM240 записать UFM и потом считывать в Verilog?

    @atereffigies
    Короч, надо открыть IP catalog (либо Mega Wizard Plug-in Manager в старых версиях Quartus), нати подраздел "On Chip Memory" и выбрать ALTUFM.
    616bcbcd6761f124036421.png
    Дай название модулю.
    616bcc09304ff978963057.png
    Ну и дальше настраивай под свои нужды.
    616bcc7a2e361264517095.png

    Обращаться к созданному модулю так же, как и к обычным модулям -- по имени, которое ты ему даёшь в самом начале.
    Ответ написан
    Комментировать
  • Можно ли как-то в ModelSim жестко прописать подключаемую библиотеку?

    @atereffigies Автор вопроса
    Чертовщина какая-то! Вот который вопрос сам задаю, и сам же на него отвечаю!
    Надо-то всего лишь-то перейти Project -> Add to Project -> Simulation Configuration:
    616a787f91ac7348803865.png
    Настроить как надо и всё!
    А открывать симуляцию просто по двойному клику созданного файла настройки симуляции.
    Ответ написан
    Комментировать