Разбор примера: цифровой бросок кубика
← Все статьи

Разбор примера: цифровой бросок кубика

5 мин

Свободно бегущий источник «случайных» чисел

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

Фиксация значения при нажатии кнопки

Подайте выходы SHIFT4 из LFSR на REG4 (регистр, загружающийся по каждому фронту такта) и тактируйте его импульсом детектора фронта, следящего за кнопкой с устранённым дребезгом, — так регистр захватывает и удерживает то состояние LFSR, которое было ровно в момент нажатия, игнорируя дальнейшее переключение LFSR до следующего нажатия.

LFSRREGкнопка (такт)Диап.SEG7

Отображение 4 бит на шесть граней кубика

4 выходных бита LFSR охватывают диапазон 0–15, а у кубика только шесть граней. Небольшое переотображение на компараторах — вычесть 6 или 12, когда значение больше либо равно 6 или 12 соответственно, — сжимает диапазон до 0–5, а прибавление фиксированной 1 превращает это в привычные 1–6. Подайте результат на блок SEG7, чтобы его отобразить.

Попробуйте сами

Соберите всю цепочку в редакторе схем — свободно бегущий LFSR, кнопку с устранённым дребезгом, регистр, тактируемый импульсом детектора фронта, переотображение диапазона, индикатор SEG7 — и нажимайте кнопку несколько раз подряд, чтобы убедиться, что отображаемая цифра меняется непредсказуемо, но всегда попадает в диапазон от 1 до 6.

Собрать бросок кубика в редакторе схем →