【问题标题】:How to create boolean data type to standard logic in VHDL如何在 VHDL 中为标准逻辑创建布尔数据类型
【发布时间】:2026-02-10 23:55:02
【问题描述】:

常规 std.logic 库中是否存在将布尔数据类型转换为 vhdl 中的 std 逻辑的函数?

【问题讨论】:

  • 我不认为有,因为我不确定你会如何期望它的行为。假设转换函数是convert(b : boolean) return std_logic。那么您希望convert(true)convert(false) 产生什么std_logic 值?您可能会争辩说,高电平有效逻辑和低电平有效逻辑应该给出相反的结果,因此您需要针对每种情况使用不同的转换函数。另一个方向的转换更加复杂,因为您必须决定如何将 9 个不同的 std_logic 值转换为两个布尔值。

标签: vhdl hdl digital-logic


【解决方案1】:

简而言之:没有。

正如@Harry 指出的那样,不可能将布尔值的 2 个值映射到 std_logic 的 9 个值。

std_logic-type 用于在模拟时检测代码中的问题,并更好地表示硬件稍后将如何操作。

所以我建议您不要编写将true 转换为'1'false 转换为'0' 的函数,因为那样您将失去std_logic 类型的优势。

请注意,从 VHDL 2008 标准开始,允许甚至实现从 std_logic 转换为 boolean

【讨论】: