Регистр в 1 бит - простейшая ячейка памяти

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ม.ค. 2025

ความคิดเห็น • 16

  • @АнтонКузнецов-ы3т
    @АнтонКузнецов-ы3т 3 ปีที่แล้ว +4

    Смотрю на скорости 1.5, 1.75, но все очень понятно, прошляпил часть цифровой схемотехники на дистанте )

  • @GeeksSmartHome
    @GeeksSmartHome 3 ปีที่แล้ว +2

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

    • @BitFlipChannel
      @BitFlipChannel  3 ปีที่แล้ว +1

      Здравствуйте. Планы есть составить такой список, но пока руки не дошли. В каждом ролике я называю микросхемы, которые использую. Поэтому составить такой список можно в процессе просмотра роликов по порядку. Остальные компоненты, такие, как например светодиоды, резисторы - для них конкретных моделей не называю. Главное, чтобы по напряжению подходили и по силе тока.

  • @ГомункулСтарший
    @ГомункулСтарший 8 หลายเดือนก่อน +1

    А зачем нам 2 разрешения на запись? И Load, и Clock?

  • @hunter-speexz
    @hunter-speexz 2 ปีที่แล้ว

    Обнаружил недочёт данной схемы с помощью Proteus (он выводит ошибку "Logic race condition detected during transient analysis."):
    Если CLK=1, X=1 и LOAD переводится из 1 в 0, то возникает логическая гонка:
    После перевода LOAD из 1 в 0 на входе логического вентиля ИЛИ могут возникнуть два нуля (скорее всего так и будет), что в итоге приведёт к тому, что Q станет равен нулю.
    Использовал обычный статический D-триггер. У автора динамический D-триггер, из-за чего ошибка не проявляется.

  • @GeeksSmartHome
    @GeeksSmartHome 3 ปีที่แล้ว +2

    Как угодно изгалялся, чтобы реализовать функционал запоминания значения в ячейке триггера, но если отпустить кнопку load, то значение обнуляется... Я даже отдельно реализовал схему с таймером 555 в Proteus, думая, что может что-то не так с такотовым сигналом в Proteus, даже в этом случае всё происходит аналогичным образом. Где я рукожоп или в Proteus такая симуляция?

    • @hunter-speexz
      @hunter-speexz 2 ปีที่แล้ว +2

      Странно, что у вас вообще 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.

    • @gnot7900
      @gnot7900 4 หลายเดือนก่อน

      @@hunter-speexzДействительно автор замудрил. Идентичный функционал получается с помощью одного «И». Теперь гадаю откуда автор взял такую странную схему

  • @UtkinTech
    @UtkinTech 4 ปีที่แล้ว +2

    А почему не проще сделать И между разрешением записи и часами? Я, конечно, понимаю что вообще не очень хорошо в линию часов вставлять элементы, но может есть более глубокий смысл

    • @BitFlipChannel
      @BitFlipChannel  4 ปีที่แล้ว

      Можно и так, но мне кажется, что логичнее держать эти два входа отдельно: данные отдельно, таймер отдельно.

    • @alexator22
      @alexator22 4 ปีที่แล้ว

      Составил виртуально:
      Вход 1 постоянный и вход пользователя с названием "стереть" оба заходят на компонент "неили".
      Отдельные (третий) вход с названием "записать" ведёт на компонент "или"
      Выход из "неили" и "или" ведут на компонент "и"
      Выход из "и" ведёт на разделитель сигнала а оттуда один выход основной "результат" и второй выход возвращается на второй вход "или"
      Получается почти тоже самое но вроде проще и без Дтриггера
      Можешь проанализировать?

    • @UtkinTech
      @UtkinTech 4 ปีที่แล้ว

      @@alexator22 Во-первых очень сложно понять, что вы имеете в виду, лучше использовать для описания архитектуры специальные языки vhdl и verilog hdl, почитать про них можно в Хариссе например. А так я нарисовал и вообще говоря сомневаюсь, что получилась бистабильная ячейка. Я не понял, где вход для часов, а в этом вообще говоря весь смысл триггера

    • @alexator22
      @alexator22 4 ปีที่แล้ว

      @@UtkinTech я описал бит памяти. Если подадим ток на "записать" этот бит будет выдавать 1 даже если ток на "записать" не идёт. И обратное если подать ток на стереть то и бит будет выдавать 0

  • @hunter-speexz
    @hunter-speexz 2 ปีที่แล้ว

    Логика регистра простая:
    Если LOAD=1, то записываем значение X в D-триггер, иначе записываем значение Q в D-триггер.
    [Update] Из-за найденной ошибки в схеме логику нужно изменить на следующую:
    Если LOAD=0, то вместо CLK подаём 0, иначе подаём X на вход D.
    В итоге из схемы пропадут два логических вентиля: НЕ и ИЛИ, и останутся только 2 логических вентиля И.

  • @juliaryabchikova9593
    @juliaryabchikova9593 3 ปีที่แล้ว +1

    Забавно

  • @Пользователь-х1в5у
    @Пользователь-х1в5у ปีที่แล้ว

    Непонятно 🤔