# 格雷码与温度计码编码可视化器

把 N 位数值同时转换为二进制、格雷码、独热码与温度计码:完整计数真值表、哈明距离图与 Verilog/VHDL 编码器代码。

> 标准页面: https://elysiatools.com/zh/tools/gray-code-and-thermometer-bcd-encoder-visualizer

- **分类:** Development

- **关键词:** 格雷码转换, 温度计码, 独热编码, 哈明距离图, 二进制转格雷verilog, 闪速adc温度计码, 异步fifo格雷指针, 单位距离码

## 概述

面向 2–6 位字宽的二进制编码替代方案可视化器。

对所选值同时给出:普通二进制;格雷码/反射码(G = B XOR (B >> 1),相邻值——含回绕——恰好只差一位的单位距离码);独热码(2ⁿ 位,单个 1);温度计码/一元码(2ⁿ−1 位,MSB 对齐,闪速 ADC 比较器组的原生输出)。

哈明距离图遍历每个计数转移,直观展示冒险:二进制在进位边界(0111→1000)最多翻转全部 n 位,格雷码与温度计码永远只翻一位,独热码恒定翻两位。完整计数真值表同时可用作卡诺图轴序与旋转编码器码盘图案。

即贴即用的 HDL 代码:参数化 Verilog 与 VHDL 模块,含二进制→格雷(异或)、二进制→独热(定宽移位)、二进制→温度计(MSB 对齐一元移位)、以及格雷→二进制级联异或解码器。

## 输入项

- **字宽(位)** (select)
- **输入值(十进制)** (number): 11
- **HDL 代码语言** (select)
- **显示完整计数序列表** (checkbox)

## 适用场景

- 设计异步 FIFO 跨时钟域指针，需要验证二进制转格雷码逻辑与单比特翻转特性时。
- 分析闪速 ADC（Flash ADC）比较器阵列输出的温度计码或状态机独热码编码规则时。
- 排查多位二进制计数器在进位边界（如 0111→1000）因多位同时翻转产生的毛刺与亚稳态冒险时。

## 工作原理

- 设置 2 到 6 位的位宽并输入目标十进制数值，选择所需的 HDL 代码语言（Verilog、VHDL 或两者）。
- 系统并行计算对应数值的普通二进制、格雷码（G = B ^ (B >> 1)）、独热码和 MSB 对齐的温度计码。
- 生成全状态哈明距离图与转换跳变高亮，展示当前步进与进位边界的位翻转数量。
- 输出包含参数化转换模块的 HDL 源码及可选的完整计数真值序列表。

## 使用案例

- FPGA/ASIC 前端工程师为异步跨时钟接口编写可综合的格雷码编解码逻辑。
- 数模混合芯片设计人员评估 Flash ADC 比较器阵列的温度计码编码与译码方案。
- 高校数字电路与逻辑设计课程教学，用于演示卡诺图轴序排列与组合逻辑毛刺规避。

## 常见问题

### 为什么格雷码适合用在异步 FIFO 读写指针中？

格雷码是单位距离码，相邻计数状态之间只有 1 位发生翻转，在跨时钟域同步时能有效避免多位不同步跳变导致的亚稳态与读错指针问题。

### 温度计码（Thermometer Code）与独热码（One-Hot）有什么区别？

N 位宽下，独热码由 2ⁿ 位组成且仅有 1 个高电平位；温度计码由 2ⁿ−1 位组成，代表数值大小的连续位全部置 1，常用于闪速 ADC 输出。

### 工具支持的最大位宽是多少？

目前支持 2 位至 6 位字宽，覆盖从 0–3 到 0–63 范围内的数值转换、状态表和哈明距离分析。

### 导出的 HDL 代码包含哪些模块？

包含二进制转格雷码（XOR）、二进制转独热码、二进制转温度计码，以及格雷码转二进制的级联异或解码器模块。

### 哈明距离图表中的峰值代表什么含义？

柱状图峰值表示相邻状态切换时同时翻转的比特位总数。普通二进制在进位边界会产生较高峰值，而格雷码柱高恒定为 1。

## 相关工具

- [Tailwind 色板同步器](https://elysiatools.com/zh/tools/tailwind-color-palette-sync): 输入一组 HEX,选择命名规则(色阶 50–950 / 单名 / 对象嵌套),自动生成 tailwind.config.ts 的 theme.extend.colors 片段,每个色阶同时给出 WCAG AA/AAA 对比等级,可选暗色模式。
- [扩展文本编码(Base65536 + netstring)](https://elysiatools.com/zh/tools/extended-text-base-codecs): 编码/解码较少见的文本编码:Base65536(二进制→高密度 Unicode)和 netstring(自定界成帧)。Base85 不重复建设(已覆盖)。
- [cURL 转 Go (net/http)](https://elysiatools.com/zh/tools/curl-to-go): 将 cURL 命令转换为 Go net/http 代码片段，包含 http.NewRequest、请求头和请求体
- [cURL 转 JavaScript (axios)](https://elysiatools.com/zh/tools/curl-to-js-axios): 将 cURL 命令转换为 JavaScript axios 代码片段，使用配置对象、请求头和数据
- [cURL 转 JavaScript (fetch)](https://elysiatools.com/zh/tools/curl-to-js-fetch): 将 cURL 命令转换为 JavaScript fetch() 代码片段，包含请求头、请求体和方法
- [cURL 转 PHP (cURL)](https://elysiatools.com/zh/tools/curl-to-php): 将 cURL 命令转换为 PHP cURL 代码片段，包含 curl_setopt、请求头和 POST 字段
- [cURL 转 Python (requests)](https://elysiatools.com/zh/tools/curl-to-python): 将 cURL 命令转换为 Python requests 代码片段，包含请求头、数据和请求方法
- [域名提取器](https://elysiatools.com/zh/tools/domain-extractor): 从URL中提取域名。支持各种提取选项，包括子域名和路径分析。

## 示例

- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [代码注释示例](https://elysiatools.com/zh/samples/code-comment-samples): 用于测试注释移除的各种注释样式代码示例文件
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [代码查看器样本](https://elysiatools.com/zh/samples/code-viewer-samples): 用于浏览器内代码查看器的长尾代码与配置样本文件
