字符串值解读 - 2023.2 简体中文

Vivado Design Suite 用户指南: 逻辑仿真 (UG900)

Document ID
UG900
Release Date
2023-10-18
Version
2023.2 简体中文

值字符串的解读是根据 HDL 对象的声明类型和 -radix 命令行选项来确定的。-radix 始终覆盖 HDL 对象类型确定的默认基数。

  • 对于类型为 logic 的 HDL 对象,值是 logic 类型的一维阵列,或者值是指定基数的数字字符串。
    • 如果字符串指定的位数少于该类型期望的位数,那么该字符串将采用隐式零位扩展(而非符号位扩展),以匹配该类型的长度。
    • 如果该字符串指定的位数多于该类型期望的位数,那么 MSB 侧的额外的位必须为零,否则,该命令会生成大小不匹配错误。

    例如,值 3F 指定 8 位(每个十六进制数字 4 位),含基数十六进制和 1 个 6 位 logic 阵列,等同于二进制 0011 1111。但由于 3 的上 2 个位为 0(零),该值可赋值给 HDL 对象。相较之下,值 7F 会生成错误,因为上 2 个位不为零。

    • 标量(非阵列或记录)logic HDL 对象的隐式长度为 1 位。
    • 对于声明为 a [left:right] (Verilog) 或 a(left TO/DOWNTO right)logic 阵列,最左侧的值位(位于扩展/截断位之后)赋值给 a[left],最右侧的值位赋值给 a[right]