【问题标题】:self-defined type cast to string in VHDL自定义类型转换为 VHDL 中的字符串
【发布时间】:2018-06-11 15:37:47
【问题描述】:

我创建了一个新类型的 VHDL 包,如下所示:

package useOfLength is

    type length1 is range -(2**31-1) to 2**31-1
    units
        um;
        mm = 1000 um;
        cm = 10 mm;
        m = 100 cm;
        inch = 25400 um;
        yard = 914400 um;
        foot = 304800 um;
    end units;

end;

在我的测试台中,我试图“报告”length1 类型信号的变量“输出”:

report "The result is " & to_string(output);

Modelsim 给我以下错误信息:

** 错误:G:/OneDrive - Office/SS2018/DRS/exercise6/1106ex03/ex03_tb.vhd(49): (vcom-1136) 未知标识符“to_string”。

我尝试了很多(转换为整数,然后转换为字符串)以及其他方法,但没有任何效果。我还在互联网上找到了演员表,但仅限于已经给定的类型,而不是自定义类型。 我也是 VHDL 的新手,也许这是一个愚蠢的问题......

【问题讨论】:

  • IEEE Std 1076-2008, 5.2.6 标量类型的预定义操作“给定一个声明标量类型 T 的类型声明,以下操作在类型声明之后立即隐式声明(TO_STRING 除外包 STANDARD 中的操作,在包声明的末尾隐式声明):...function TO_STRING (VALUE: T) return STRING;" 在 Modelsim 中使用 -2008 模式。 (而且负长度看起来有点奇怪。)
  • 铸造在这里不是一个准确的术语。仅允许在密切相关的类型之间进行类型转换,并且您的标量类型和复合类型字符串不密切相关(9.3.6 类型转换)。 TO_STRING 是一个函数,调用时返回一个字符串表示。对于一个物理类型,它是一个整数值,后跟一个空格和主要单位名称。 (类型 TIME 使用解析单元名称,参见 5.7 字符串表示。)
  • 啊,好的,谢谢!我也解决了这个问题:length1'image(output);这是可编译的,也可以正常工作=)

标签: casting vhdl


【解决方案1】:

好吧,我发现,物理类型和整数是一样的……

所以将其转换为字符串的工作方式如下:

length1'image(output);

【讨论】:

猜你喜欢
  • 2019-11-22
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 2017-06-22
  • 1970-01-01
  • 2018-02-04
  • 2013-11-27
  • 2011-12-21
相关资源
最近更新 更多