个人认为单纯从状态机编码这个方面来说,如果采用同步设计,几种编码的安全性方面应该都是没有什么问题的,虽然说two always 或者two process 状态机的信号输出是由各状态的组合逻辑产生,但是实质上在用他们之前还是会在时钟沿上采样。当然如果是异步状态机,gray码是比较安全。可是异步状态机是最好要避免的。在可操作性上来说,现在计算机已经可以自动完成这部分功能,不管在code中自己是如何编码,都可以在逻辑综合的时候让工具自动帮你转换到其他类型的编码形式,应该说我们只要明白其中的道理,享受其好处就可以了。