【问题标题】:Connecting a STD_LOGIC to a one bit STD_LOGIC_VECTOR将 STD_LOGIC 连接到一位 STD_LOGIC_VECTOR
【发布时间】:2018-04-16 07:43:20
【问题描述】:

我正在使用 Xilinx ISE 并使用 CORE Generator & Architecture Wizard 生成内存。

问题在于它创建了一个写使能信号 (wea) 作为 STD_LOGIC_VECTOR(0 downto 0) 并导致类型不匹配:

### 行:在 encnt 附近输入错误;当前类型std_logic;预期类型 标准逻辑向量

如何将 encnt(即 std_logic)转换为一位 std_logic_vector?

(ISE 不允许我从内存文件中更改 wea。)

【问题讨论】:

  • 请出示代码
  • VHDL 术语是类型转换(IEEE Std 1076-2008, 9.3.6 类型转换),其中类型 std_logic(标量类型)和 std_logic_vector(数组类型)不兼容,提示元素关联(6.5.6.3 端口子句,6.5.7 关联列表)。

标签: casting vhdl xilinx-ise


【解决方案1】:

这是使用这些 IP 块的一个非常常见的场景。您可以像这样轻松关联std_logic 信号:

wea(0) => encnt,

不是将wea 关联为一个整体,而是将一个元素(0) 关联起来。由于wea 只有一个元素,这将分配整个向量。

【讨论】:

  • wea <= "" & encnt
  • 或聚合:wea <= (0 => encnt); 注意对于单个元素的特殊情况,只有命名关联有效,因为位置关联与表达式周围的括号无法区分。
猜你喜欢
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
相关资源
最近更新 更多