← 2022 · 荣耀 笔试

推荐答案 测试一下

设计异步FIFO时,FIFO深度必须是2的整数次幕,才能使用格雷码

A.正确 B.错误
简答题 中等 笔试真题

参考答案

B.错误。格雷码并非必须要求FIFO深度为2的整数次幂才能使用。传统反射格雷码(binary-reflected Gray code)确实在循环计数时要求深度为2的整数次幂,因为其编码序列在满量程循环时首尾仅变化一位。但实际设计中,可以通过构造自定义格雷码(如使用平衡格雷码、折叠格雷码或增加冗余位)实现任意深度的格雷码循环。例如,深度为3时,可使用编码序列00→01→11,再从11跳回00(仅变化两位),但此跳变不满足格雷码单比特变化要求;然而通过额外逻辑将序列调整为00→01→11→00并修正最后一步,仍可实现相邻地址单比特变化。工程上,因为2的整数次幂深度实现最简单、可靠性最高,故建议采用,但并非绝对必要条件。此外,异步FIFO的空满判断也需要二进制地址指针的格雷码转换,深度非2的整数次幂时需额外处理地址回绕逻辑。因此,原命题“必须”过于绝对,是错误的。

涉及知识点

  • 格雷码定义与单跳变特性
  • 传统反射格雷码的循环条件
  • 非2的幂深度格雷码构造方法
  • 异步FIFO地址同步原理
  • 空满判断与地址回绕逻辑
← 上一题
登录后反馈错题
下一题 →