LINUX.ORG.RU

qucs-s: что я делаю не так?

 ,


0

1

cast @DarthVadimius.

Пытаюсь разобраться с тем что такое дельта-сигма модуляция и как она работает, чем отличается от дельта модуляции.

Хочу смоделировать её в qucs-s. Для этого мне нужен динамический D-триггер. Беру из палитры, запускаю - пишет что нельзя цифровые элементы вместе с аналоговыми использовать (по крайней мере я так прочитал). Ладно, пытаюсь собрать триггер из аналоговых элементов.

  1. Делаю NOR:
VDD - R -  MOSFET  -  MOSFET - GND
        |     |         |
       OUT   IN1       IN2

Проверяю симуляцией - работает.

  1. Делаю NOT:
VDD - R -  MOSFET - GND
        |     |
       OUT   IN

Проверяю симуляцией - работает.

  1. Делаю AND
  NOR - OUT
  | |
 /   \
NOT  NOT
 |    |
IN1  IN2

Симуляция падает: https://pastebin.com/sgPJZ4mw Если убрать одно из отрицений на входе - ещё и перед тем как упасть ещё и несколько секунд пытается симулировать. (с элементом NOT падает сразу, симуляция NOR и NOT работает быстро)

Я догадываюсь что я делаю какую-то ерунду, но не понимаю как сделать не ерунду.

★★★★★

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

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

Чуть перефразирую вопросы.

Вот то что хочу собрать: https://upload.wikimedia.org/wikipedia/commons/b/bc/Simple_Circuit_for_Delta-Sigma_Modulation.svg

Моя попытка сделать аналоговые логические элементы чтобы собрать из них D-триггер:

Скриншот схем: https://files.catbox.moe/wh1e6e.png
Архив со схемами: https://files.catbox.moe/d2tikt.zip

Вопросы:

  1. можно (и стоит ли?) собрать модулятор по первой ссылке в qucs-s? Если да, то как?
  2. Стоит ли пытаться собирать простейшие логические элементы из аналоговых компонентов, чтобы собирать из них более сложные логические элементы? Или это не будет работать, а если и будет, то будет тормозить?
  3. Как читать выхлоп ошибки ngspice?
  4. А родной движок оригинального qucs может симулировать digital+analog?
Tanger ★★★★★
() автор топика

Пытаюсь разобраться с тем что такое дельта-сигма модуляция и как она работает, чем отличается от дельта модуляции.

Для этого симулятор не нужен: «… схема ДСМ отличается от ДМ положением интегратора на передающей стороне и его отсутствием на приёмной» ©.

quickquest ★★★★★
()

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

Bad_ptr ★★★★★
()
Ответ на: комментарий от Tanger

Скриншот схем: https://files.catbox.moe/wh1e6e.png

По ссылкам у меня почему-то connection timed out

можно (и стоит ли?) собрать модулятор по первой ссылке в qucs-s?

Моделирование цифровых компонентов в аналоговом режиме добавили в Ngspice недавно, и оно не очень хорошо протестировано. По идее должно работать если добавить резисторы между логическими элементами. Выход и вход идеального логического элемента в Ngspice по-моему представляется источниками напряжения. Нужно добавить выходные сопротивления. Точно не помню как в Ngspice сделана модель. Для D-триггера аналоговая модель есть. Подробнее см. тут: https://github.com/ra3xdh/qucs_s/pull/262 К сожалению лучшей документации нет.

Как читать выхлоп ошибки ngspice?

Ошибки у Ngspice очень тяжело читаемые. Я сам не всегда могу понять, что он хочет. Раньше была вообще одна универсальная ошибка на всё «no plot no print». Ошибка time step too small означает, ошибку сходимости. Обычно это где-то появился бесконечный ток, бесконечное сопротивление и т.п.

А родной движок оригинального qucs может симулировать digital+analog?

Может, но плохо и медленно. Там была ситуация ещё хуже. При моделировании во временной области могла зависнуть схема на 3 транзисторах. Qucsator изначально создавался для моделирования СВЧ компонентов в частотной области. Переходные процессы он считает очень плохо.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

По ссылкам у меня почему-то connection timed out

Перезагрузил:

  1. https://0x0.st/HnFI.png
  2. https://0x0.st/HnFE.zip

Подробнее см. тут: https://github.com/ra3xdh/qucs_s/pull/262 К сожалению лучшей документации нет.

Ага, изучу. Спасибо.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

Перезагрузил:

В схемах идеальные транзисторы. Такое в общем случае может не работать. Требуются транзисторы, для которых параметры экстрагированы согласно техпроцессу. Например https://cmosedu.com/cmos1/cmosedu_models.txt Ну и вообще советую ресурс по моделированию ИМС: https://cmosedu.com

Также время нарастания импульсов 1нс, а длительность моделирования 10мс. Симулятор пытается всё рассчитывать с шагом 1 нс и зависает. Нужно выбирать сопоставимое время нарастания и длительность импульсов. Например 1мс/1мкс.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

на транзисторах одного типа

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

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

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

С дополнительными «хитростями»: N-канальный полевик в верхнем ключе ©.
Но для симулятора я бы поставил классический КМОП.

quickquest ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)