Vhdl 枚举类型最小维

Vhdl 枚举类型最小维,vhdl,Vhdl,这是我的代码: 键入T表示状态为(空闲、写入新、读取旧、, 阅读(旧的) 枚举类型由合成工具编码,没有最小维度的硬件资源。 在进行合成之前,我是否必须指定最小硬件尺寸 谢谢大家。我不确定是否理解您的问题,但下面是一个我将如何列举我所处的州的示例: type STATE_TYPE is (IDLE, GNT1, GNT2, GNT3, GNT4, GNT5, GNT6, GNT7, GNT8); attribute ENUM_ENCODING: string; attri

这是我的代码:

键入T表示状态为(空闲、写入新、读取旧、, 阅读(旧的)

枚举类型由合成工具编码,没有最小维度的硬件资源。 在进行合成之前,我是否必须指定最小硬件尺寸


谢谢大家。

我不确定是否理解您的问题,但下面是一个我将如何列举我所处的州的示例:

   type STATE_TYPE is (IDLE, GNT1, GNT2, GNT3, GNT4, GNT5, GNT6, GNT7, GNT8); 
    attribute ENUM_ENCODING: string; 
    attribute ENUM_ENCODING of STATE_TYPE: type is 
    "0000 0001 0010 0100 1000 0011 0101 0110 1001"; 
    signal STATE, NEXT_STATE: STATE_TYPE;

不同的合成工具可以对状态进行不同的编码;或者,您可以在“流程属性”菜单或命令行选项中控制编码样式。在任何情况下,合成报告都将描述合成选择的最适合您的目标的特定编码-例如速度或大小

看看synth报告;大多数synth工具都非常擅长优化,因此它可能已经选择了您想要的编码。或者,您可以了解如何设置工具的选项


正如“引擎”所说,如果需要,您可以显式地指定状态;尽管这通常不是必需的。

除非您有特定的理由需要特定的表示,否则请让合成器来确定如何最好地表示枚举类型


例如,您可能希望在某些关键状态机中使用灰色编码表示。此级别的控制发生在语言本身之外,通过应用于信号的属性或使用约束文件。您必须阅读所使用工具的文档,以了解如何执行此操作。

可能与此有关

注意:如果枚举类型表示状态的状态 计算机,使用enum_编码属性指定手动状态 编码防止编译器识别基于状态的状态机 在枚举类型上。相反,编译器处理这些状态 使用 属性,并且它们在报告中未列为状态机 项目的窗口。如果您希望控制 已识别的状态机,使用状态机处理逻辑 选项或syn_编码属性。有关详细信息,请参阅 在VHDL中实现状态机,请参阅实现状态 机器


@Tosone有帮助吗?你用的是什么合成器?@Tosone如果有帮助?你可以接受这个答案,这样其他用户就不会花时间去解决这个问题