首页 > 解决方案 > 当整个条件为真时检查 if 语句中的下一个条件

问题描述

VHDL语言标准是否定义了以下情况下if语句中检查条件的行为:

constant one: std_logic: = '1'; -- always '1'
signal vector: std_logic_vector (2 downto 0);

(...)
if (one or vector(3) ) begin

(...)

在这种情况下,应该是编译/细化/运行时错误(超出范围)或者条件应该始终为真(因此不需要检查向量(3)的值?

标签: vhdlstandardshdl

解决方案


您将在细化过程中遇到错误。但是通常当您编写 VHDL 代码时,您不需要使用这种技巧。

您是否尝试使用此代码来解决概念问题?例如,如果您只想在向量大于 3 的情况下使用 vector(3),那么您可以使用 if... generate 语句或 if ... then 语句来执行此操作。


推荐阅读