VHDL:如何将“整数范围0到99”分配为新的类型名称(如C ++中使用的typedef)

问题描述 投票:0回答:1

这是我要在VHDL中执行的操作:

type score is integer range 0 to 99;
type speed is integer range 0 to 99;

但是我认为我从根本上误解了VHDL中“类型”是如何工作的,因为该工具正在产生错误。它说near "integer": syntax error。我认为VHDL中的type与C ++中的typefed类似,但事实并非如此。将“得分”和“速度”声明为类型的正确方法是什么,它们在内部都只是0到99的整数范围?]

types vhdl alias typedef subtype
1个回答
0
投票

Type创建一个新类型,它与现有类型完全没有关系。别名只是分配给已存在的对象(如信号或变量)的不同名称。子类型根据现有类型(例如整数范围的一部分或具有一定位数的标准逻辑向量)创建类型。

因此,要执行此问题所需的操作,需要使用子类型而不是类型或别名。

所以正确的VHDL将如下所示:

subtype score is integer range 0 to 99;
subtype speed is integer range 0 to 99;
© www.soinside.com 2019 - 2024. All rights reserved.