# Визуализатор кодов Грея, термокода и one-hot

Переводит N-битное значение в двоичный код, код Грея, one-hot и термометрический: полная таблица счёта, график расстояния Хэмминга и модули Verilog/VHDL.

> Каноническая страница: https://elysiatools.com/ru/tools/gray-code-and-thermometer-bcd-encoder-visualizer

- **Категория:** Development

- **Ключевые слова:** код грея, термометрический код, унитарное кодирование, расстояние хэмминга, bin to gray verilog, термокод flash ацп, указатель грея асинхронного fifo, код единичной дистанции

## Обзор

Визуализатор альтернатив двоичному кодированию для слов 2–6 бит.

Кодировки одновременно для выбранного значения: обычный двоичный; код Грея/отражённый (G = B XOR (B >> 1) — код единичной дистанции, соседние значения, включая замыкание, отличаются ровно одним битом); one-hot (2ⁿ бит, единственная 1); термометрический/унитарный (2ⁿ−1 бит, выровнен по старшему разряду — естественный выход банка компараторов flash-АЦП).

График расстояния Хэмминга проходит все переходы счёта и наглядно показывает опасность: двоичный код меняет до n бит на границах переноса (0111→1000), Грей и термокод — никогда больше одного, one-hot — всегда ровно два. Полная таблица счёта одновременно задаёт порядок осей карты Карно и рисунок диска поворотного энкодера.

Готовые HDL-модули: параметризованные Verilog и VHDL с двоичный→Грей (XOR), двоичный→one-hot (широкий сдвиг), двоичный→термокод (унитарный сдвиг от старших) и каскадным XOR-декодером Грей→двоичный.

## Входные данные

- **Разрядность слова (бит)** (select)
- **Входное значение (десятичное)** (number): 11
- **Язык HDL** (select)
- **Показать полную таблицу счёта** (checkbox)

## Когда использовать

- Проектирование указателей асинхронных FIFO для безопасной передачи данных между тактовыми доменами без гличей.
- Разработка логики декодирования flash-АЦП (термокод в двоичный код) или оптических поворотных энкодеров (код Грея).
- Анализ переключения разрядов и динамических рисков с помощью графика расстояния Хэмминга.

## Как это работает

- Выберите разрядность слова от 2 до 6 бит и задайте входное десятичное значение.
- Оцените сгенерированные битовые представления (двоичный, Грей, one-hot, термокод) и подсвеченные измененные биты на текущем шаге счета.
- Изучите график расстояния Хэмминга и полную таблицу истинности для проверки свойства единичной дистанции.
- Скопируйте синтезируемые модули на Verilog или VHDL для интеграции в проект ПЛИС или ASIC.

## Сценарии использования

- Синтез междименных указателей в контроллерах памяти и асинхронных буферах FIFO.
- Создание блоков цифровой обработки сигналов для параллельных flash-АЦП и систем сбора данных.
- Обучение цифровой схемотехнике, картам Карно и анализу динамических рисков логических автоматов.

## Частые вопросы

### Чем код Грея отличается от обычного двоичного кода?

В коде Грея соседние числа отличаются ровно одним битом, что предотвращает появление ложных промежуточных значений при считывании.

### Какова длина слова для one-hot и термометрического кодов при N битах?

Для N входных бит унитарный код one-hot занимает 2^N бит, а термометрический код — (2^N - 1) бит.

### Каково максимальное расстояние Хэмминга между соседними значениями?

У кода Грея и термокода расстояние Хэмминга всегда равно 1, у one-hot — строго 2, а у двоичного кода может достигать N бит.

### Какие языки описания аппаратуры поддерживаются?

Генерируются модули на Verilog, VHDL или оба варианта одновременно.

### Какой диапазон разрядностей доступен для моделирования?

Поддерживаются слова шириной от 2 до 6 бит (числовые значения от 0 до 63).

## Связанные инструменты

- [Синхронизатор палитры Tailwind](https://elysiatools.com/ru/tools/tailwind-color-palette-sync): Введите HEX, выберите схему именования (шкала 50–950 / одно имя / вложенность) — генерирует фрагмент theme.extend.colors для tailwind.config.ts с уровнями WCAG AA/AAA. Тёмная тема опциональна.
- [Расширенные текстовые кодеки (Base65536 + netstring)](https://elysiatools.com/ru/tools/extended-text-base-codecs): Кодируйте и декодируйте редкими кодеками: Base65536 (бинарное → плотный Unicode) и netstring (саморазграничивающее обрамление).
- [Конвертер cURL в Go (net/http)](https://elysiatools.com/ru/tools/curl-to-go): Преобразует команду cURL в фрагмент кода Go net/http с http.NewRequest, заголовками и телом
- [Конвертер cURL в JavaScript (axios)](https://elysiatools.com/ru/tools/curl-to-js-axios): Преобразует команду cURL в фрагмент кода JavaScript axios с объектом конфигурации, заголовками и данными
- [Конвертер cURL в JavaScript (fetch)](https://elysiatools.com/ru/tools/curl-to-js-fetch): Преобразует команду cURL в фрагмент кода JavaScript fetch() с заголовками, телом и методом
- [Конвертер cURL в PHP (cURL)](https://elysiatools.com/ru/tools/curl-to-php): Преобразует команду cURL в фрагмент кода PHP cURL с curl_setopt, заголовками и POST-полями
- [Конвертер cURL в Python (requests)](https://elysiatools.com/ru/tools/curl-to-python): Преобразует команду cURL в фрагмент кода Python requests с заголовками, данными и методом
- [Извлекатель Доменов](https://elysiatools.com/ru/tools/domain-extractor): Извлекать имена доменов из URL. Поддерживает различные опции извлечения включая поддомены и анализ пути.

## Примеры

- [Примеры QR-кодов](https://elysiatools.com/ru/samples/qrcode-samples): Примерные изображения QR-кодов для тестирования инструментов чтения и генерации QR-кодов
- [Примеры Комментариев Кода](https://elysiatools.com/ru/samples/code-comment-samples): Примеры кода с различными стилями комментариев для тестирования удаления комментариев
- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [Образцы кода](https://elysiatools.com/ru/samples/code-viewer-samples): Образцы длиннохвостых файлов кода и конфигов для браузерного просмотрщика кода
