Здравствуйте. С удовольствием смотрю Ваши уроки, сам веду блог и много информации в интернете просто не найти, а если и нахожу, то очень разрозненная и противоречивая, у Вас нашёл много ответов на свои вопросы. Хотел попросить, а Вы можете предоставить исчерпывающий список компонентов необходимых для того, чтобы повторить все Ваши уроки на практике?
Здравствуйте. Планы есть составить такой список, но пока руки не дошли. В каждом ролике я называю микросхемы, которые использую. Поэтому составить такой список можно в процессе просмотра роликов по порядку. Остальные компоненты, такие, как например светодиоды, резисторы - для них конкретных моделей не называю. Главное, чтобы по напряжению подходили и по силе тока.
Обнаружил недочёт данной схемы с помощью Proteus (он выводит ошибку "Logic race condition detected during transient analysis."): Если CLK=1, X=1 и LOAD переводится из 1 в 0, то возникает логическая гонка: После перевода LOAD из 1 в 0 на входе логического вентиля ИЛИ могут возникнуть два нуля (скорее всего так и будет), что в итоге приведёт к тому, что Q станет равен нулю. Использовал обычный статический D-триггер. У автора динамический D-триггер, из-за чего ошибка не проявляется.
Как угодно изгалялся, чтобы реализовать функционал запоминания значения в ячейке триггера, но если отпустить кнопку load, то значение обнуляется... Я даже отдельно реализовал схему с таймером 555 в Proteus, думая, что может что-то не так с такотовым сигналом в Proteus, даже в этом случае всё происходит аналогичным образом. Где я рукожоп или в Proteus такая симуляция?
Странно, что у вас вообще Proteus продолжает в этом случае работать. У меня он вообще ошибку выводит: "Logic race condition detected during transient analysis.", что имеется ввиду, что обнаружена логическая гонка при переводе LOAD из 1 в 0. Она происходит в тот момент, когда перевод LOAD из 1 в 0 происходит при X=1 и CLK=1. Дело в том, что в самой схеме однобитного регистра, предложенной автором, ошибка. [Update] Daniil Utkin дал подсказку. Можно поставить логический И между CLK и LOAD, и убрать лишние вентили: НЕ и ИЛИ. В итоге логика однобитного регистра будет следующая: Если LOAD=0, то вместо CLK подаём 0, иначе подаём X на вход D.
@@hunter-speexzДействительно автор замудрил. Идентичный функционал получается с помощью одного «И». Теперь гадаю откуда автор взял такую странную схему
А почему не проще сделать И между разрешением записи и часами? Я, конечно, понимаю что вообще не очень хорошо в линию часов вставлять элементы, но может есть более глубокий смысл
Составил виртуально: Вход 1 постоянный и вход пользователя с названием "стереть" оба заходят на компонент "неили". Отдельные (третий) вход с названием "записать" ведёт на компонент "или" Выход из "неили" и "или" ведут на компонент "и" Выход из "и" ведёт на разделитель сигнала а оттуда один выход основной "результат" и второй выход возвращается на второй вход "или" Получается почти тоже самое но вроде проще и без Дтриггера Можешь проанализировать?
@@alexator22 Во-первых очень сложно понять, что вы имеете в виду, лучше использовать для описания архитектуры специальные языки vhdl и verilog hdl, почитать про них можно в Хариссе например. А так я нарисовал и вообще говоря сомневаюсь, что получилась бистабильная ячейка. Я не понял, где вход для часов, а в этом вообще говоря весь смысл триггера
@@UtkinTech я описал бит памяти. Если подадим ток на "записать" этот бит будет выдавать 1 даже если ток на "записать" не идёт. И обратное если подать ток на стереть то и бит будет выдавать 0
Логика регистра простая: Если LOAD=1, то записываем значение X в D-триггер, иначе записываем значение Q в D-триггер. [Update] Из-за найденной ошибки в схеме логику нужно изменить на следующую: Если LOAD=0, то вместо CLK подаём 0, иначе подаём X на вход D. В итоге из схемы пропадут два логических вентиля: НЕ и ИЛИ, и останутся только 2 логических вентиля И.
Смотрю на скорости 1.5, 1.75, но все очень понятно, прошляпил часть цифровой схемотехники на дистанте )
Здравствуйте. С удовольствием смотрю Ваши уроки, сам веду блог и много информации в интернете просто не найти, а если и нахожу, то очень разрозненная и противоречивая, у Вас нашёл много ответов на свои вопросы. Хотел попросить, а Вы можете предоставить исчерпывающий список компонентов необходимых для того, чтобы повторить все Ваши уроки на практике?
Здравствуйте. Планы есть составить такой список, но пока руки не дошли. В каждом ролике я называю микросхемы, которые использую. Поэтому составить такой список можно в процессе просмотра роликов по порядку. Остальные компоненты, такие, как например светодиоды, резисторы - для них конкретных моделей не называю. Главное, чтобы по напряжению подходили и по силе тока.
А зачем нам 2 разрешения на запись? И Load, и Clock?
Обнаружил недочёт данной схемы с помощью Proteus (он выводит ошибку "Logic race condition detected during transient analysis."):
Если CLK=1, X=1 и LOAD переводится из 1 в 0, то возникает логическая гонка:
После перевода LOAD из 1 в 0 на входе логического вентиля ИЛИ могут возникнуть два нуля (скорее всего так и будет), что в итоге приведёт к тому, что Q станет равен нулю.
Использовал обычный статический D-триггер. У автора динамический D-триггер, из-за чего ошибка не проявляется.
Как угодно изгалялся, чтобы реализовать функционал запоминания значения в ячейке триггера, но если отпустить кнопку load, то значение обнуляется... Я даже отдельно реализовал схему с таймером 555 в Proteus, думая, что может что-то не так с такотовым сигналом в Proteus, даже в этом случае всё происходит аналогичным образом. Где я рукожоп или в Proteus такая симуляция?
Странно, что у вас вообще Proteus продолжает в этом случае работать. У меня он вообще ошибку выводит: "Logic race condition detected during transient analysis.", что имеется ввиду, что обнаружена логическая гонка при переводе LOAD из 1 в 0. Она происходит в тот момент, когда перевод LOAD из 1 в 0 происходит при X=1 и CLK=1.
Дело в том, что в самой схеме однобитного регистра, предложенной автором, ошибка.
[Update] Daniil Utkin дал подсказку. Можно поставить логический И между CLK и LOAD, и убрать лишние вентили: НЕ и ИЛИ.
В итоге логика однобитного регистра будет следующая:
Если LOAD=0, то вместо CLK подаём 0, иначе подаём X на вход D.
@@hunter-speexzДействительно автор замудрил. Идентичный функционал получается с помощью одного «И». Теперь гадаю откуда автор взял такую странную схему
А почему не проще сделать И между разрешением записи и часами? Я, конечно, понимаю что вообще не очень хорошо в линию часов вставлять элементы, но может есть более глубокий смысл
Можно и так, но мне кажется, что логичнее держать эти два входа отдельно: данные отдельно, таймер отдельно.
Составил виртуально:
Вход 1 постоянный и вход пользователя с названием "стереть" оба заходят на компонент "неили".
Отдельные (третий) вход с названием "записать" ведёт на компонент "или"
Выход из "неили" и "или" ведут на компонент "и"
Выход из "и" ведёт на разделитель сигнала а оттуда один выход основной "результат" и второй выход возвращается на второй вход "или"
Получается почти тоже самое но вроде проще и без Дтриггера
Можешь проанализировать?
@@alexator22 Во-первых очень сложно понять, что вы имеете в виду, лучше использовать для описания архитектуры специальные языки vhdl и verilog hdl, почитать про них можно в Хариссе например. А так я нарисовал и вообще говоря сомневаюсь, что получилась бистабильная ячейка. Я не понял, где вход для часов, а в этом вообще говоря весь смысл триггера
@@UtkinTech я описал бит памяти. Если подадим ток на "записать" этот бит будет выдавать 1 даже если ток на "записать" не идёт. И обратное если подать ток на стереть то и бит будет выдавать 0
Логика регистра простая:
Если LOAD=1, то записываем значение X в D-триггер, иначе записываем значение Q в D-триггер.
[Update] Из-за найденной ошибки в схеме логику нужно изменить на следующую:
Если LOAD=0, то вместо CLK подаём 0, иначе подаём X на вход D.
В итоге из схемы пропадут два логических вентиля: НЕ и ИЛИ, и останутся только 2 логических вентиля И.
Забавно
Непонятно 🤔